Tech moves fast! Stay ahead of the curve with Techopedia!
Join nearly 200,000 subscribers who receive actionable tech insights from Techopedia.
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.