Paradigm | multi-paradigm: concurrent, functional |
---|---|
Designed by | Joe Armstrong, Robert Virding, and Mike Williams |
Developer | Ericsson |
First appeared | 1986 |
Stable release |
19.2 / December 9, 2016
|
Typing discipline | dynamic, strong |
License |
Apache License 2.0 (since OTP 18.0) Erlang Public License 1.1 (earlier releases) |
Filename extensions | .erl .hrl |
Website | www |
Major implementations | |
Erlang | |
Influenced by | |
Prolog, Smalltalk, PLEX,LISP | |
Influenced | |
F#, Clojure, Rust, Scala, Opa, Reia, Elixir, Dart, Akka | |
|
Apache License 2.0 (since OTP 18.0)
Erlang (/ˈɜːrlæŋ/ ER-lang) is a general-purpose, concurrent, functional programming language. It is also a garbage-collected runtime system. The sequential subset of Erlang supports eager evaluation, single assignment, and dynamic typing. Erlang is known for its designs that are well suited for systems with the following characteristics:
It was originally a proprietary language within Ericsson, developed by Joe Armstrong, Robert Virding and Mike Williams in 1986, but was released as open source in 1998. Erlang, along with OTP, a collection of middleware and libraries in Erlang, are now supported and maintained by the OTP product unit at Ericsson and have been widely referred to as Erlang/OTP.
The name "Erlang", attributed to Bjarne Däcker, has been presumed by those working on the telephony switches (for whom the language was designed) to be a reference to Danish mathematician and engineer Agner Krarup Erlang or the ubiquitous use of the unit named for him, and (initially at least) simultaneously as a syllabic abbreviation of "Ericsson Language".