Tomasz works with functional languages for over 8 years and loves learning and teaching about concepts and techinques.
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