Erlang is a functional, concurrent and opensource programming language.

At school we learned that X is not equal to X+1, but most of not functional programming languages (C, C#, Java, Python, Ruby, Perl, ..) permit it.

X = X + 1

And this is the reason of many bugs we have inside the Operating Systems and Software we use everyday!!! But in Erlang (Lisp and others) this kind of assignment is not permitted !!!! šŸ˜‰

“In functional programming, assignment is discouraged in favor of single assignment, also called name binding or initialization. Single assignment differs from assignment as described in this article in that it can only be made once, usually when the variable is created; no subsequent re-assignment is allowed. Once created by single assignment, named values are not variables but immutable objects.” {wikipedia]


One of the best advantages of using Ā Erlang is the OTP. “A basic concept in Erlang/OTP is the supervision tree. This is a process structuring model based on the idea of workers and supervisors.

  • Workers are processes which perform computations, that is, they do the actual work.
  • Supervisors are processes which monitor the behaviour of workers. A supervisor can restart a worker if something goes wrong.
  • The supervision tree is a hierarchical arrangement of code into supervisors and workers, making it possible to design and program fault-tolerant software

See OTP Design Priciples for more details

Erlang and ESB

Read the articles Erlang and RabbitMq and Mule ESB

Erlang and Databases

ReadĀ Erlang and Database and Erlang ODBC: see also my project Oreste about Erlang & database & REST services.

Erlang and Web Services

ReadĀ Erlang SOAP Web services with Yaws and Erlang and Restful Web services

Erlang articles

Erlang opensource projects

Milano Erlang Milan

My erlang opensource projects are:

Italia Erlang Italy