I am a graduate of AGH University of Science and Technology. I am functional programming enthusiast working with Erlang since 2011. Currently working on financial systems in Elixir at ClubCollect. In my free time, I play with electronics, flying robots and Elm programming language. I love talking about programming in general so feel free to catch me and have a discussion about coding even during breaks.
I will compare design decisions between Elm and Elixir programming languages. Elm forces programmer to explicitly design all the flows in your program as a static one-way graph of dependencies between components. This makes it easy to debug and reason about programs. Erlang VM lets programmer create dynamic flows, which is a much more complex approach. I will show, how this is a direct consequence of langauge constraints (high availability and distribution) using CAP theorem. Elm doesn't have to deal with partitioning and a good practice is to keep all the state in one place. Everything is consistent and available, because there is no partitioning. Elixir has to be available and handle network splits, so it needs to deal with inconsistencies and dynamic flows. I will show how OTP design patterns make it easier for programmer to work with that problem.Slides