# Erlang
Describe the Erlang programming languages and its most important features in a bullet point list.
> [!ai]+ AI
>
> - Erlang is a [[functional programming]] language designed for building highly concurrent and fault-tolerant systems.
> - It was created by Ericsson in the 1980s for their telecom infrastructure.
> - One of its most important features is lightweight processes, which allows for massive concurrency. These processes are very efficient and can be created and destroyed quickly.
> - Erlang provides [[message passing]] between processes as the primary means of communication, making it easy to build distributed systems.
> - It has built-in support for fault tolerance through its "Let it crash" philosophy. When a process encounters an error, it can simply terminate and let a supervisor process handle the error and restart the failed process if necessary.
> - Erlang's pattern matching allows for elegant and concise code, making it easier to write complex algorithms.
> - It has built-in support for hot code swapping, allowing developers to update code in a running system without any downtime or interruption.
> - Erlang's OTP (Open Telecom Platform) provides a set of libraries and design principles to build scalable and maintainable applications.
> - It has excellent support for building distributed systems with features like distribution transparency, load balancing, and error recovery mechanisms.
> - Erlang has powerful tools like the OTP supervisor hierarchy, which helps manage failure scenarios in complex systems.
## See
- [[Concurrency]]
- [[Erlang OTP]]
- [[BEAM]]
- [[Elixir]]