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.