It’s a brand new year, time to set some goals! Software wise, my main goal this year is to get familiar with functional programming.
So, why Elixir and Elm?
First, Elixir is intriguing. Elixir runs on top of the Erlang VM. It uses the same VM that powers WhatsApp…. and WhatsApp is VERY performant. You can find articles and videos on it here:
There seems to be little doubt that a language built on top of the Erlang VM will be performant.
Now, why not learn Erlang instead of Elixir? Elixir was created by Jose Valim, a key contributor in the Rails world. He created the “Devise” library in Rails. I’ve since looked at the Elixir API and it was definitively heavily influenced by the Ruby and Rails APIs. I’m just hoping to cut some of the API learning time by leveraging some of my Ruby experience and focus on the new stuff: functional programming proper.
One language should be sufficient to learn how functional programming work but I’ve decided to also dig into Elm.
This is an emotional decision, I think. I listened to a few podcasts that intrigued me:
- The Changelog (ep #191) Elm and Functional Progamming
- The Changelog (ep #216) Elm and Functional Progamming
- Ruby Rogues RR Progamming Language Evolution and Design with Gilad Bracha
Elm is a “transpiled” language (Elm -> JS). Furthermore, it is typed. It has meaningful error messages and has an intriguing programming model that looks like it might help out with the asynchronous nature of client application. Everything in an Elm program is message based. So really, it’s all asynchronous.
So, there you go. My plate is full. It’s going to be interesting.