Definition - What does Erlang Programming Language mean?
The Erlang programming language is a general-purpose, simultaneous and garbage-collected programming language, which also serves as a runtime system. The sequential derivative of Erlang is a functional language with firm calculation, single assignment and dynamic data entry, which concurrently follows the Actor model.
Developed by Joe Armstrong in 1986, Erlang was first released by Ericsson as a proprietary language, then released in 1998 as an open source language. Ericsson engineered Erlang to support distributed, fault-tolerant, soft-real-time and non-stop applications. Erlang supports hot swapping; thus code can be replaced without restarting the system.
In most languages, threads are viewed as complex error-prone areas. However, Erlang allows language-level development for the creation and handling of processes. This is meant to simplify simultaneous programming for programmers. In Erlang, all concurrency is explicitly clear; processes exchange data through message passing rather than shared variables, eliminating the existence and need for locks.
Erlang’s development concepts are much like the development of Erlang-built systems. Mike Williams, an Erlang development team member and inventor, abides by the following philosophy:
The Best Working Techniques: Find the best working techniques, using prototyping through the developer's design.
Skills - Not Just Ideas: Ideas are not enough. A developer must also have the skills to realize the ideas and verify that they work.
Minimize Errors: Keep errors to a minimum, preferably only during the research phase rather than during production.
A major advantage of Erlang programming language is its support for threading and concurrency with a small group of primitives efficiently generating and linking processes. These processes are an Erlang application structure’s basic elements and freely employ the communicating sequential processes (CSP) model.