← All languages

Erlang

BEAM / functional · 1986Actively developed

Fault-tolerant concurrent services built from isolated processes and message passing.

Functional

Homepage
https://www.erlang.org/
Reference / standard
https://www.erlang.org/doc/system/reference_manual.html
Community & forums
https://www.erlang.org/community
Wikipedia (English)
https://en.wikipedia.org/wiki/Erlang_(programming_language)

Tracked release

Version
OTP 29.1
Artifact
Runtime / OTP feature release
Published
2026-09-16
Source checked
2026-10-22
https://www.erlang.org/

Use & ecosystem

Suited for
Web backends, Distributed services
Family / tradition
Functional / ML / lazy, Erlang / BEAM
Maturity
Established
Ecosystem breadth
Focused

Decades of production operation and a stable runtime justify Established. The ecosystem is deep in concurrent services rather than broad across unrelated application domains.

Industry & practical use

Telecommunications, messaging and distributed service infrastructure are its principal strengths. RabbitMQ is a concrete widely deployed Erlang/OTP application; OTP supervision supports services whose components must fail independently.

Compilers, libraries & tooling

Erlang/OTP includes the BEAM runtime, networking and supervision libraries. Rebar3 and Hex support builds and packages; native extensions require care around runtime safety.

Platforms & deployment

General toolchains
Linux, Windows, macOS
Specialized tooling
None catalogued
Native cross-compilation
Not the usual deployment model

Deploy the appropriate BEAM runtime on the target OS. Unix-like servers are a particularly common operational environment.

Portable BEAM code normally runs on a separately installed target runtime. Native extensions and runtime cross-builds are separate concerns.

Project health & support

Ericsson and the open-source community maintain OTP. Long-running institutional support is strong evidence, without guaranteeing the maintenance of every package.

Use, ecosystem & platform assessment reviewed 2026-10-22 · Sources below

History & origin

Erlang began at Ericsson in 1986 to support telecommunications systems. Its language and OTP libraries developed around concurrency, supervision and long-running services.

Creators
Joe Armstrong, Robert Virding, Mike Williams, Ericsson
Origin
1986 — Initial development at Ericsson; open-sourced in 1998.

Influences & descendants

Influenced by

  • Not yet documented in this catalogue.

Influenced in this catalogue

Language features

Typing
Dynamic
Execution
Bytecode VM, JIT
Block structure
Explicit delimiters
Semicolons
Context-dependent
Lexical closures
Yes
Namespaced modules
Yes
Pattern matching
Yes
Macro system
Token-based preprocessor macros

Implementation notes

  • Semicolons separate clauses; periods terminate definitions. The preprocessor is textual, not an AST macro system.

Sources & references

Project overview
https://www.erlang.org/
Language / implementation reference
https://www.erlang.org/doc/system/reference_manual.html
Modules and preprocessing
https://www.erlang.org/doc/system/modules.html

Use, ecosystem & platform sources

Project overview
https://www.erlang.org/
Language / implementation reference
https://www.erlang.org/doc/system/reference_manual.html
RabbitMQ deployment requirements
https://www.rabbitmq.com/docs/install-debian

See the classification definitions for implementation-dependent features. Influence links cover the entries documented here.