Closest thing to "Ruby Under a Microscope" for Elixir

I really enjoyed the book about ruby’s implementation. I know there’s nothing quite the same for elixir, but is there something in the right direction? At this point I don’t have enough patience to pore over the source haphazardly.

At the same time I constantly find myself running into questions resulting from a lack of understanding of the underlying machine. Is there a collection of “elixir implementation” resources somewhere?

2 Likes

The Erlang Runtime System is a fantastic resource for understanding the BEAM itself. It’s focused on erlang but it applies equally to Elixir.

8 Likes

Not that I know of, though I hope to be proven wrong!

There are really 3 aspects of Elixir’s “implementation” you might be interested in:

  1. The underlying BEAM virtual machine used in both erlang and Elixir:

    • The erlang blog has some great posts about this, ex this article.
    • The BEAM book already posted is also great!
  2. The erlang-implemented compiler for Elixir, and Elixir’s AST:

    • There’s actually… not a lot out there on this. I’ve had to read through, and even tinker with, the compiler before, but there are scarce few resources. That’s reasonable since it’s sort of a private API, but I know I would have loved more resources!
  3. The standard library and related design decisions:

    • The Elixir blog has some good articles; these days it’s mostly release announcements and case studies, but a few of the earlier ones dig into this a little, ex this article.

    • It’s far more dialectic than a cohesive presentation of anything, but there’s a decade of language design discussion on the core mailing list. You can search just about anything Elixir and see how it blossomed into being.


Other resources of note:

  • A great crash course to OTP (which is the sort of erlang stdlib/framework for concurrency) for Elixirists is Designing Elixir Systems with OTP.
  • Learn You Some Erlang is an introduction to erlang itself, but also dives into OTP a bunch.
  • Also by Fred Hébert, Erlang in Anger is a great resource for debugging and fine-tuning your running systems.
5 Likes