Erlang

Erlang is a functional programming language that the official site describes as “originally developed at the Ericsson Computer Science Laboratory” and intended, together with its OTP libraries, “for building robust fault-tolerant distributed applications.” It was created to solve a very concrete problem: writing the software that runs inside telephone switches, which must stay up continuously and handle huge numbers of simultaneous calls.

According to Erlang’s own FAQ, the language “emerged in the second half of the 80s” out of a project studying which language features made telecommunications systems simpler to write. The original team was Joe Armstrong, Robert Virding, and Mike Williams, with others later adding distribution and the OTP framework. The language is, in the FAQ’s words, “oriented towards concurrency and message passing, which happens to be functional.”

Erlang’s concurrency model rests on lightweight processes. The FAQ notes that “Erlang processes are very lightweight, much lighter than an operating system thread,” so a single system can run very large numbers of them. Processes do not share memory; they communicate only by sending messages, and the FAQ even traces the send operator ”!” back to CSP. This isolation is what makes Erlang’s let-it-crash style of fault tolerance practical: a failing process can be restarted without harming the rest of the system.

The language was later released as open source. Erlang’s site records that “since OTP 18.0, Erlang/OTP is released under Apache License 2.0,” with earlier releases under the Erlang Public License. Its design for concurrency and reliability has carried it well beyond telecom into systems such as the WhatsApp messaging backend and the RabbitMQ message broker.

Sources

Last verified June 8, 2026