I am new, old, and I want to understand everything: Erlang or Elixir first?

Quote:

I found both

to be a good way to “unlearn the other stuff” and to become more familiar with functional programming and concurrent programming (unfortunately the courses seem to be currently dormant - see also [Erlang] Functional Programming in Erlang (University of Kent) (free) and Erlang master classses - School of Computing - University of Kent).

By all accounts Learn Functional Programming with Elixir (Pragprog) is a good way to get introduced into the functional mindset and Elixir. However concurrent programming and architecture according to the BEAM are outside of its scope.

A lot of the more architecturally oriented BEAM resources still use Erlang as the lingua franca (as it has been around longer). One example is Designing for Scalability with Erlang/OTP (O’Reilly). There is a generous free sample on Google Play Books. While it includes a refresher chapter on Erlang, it probably makes more sense to go through something like Learn You Some Erlang first.

It needs to be emphasized that the BEAM’s distribution features primarily exist to support fault tolerance and to some degree (local) scalability - but distribution (especially on a global scale) was never an end in itself.

To get a sense of what the BEAM was designed for, read

The Hitchhiker’s Guide to the Unexpected

or watch

Fred Hebert - The Hitchhiker’s Guide to the Unexpected - Code BEAM SF 2018

In many ways Elixir made the BEAM more habitable for application developers - Erlang by itself seems more like something that engineers create for other engineers to use.

3 Likes