Chapter 4
Elixir

by Bruce Tate

Languages that provoke the strongest reactions in me are all strongly opinionated. Ruby provided plenty of sugar, insulating me from tedium and letting me focus on a task. Others find the language structure haphazard and frustrating. Scala’s strong typing structures work well for some, but for me managing types across two major programming paradigms built an intellectual wall that proved too steep for me to climb.

Elixir was love at first sight. I was looking for a functional language that handled distribution, had plenty of sugar to eliminate tedious repetition, and allowed me to grow the language through metaprogramming. After a couple of sips of Elixir, I found all of these features and more. Each new language is a love-hate relationship.

Think Wolverine, the surly vigilante. You love him or hate him. With a souped-up skeleton he didn’t actually grow, this brooding antihero has the remarkable ability to regenerate when things go wrong. Let him crash. He’ll respawn.

As you might expect, you’ll notice plenty of strong opinions as we dive in:

From that list alone, you’re probably already forming some of your own opinions. Let’s accelerate that process and dive right in.