Hayden: Sasa, it’s a pleasure to discuss all things Elixir with you, I really appreciate you taking the time to work on this with me. We’ve been working hard to produce helpful content so that Beamrec.com can act as a useful resource for Elixir enthusiasts.
Your name & work has been mentioned to me on so many occasions by Elixir devs, Elixir in Action seems to be essential reading for anyone that is interested in learning the language.
To make you aware, I’m a ‘non-techie’ but have spent the past 7 years recruiting in the BEAM market so I’ve picked up some knowledge along the way, enough to get by at least :)
I have some questions that I’ve gathered from research & some contacts in the community, it would be great to hear your thoughts & opinions on some of these topics.
Hayden: I generally ask this to everyone I speak to, how did you first hear about Elixir? What immediately attracted you to it?
Sasa: It happened after using Erlang for about a year. At the time I really enjoyed the concurrency model, but I also found the language to be too simple, which led to quite a lot of boilerplate and noise in the code. So I started looking for a language which would give me similar concurrency features, but with more expressiveness and better supporting tools. Outside of BEAM, I looked at Scala and Go, while in the BEAM space I found two interesting languages: Reia and Elixir. I wasn't quite happy with what non-BEAM languages offered, while the BEAM languages seemed more promising, but also too immature at the time.
About a year later I started blogging at theerlangelist.com, with the purpose of sharing the things I liked about Erlang. I was worried that a more involved Erlang code would seem to scary to non-Erlangers, so I took another look at Elixir, hoping it would help me write more concise code, and therefore better illustrate some points. The language exceeded my expectations, and I was absolutely blown away. It was all I wanted from Erlang and more, and at the same time it was essentially Erlang, rather than some complex machinery on top of it. I was also impressed with the maturity of the project. I found the documentation extensive and informative, while mix already seemed way better than anything available in Erlang at the time. Despite still being at the early stage (version 0.7 at the time), I found the language to be mature enough for production, and quickly started using it in the existing Erlang project. The integration between the two languages was seamless, and Elixir quickly became my favourite language, offering the powerful BEAM support for highly-available systems in a developer-friendly language that draws inspiration from other languages such as Clojure and Ruby, while in its heart being quite close to Erlang.