you - Is the "secret" behind Whatsapp - Half the world's telephony is built with it (citation needed) - Nine-nines of availability Things we hear about it:
low latency variance) - Vertically scalable - Distribution & Concurrency as a first class thing - Runtime guarantees for process execution (fault tolerance) - "High Performance" Characteristics of the Erlang VM
a Brazilian! José Valim - The semantics of Elixir and Erlang are *absolutely the same*. There is no impedance mismatch - From the point of view of the platform, it makes absolutely no difference whether the source code is written in Erlang or Elixir (and this is HUGE) Elixir is just a small drop (pun intended)
and Robert did not aim to implement a functional programming language, they wanted a runtime where they could build distributed, fault-tolerant applications. It just happened that the foundation for writing such systems share many of the functional programming principles. And it reflects in both Erlang and Elixir. Therefore, the discussion becomes much more interesting when you ask about their end-goals and how functional programming helped them achieve them. The further we explore those goals,we realize how they tie in with immutability and the control of shared state, for example: ..." -- Valim, José Elixir Beyond Functional Programming
developers. - There are many barriers to its adoption: Lack of tooling, hard to read docs, mostly 0 data-polymorphism - Elixir brings the "21st century" to Erlang-land, via metaprogramming, tooling, excellent documentation and a very welcoming and vibrant community Why Elixir exists:
of execution in Erlang. - That means, you can handle it as *data* and manipulate, create, destroy, halt, garbage-collect them. - You can see what a process is doing now, what it has done before, who it talks to, who it monitors… pretty much *everything*. Activities as first-class citizens:
for development - Elixir is crazy fast! (not really) - I don't need to care about GC at all! (not really) - Productivity!!! These are all *consequences* of the well defined fundamentals we just saw! The main selling points we see:
Pool Msg queue 5) Pool checks-in The connection ! 1) Check-out connection 4) message is sent telling the pool that the process died 2) Hand over connection 3) DIE
Runtime & Platform. - Elixir is not magic. It won't solve all your problems in the blink of an eye, but it will give you a very powerful toolset and a vocabulary shared by *the whole community* on how to deal with failures & distribution. - Developer friendliness, metaprogramming and syntax are cool, but they are not the whole picture. - The "erlang-way" is present in all aspects of the platform and its community. This, IMHO, is something unattainable in other platform and is Elixir's trumph Wrapping up