Erlang is a simple functional programming language used for writing distributed real time systems, particularly telecommunications systems. It doesn't seem quite as horrible as Haskell.
- Massively multithreaded - can run tens of thousands of concurrent erlang-processes in a single OS process with no locking.
- Distributed - erlang programs can spawn erlang-processes on any node within an erlang cluster. Erlang code is usually written so that it is easy to migrate between hosts/nodes.
- Huge standard library ErlangOtp? that makes writing reliable, scalable, fault-tolerant programs easy.
- Parallel garbage collection (GC on per erlang-process basis, GC of one erlang-process doesn't block any other erlang-process)
Ideal for writing applications for telcos and for many other domains where scalable fault-tolerant systems are a requirement.