I’m a language nut. I love trying languages out, and I love thinking about their design and implementation. (I know; it’s sad.)
I came across Ruby in 1998 because I was an avid reader of comp.lang.misc (ask your parents). I downloaded it, compiled it, and fell in love. As with any time you fall in love, it’s difficult to explain why. It just worked the way I work, and it had enough depth to keep me interested.
Fast-forward 15 years. All that time I’d been looking for something new that gave me the same feeling.
I came across Elixir a while back, but for some reason never got sucked in. But a few months before starting on the first edition of this book, I was chatting with Corey Haines. I was bemoaning the fact that I wanted a way to show people functional programming concepts without the academic trappings those books seem to attract. He told me to look again at Elixir. I did, and I felt the same way I felt when I first saw Ruby.
So now I’m dangerous. I want other people to see just how great this is. I want to evangelize. So I write a book. But I don’t want to write another 900-page Pickaxe book. I want this book to be short and exciting. So I’m not going into all the detail, listing all the syntax, all the library functions, all the OTP options, or….
Instead, I want to give you an idea of the power and beauty of this programming model. I want to inspire you to get involved, and then point to the online resources that will fill in the gaps.
But mostly, I want you to have fun.
Fast-forward three years. Elixir has moved on. Phoenix, its connectivity framework, introduced a whole new set of developers to the joys of a functional approach. The Nerves project makes it easy to write embedded Elixir code on Linux-based microcontrollers. The Elixir base has grown—there are international, national, and regional conferences. Job ads ask for Elixir developers.
I’ve been moving on, too. But I’m still using Elixir daily. I just completed my second year as an adjunct professor at Southern Methodist University, corrupting the programmers of tomorrow with the temptations of Elixir. I’ve written an online Elixir course.[1]
And now I’m revving this book. To be honest, I don’t really have to: Elixir 1.6 is not so different from 1.3 that the older book would not be useful. But my own thinking about Elixir has matured. I now do some things differently. And I’d like to share these things with you.