Programming Erlang

December 24, 2008

My current interests in XMPP leaded me to ejabberd (XMPP server) and this to some XEPs PubSub and POSH, and this to wondering about using XMPP as a queue system. Then I discovered some discussions comparing AMQP vs XMPP and realized that both RabbitMQ (an implementation of AMQP) and ejabberd were programmed in Erlang. I was astonished that three of the currently most interesting projects were implemented in the same language (if we include couchDB).

This is why I decided to read “Programming Erlang”. I’ve nearly read half of the book and my expectations has been really exceeded:

  • smooth pace of the book goes from basic knowledge to the hardest part (sequential programming -> advanced sequential programming -> concurrent programming -> distributed programming -> programming multicore CPUs).
  • clear and easy to understand examples.
  • some complete examples such as an IRC Lite implementation gives you the concepts in action.
  • interesting concepts: functional programming, concurrency, distributed programming, fault-tolerant programs.

As missing parts (not sure if they are cover at the end of the book), I found out the following:

  • a bit of history of Erlang. Why erlang?
  • Comparison between Erlang and other concurrency oriented languages such as Scala, Clojure, Stackless Python, …

To sum up, really a MUST READ if you are curious about other programming languages apart from Java, Python or Ruby.