Introduction to Elixir

Elixir is a dynamic, functional, concurrent language that runs on the BEAM, the Erlang virtual machine.

1.1 What is Elixir?

Elixir is a dynamic, functional, concurrent language that runs on the BEAM, the Erlang virtual machine. It gives you:

Functional programming — immutable data, first-class functions, pattern matching.

Massive concurrency — millions of lightweight isolated processes.

Fault tolerance — "let it crash" philosophy with supervisors (from Erlang/OTP).

Distribution — processes communicate transparently across machines.

Metaprogramming — hygienic macros; most of the language is built with them.

Great tooling — Mix (build), Hex (packages), ExUnit (tests), IEx (REPL), ExDoc (docs).

Full Erlang interop — call any Erlang library at zero cost.

1.2 History

Erlang created at Ericsson (Joe Armstrong, Robert Virding, Mike Williams) Erlang/OTP open-sourced

José Valim starts Elixir (Plataformatec) Elixir 1.0; Phoenix development starts Built-in code formatter (1.6)

Releases built into Mix (1.9); Phoenix LiveView announced Nx (numerical Elixir) and Livebook

Set-theoretic type system research begins landing Elixir 1.17–1.19: gradual type checking of patterns, guards, function calls; Duration; faster compilation

1.3 Who uses Elixir?

Discord, WhatsApp-style messaging systems, Pinterest, PepsiCo, Heroku, Bleacher Report, Moz, Financial Times, Supabase (Realtime), Fly.io, and many startups.

1.4 Why learn Elixir?

Build soft real-time, highly available systems with little code.

Concurrency without shared memory, locks, or callback hell.

Readable, Ruby-inspired syntax with Erlang's battle-tested runtime.

Phoenix LiveView: interactive web apps without writing JavaScript.