# 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]]