Erlang is the result of a project at Ericsson’s Computer Science Laboratory to improve the programming of telecommunication applications. A critical requirement was supporting the characteristics of such applications, that include: massive concurrency, fault-tolerance, isolation, dynamic code upgrading at runtime, transactions.

Throughout the whole of Erlang’s history the development process has been extremely pragmatic. The characteristics and properties of the types of systems in which Ericsson was interested drove Erlang’s development.

These properties were considered to be so fundamental that it was decided to build support for them into the language itself, rather than in libraries. Because of the pragmatic development process, rather than a result of prior planning, Erlang “became” a functional language – since the features of functional languages fitted well with the properties of the systems being developed.

The Erlang Handbook is a …