jfc
I am new, old, and I want to understand everything: Erlang or Elixir first?
I hope the title says all. I am an old brain new to beam. I wish to grab everything I need to be able to see if/how I might use it for a “virtual glocal network” “OS” (with its own limited apps) that I could instal on all my CPUs whatever their back-OS, for them to work together locally or through the internet.
Question: should I first try to understand and train in erlang or elixir? Or would there be a book addressing that type of practical architectural need in parallel/comparison? Or is the question stupid?
Thx!
Most Liked
jfc
Deep thanks to all for these documented and quick responses! When they say elixir has a “vibrant community”, I see it!!! I am going to study every link (consider each book) I was suggested. As a newcomer, I feel I need to help myself (and possibly others - I failed to create a local meet-up for an “auto-mooc” on “erlix” in my place) to make beam more “habitable” further on. I come from the network and my interest is in what I call “brainware”: the “keep it simple, smart and manageable” in software/functional networking.
kokolegorille
It’s important to switch to functional mind, whatever syntax You choose to follow.
peerreynders
I recommend you have a good look at this topic , the associated video and in particular this post to get a better sense of the relevant use cases for distributed BEAM .
peerreynders
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.
yordisprieto
Get familiar with the toolkit and concepts using Elixir and then focus on Erlang. That is what would recommend.








