📜 ⬆️ ⬇️

Welcome to FPConf.ru

Hello!

On August 15, FPConf will be held - the first conference in Russia on functional programming. In the two day conference threads, there will be reports on Scala, F #, Erlang, Clojure, Haskell and functional approaches in familiar Ruby, Python and Java.

We sincerely believe that functional approaches today are the new mainstream, the point of development of the industry and useful tools that a high-class developer needs to solve complex and interesting problems. The time has passed when you can limit yourself to one technological stack and be in demand. Big data, increasing loads, professional curiosity and the desire to develop lead more and more people to the study of monads, lambdas, closures and immunity.
')
Therefore, we invite both experienced functionaries, and those who just want to get inspiration and review topics for the first study :)

Reports from the representatives of JetBrains, Kaspersky Lab, 2GIS, Mail.ru, Mashine Zone, Luxoft, Sputnik and many others.
Ticket price now - 7000 rubles. Register here .


Program:

image Edward Kmett , Chair of the Haskell Core Libraries Committee
LENSES AND PRISMS
It’s easy to find out where it’s possible to use it. "Getters and setters" do not make sense. Lenses provide us with a way to regain that lost functionality and more than, acting as a form of "functional reference".
It has been noted that it has been a no-matter-for-you-and-a-sock handling handling handling handling handling handling handling handling handling handling handling handling handling handling handling handling handling handling handling handling structured data such as JSON, XML and the like. However, it was surprisingly little.
It would be a good idea to take care of them.



image Nikolai Ryzhikov , Health Samurai
CLOJURE DATA DSL'S FOR WEB DEVELOPMENT
Session live coding!
The code and data, like Yin and Yang, and the border between them with a close look begins to disappear. Using the example of a web stack for clojure, we will introduce Data DSL - hiccup, honeysql, prismatic schema, in real-time mode we will try to write our DSL and learn Tao.


image Nikita Prokopov
FRONTAND WITHOUT GRUNDS
Writing a web application is something else: slow, difficult, and the platform is more likely to interfere than it helps. In the report we will answer:
* How does the functional approach help to make web applications?
* Can the database be immune?
* Why at all on the front of the database?
* What interesting things can be done with such tools?
And not at all, but on specific examples of ClojureScript and DataScript.


image Alexander Granin , Kaspersky Lab
DESIGN OF GREAT APPLICATIONS IN OP
How to design large applications in traditional languages ​​- we know. Inversion of Control, SOLID, GRASP, design patterns, high cohesion, low coupling, abstractions, interfaces, sometimes even UML. But I want to use functional languages!
In the report I will tell you that:
* many practices are fair in the OP world;
* FP has its own elegant solutions to the same problems;
* many design patterns are artificial and are not needed;
* instead of design patterns, OP offers new design approaches — functional idioms.

Specific design problems will be named, and various Haskell solutions to these problems will be shown as one of the brightest representatives of the OP world.
A report for a wide range of developers who are faced with the need to create large, well-supported, reliable, structured, tested code in functional languages.


image Alexander Pashkov
A SHORT OVERVIEW OF ACCESSORIES FOR PARALLEL AND COMPETITIVE PROGRAMMING ON HASKELL
A story about the capabilities of some parallel / competitive programming tools in modern haskel: from forcing lazy data structures using sparks to high-level primitives such as Async and STM. Everything is based on the example of a nontrivial applied reboric task, which is not very easy to parallelize in imperative languages ​​with mutexes.


image Renat Idrisov , Machine Zone
DISTRIBUTED MEASUREMENT OF PERFORMANCE OF DISTRIBUTED APPLICATIONS
To date, the number of Internet users is about three billion, any potentially popular service can break down tomorrow, becoming popular due to the fact that there is simply not enough service servers. It is useful to know in advance how this will happen and how soon the day will come when your service will stop working normally. Mobile games, such as Game of War, support millions of users and consist of a large number of components in different languages. Almost every day the game code is updated, and every day the number of users increases.
In Machine Zone, we use our own MZBench tool - this is a distributed application on Erlang, which is automatically deployed on a cluster, creates the necessary load, collects the results and decorates them for further use by people or Continuous Integration systems. To describe various scenarios, we use our own DSL, which allows you to create the necessary model and load profile based on modules and statistical primitives.
The report is planned to consider the main features of our tool, as well as compare MZBench with tsung and basho bench.

image Maxim Lapshin , Erlyvideo
ERLANG IN PRODUCTION
In my report I want to tell you more deeply about our experience of using Erlang in the company of Erlivideo. We do super-high-load software that runs on computer-critical loads, and Erlang helps us a lot with this.
Why we chose Erlang and what its concepts help to program. What patterns and antipatterns we see when building reliable and productive software.
Such subtleties as debugging software on Erlang, combating resource leaks, integration with C libraries and working with limited external disk-type resources will be covered.


image Denis Redozubov , Antorica
BRIEF EXCURSE TO TYPE SYSTEMS OR HOW TO AVOID DISINTEGRATION
Modern programs are incredibly complex and to guarantee their correctness is not an easy task. Type systems are tools that help a programmer with this.
* How to make types help a developer?
* What guarantees can we get?
* Why have languages ​​and programmers split into several camps with respect to this topic?
* Why is the php on the crest of a wave in terms of type programming?
Also in the report I will look at the spectrum of type systems in functional programming languages ​​from lisp / clojure to haskell / ocaml and we will glance at the mysterious world of dependent types in languages ​​such as Idris and Agda.


image Ilya Bede , Bro.agency
FUNCTIONAL LENSES
Immunity data structures come to us from the world of functional programming. They brought us a profit in the form of a safe separation of links between threads, ease of testing and the ability to write pure functions. But at the same time they brought a little pain.
If you describe your application as a single immune state, how can you change an element at an arbitrary level of nesting? After all, to change the state, you need to create a new object with a changed value. And if the object is complex and consists of other objects - this is a real problem, you need to copy all levels of nesting of the object.
One way to solve this problem is the lens concept proposed by Edward Kmett. In my report, I will tell you what lenses are. How does the composition of the lenses. How to use them in real-world tasks for working with immunable data.
Intended audience: Frontend programmers using react.js will learn about the new tool for working with the application state.
Who will be interested in the report: Scala programmers will see how you can use the point notation familiar to them from Java to work with immunity data. Programmers who are addicted to functional programming learn about one of the interesting abstractions that allows you to work with immutable data in an imperative style.


image Elena Denisenko , Luxoft
DISTRIBUTED CALCULATIONS WITH BIG DATA WITH THE HELP OF CLOUD MONADS AT F #
The modern concept of functional programming can drastically simplify the tasks of processing large amounts of data and organizing scalable computing, thanks to the innovative approach of using monads opened in F # MBrace. The report focuses attention and describes, at an advanced level, the unique capabilities of F # —determining specific rules that allow you to properly control the flow of execution and process side effects. Based on F # computational expressions, the concept of cloud monads, which is implemented in the MBrace open source programming model, is considered in detail. It presents a model of a distributed system for cloud computing and performing high-load tasks on large data in a non-blocking way, managing the state at the cluster level of machines on the same network. It covers all the capabilities and architecture of MBrace, as well as various methods for creating a cluster, including using Azure IaaS and Brisk Engine. As a result, the advantages of using functional programming abstractions in working with intensive calculations on data, processing large amounts of data in a cloud environment independent of the cloud provider will become apparent.


image Mikhail Mutsyanko , JetBrains
SCRAS MACROS
In the report, I will try to make an introduction to the topic of macros for people not familiar with the topic, I will tell you what possibilities arise through macros: generation of terms, types, implications of macros, materializers, DSL creation. I'll tell you about the problems with macro support in the IDE.
I will make a small review of the future of macros in Scala.


image Sergey Lobin , Sputnik.ru
SAMURAI WAY OF YOUNG SCALA PROGRAMMER
The story of:
* As in the "Satellite" appeared Scala.
* How to write a functional search.
* What are our bumps on the way to battle.
* Is it true that Scala is so voracious.
* Pros and cons of development on Scala.


image Roman Grebennikov , Sociohub.ru
SCALA PERFORMANCE FOR SOMINS
The Scala language is now fashionable: here you have both pattern matching, and recursion, and collections richly flavored with lambdas, as well as many other scary words from the world of functional programming, which do not need a degree in mathematics to understand. And all these buns are organically intertwined in such a language, starting to write on which, it is very difficult to stop.
But the magic of functional lightness ends with the phrase “why did I rewrite 100 lines of noodles in Java into a one-line script on Scala, but it began to work 3 times slower?”, And the dream of a beautiful language turns into a pumpkin. The harsh reality of a dirty boot as if tells us that abstractions of high-level languages ​​can hide monsters and all convenience comes at a price. And if you're doing on Scala is not a simple CRUD application, but something, even remotely connected with the load, you need to be well aware of exactly what all these monad-shmonad cost you.
The report may open your eyes to possible performance pitfalls for people practicing Scala programming. In the process will be told:
* about the integration of jmh and sbt;
* how to make scalac talk about what he has optimized there;
* about the secrets of pattern-match, tail recursion and scala-collections;
* About smart HotSpot, which heroically optimizes all this.


image Alexey Romanchuk , 2GIS
REACTIVE FLOWS IN BACKEND-E
Reactive streams are the standard for asynchronous processing of streaming data from Netflix, Twitter, Pivotal, and others. I will tell why and how to use jet streams to build backend-s:
* What are the problems of building modern asynchronous backends?
* what are reactive streams and how they help build backends
* working principles of reactive flows
* basics of working with reactive streams on the example of Akka Stream


image Arseny Zhizhelev , Mail.Ru Geyms
DISTRIBUTED FUNCTIONAL SYSTEMS ON SCALA
The report discusses the SynapseGrid library belonging to the FRP class (functional reactive programming / data flow programming).
The first part describes a simple elegant DSL for designing SynapseGrid-based systems. An example of a simple system is given.
The second part describes the available versions of the finished system:
* the transformation of the system into a normal function;
* using RX-interface;
* start in parallel mode on the thread pool (as in parallel collections);
* run on the Akka ector system on a single host;
* running on Akka ektor system on several hosts.
The third part describes the modular architecture of the library and the possibilities of its expansion.
In conclusion, the class of systems implemented using the library is described. Namely, streaming systems with branching. Examples of the use of the library in real projects are given.

What besides reports:

- A lot of professional communication.
- Tasty food.
- Aftepati, on which you will have the opportunity to informally communicate with participants and speakers.

Join now!
Ticket price - 7000 rubles.
You can register here .

Bonus - video from last year's mitap .

Source: https://habr.com/ru/post/263581/


All Articles