wrote this on
January 21, 2014
New libraries, frameworks, databases and languages appear daily. It’s obvious that you cannot and should not learn, use, or even follow each of them with too much attention. You probably already have those filters in place. From experience I know that some developers tend to set those filters to be too harsh because of a constant flood of new tech. If you feel that you have almost forgotten that newbie experience which you get when you are playing with something new, it might be a sign that your tech filters need some adjustment. If you are open to that idea please keep on reading. Elixir might slip through.
Many say that next programming languages that will matter will be LISP and/or Erlang descendants. Just by simple deduction it seems that Clojure and Elixir are the cool kids that you should hang out with.
I haven’t had a chance to play with Clojure, but I got into Elixir after researching about Erlang and I really like it. It runs on Erlang VM, has a really nice Ruby-like syntax and allows you to write powerful DSLs with macros. The fact that it runs on Erlang VM with its' actor-based architecture means that you can not only transparently run your application across multiple CPU cores without thinking too much, but also run it across multiple machines in almost the same way.
If you ever touched Ruby you know that syntax can really matter and how it just feels nice under your fingers. Well for Elixir I could say the same. And finally macros, originated in LISP, are also available in Elixir because of it’s homoiconicity. Macros give you the power to extend the language as you feel needed and that means that you can turn Elixir in a language specialised for solving your particular problem.
If these few lines got you exited about Elixir and you want to read more, below I have listed a few resources that will help you get started.
Programming Elixir by David Thomas is a great book. I read it once during the summer and recently went through it again. In the second reading I was already familiar with most basic concepts so I was ready to absorb many details I missed the first time. It could be the first book on your menu.
Introducing Elixir by Simon St. Laurent and J. David Eisenberg is the second book that is I guess is the same kind of beginner’s book. Those two will be in print around June this year but of course you can get ebook versions right away.
The Third book would be Elixir in Action by Saša Jurić, scheduled for spring 2015, but is also available through early access ebook program. The fourth and last one that I am aware of is The Little Elixir & OTP Guidebook by Benjamin Tan. There is no publishing date for that one yet.
There’s a fantastic screencast series on Elixir by Josh Adams. Although I think that screencasts may not the best medium to acquire new knowledge when you have some experience, I think they are amazing when you are just starting out. Josh does great job and I am sure he will do big things for the Elixir community in the same way as Ryan Bates did for Ruby/Rails community. There are a few episodes that are free. Go and support Josh’s great work. It’s only $9 per month.
Fountain is weekly newsletter created by HashRocket, a company that was originally, just like Rendered Text, focused only on Ruby. Newsletters contain only a few links since community is very young but it’s a good way of staying up to date with latest development.
Mailing list & Google
Googling for random error message will probably make you desperate. First result will not be a solution on StackOverflow for the exact same problem you had, the way you might be used to with languages that have been around for longer. A few years will have to go by before that happens. Community is small but it’s growing really fast. This is of course understandable since the language hasn’t hit 1.0 yet. You will probably have to dig around on the mailing list or ask on IRC channel, but all that is part of the excitement.
Elixir is awesome. You will discover and learn many new concepts from computer science that are really powerful but neglected in other languages. Ultimately Elixir will replace Node.js and Ruby in many places and now is a chance to be an Elixir guru even before the waves start rising.