jonnifyelixir
F3 · The Elixir Language / A short history

F3 · before the lessons · reading 1

A short history of Elixir

Elixir is a young language built on a machine that had already been proving itself in production for two decades. The story is about one engineer who wanted Ruby's ergonomics and Erlang's resilience at the same time, and decided he could have both.

The story

Around 2010, José Valim — a Brazilian engineer and a member of the Ruby on Rails core team — was trying to make Rails perform well across multiple CPU cores. The experience left him convinced that Ruby was not built for the concurrency that multi-core machines demanded. So he went looking at how other runtimes solved the problem, and found Erlang: a language whose virtual machine, the BEAM, had been running fault-tolerant telecom systems since the late 1980s, built around cheap isolated processes and message passing.

Rather than adopt Erlang's unfamiliar syntax wholesale, Valim started writing a new language on top of its virtual machine — one with a friendlier, more expressive surface, real metaprogramming, and full access to everything Erlang already offered. He made the first commit on 9 January 2011, as a research project at the consultancy Plataformatec. The first public release, v0.5.0, was announced on 25 May 2012; the language reached a stable v1.0 on 18 September 2014, which brought macros, protocols, and the Mix build tool. A new minor version has shipped roughly every six months since.

What it inherited

Elixir is often described as a blend of three influences. Select one to see what it took from each.

Influences · select a parent

Erlang the BEAM · OTP · 1986 Ruby syntax · ergonomics Clojure macros · protocols Elixir 2011 · on the BEAM

The inheritance

A resilient runtime from Erlang, a friendly surface from Ruby, and metaprogramming from the Lisp family by way of Clojure.

The result

A functional, concurrent language that feels modern yet runs on a machine proven over decades.

Key facts

Creator
José Valim — Brazilian engineer, former Ruby on Rails core team.
First commit
9 January 2011, as a research project at Plataformatec.
First public release
v0.5.0, 25 May 2012.
Version 1.0
18 September 2014 — macros, protocols, and the Mix build tool.
Runtime
the BEAM, the Erlang virtual machine; full interop with Erlang.
License
Apache 2.0; file extensions .ex and .exs.

Next: the release timeline — how the language grew, one headline per version.