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.