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!

Personally, I would go with Elixir first. It shows you all the OTP concepts while using a “friendlier” syntax to begin with.

It’s important to switch to functional mind, whatever syntax You choose to follow.

3 Likes

Get familiar with the toolkit and concepts using Elixir and then focus on Erlang. That is what would recommend.

1 Like

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 .

4 Likes

I’d also go for Elixir first, and later get the knowledge of Erlang / Beam as you need.
Another suggestion: Have a look at RabbitMQ, a message-broker written in Erlang, it may be suitable for your needs. Using it, you can write clients in any language you like.

As @kokolegorille pointed out, you have unlearn and learn the basics concepts of functional programming. Start out with easy lessons like the data structures used in Elixir and Erlang with a comparative study.

Personally, I started out with Erlang first, so I felt home quickly working with elixir except syntax, if you want to take down that path, the below site is what motivated me to learn erlang fast.

https://learnyousomeerlang.com/content

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 https://www.cs.kent.ac.uk/ErlangMasterClasses/).

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

I’m an old brain and I found Elixir to be very easy to pick up. The BEAM is ideal for what you want to be doing.

1 Like

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.

8 Likes

I would recommend starting with Elixir for its superior documentation, conciseness of the code (Erlang can be unnecessarily verbose with its explicit exports, mandatory callback implementations and whatnot), and a friendlier repl. Once you get a good grip of the language itself, you can start tipping your toes into Erlang while diving deeper into OTP concepts.

1 Like

I’m also an “old new” who began to learn Elixir 8 monthes ago and who begin to make interesting things with it now. :yum:
Juste an advice though: even if it’s easier to begin with Elixir alone, you’ll not be able to completely dodge Erlang for long if you want to do some serious stuff…

1 Like