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]
ERLANG OTP
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
- ejabberd: the (de facto standard) XMPP chat, used by facebook.
- NOSQL databases: apache Couchdb, Disco, Riak
- Rabbitmq: an AMQP server
- Tsung is a multi-protocol distributed erlang load testing tool, a faster alternative to Apache Jmeter.
- Web/Application frameworks/servers: Nitrogen, Mochiweb, Yaws, Webmachine,

Milano Erlang Milan
My erlang opensource projects are:
- ebot: an erlang web crawler (ebot source repository)
- oreste: an erlang web/REST interface to databases: the output can be dynamically set among csv, xml, text .. (oreste source repository)
- ewg: and erlang word generator (ewg source repository)
Italia Erlang Italy
