Author: Martin Logan,Eric Merritt, and Richard Carlsson
Publisher: Manning, 2010
Aimed at: Programmers familiar with concurrency
Pros: Introduces Erlang in a modern and appropriate way
Cons: Not for complete beginners
Reviewed by: Alex Armstrong
Erlang isn't the most popular language on the planet but it is an interesting one. It has a strange history and an association with the telecoms industry but don't let that put you off - it is a perfectly general language. This book covers Erlang and its almost indispensable framework OTP - the Open Telecom Platform. Again don't let the name given to the framework put you off. As the authors explain:
"The name was intended to make decision makers in the company (Ericsson) feel warm and fuzzy - Telecom was our core business, Open was the buzzword of the day and the prevailing wisdom was that if you wanted to build a complex product you had to have a platform... "
The book is divided into three parts. The first deals with the task of introducing Erlang and OTP. This isn't for the programming beginner. The descriptions of what is going on are easy enough to follow but only if you already have some background in programming and concurrency in particular. Chapter 2 does walk you through some very simple stuff but you are quite quickly into tuples, lists and strings. By the end of the chapter you should know enough about Erlang basics to understand the rest of the book. It isn't an extensive or in depth coverage of Erlang syntax, but there are other resources that do this. It mostly concentrates on motivating the way Erlang does something and it is more like a friendly chat about the language than a formal definition.
Chapter 3 is a practical introduction to OTP via writing a TCP based RPC server. The section ends with a look at OTP applications in general and using the graphical introspection tools. The web server project recurs in later parts of the book.
Part II is an extended tutorial on building a production system - building a cache, logging and event handling, distributed Erlang/OTP, packaging and deployment. This is where you find out about practical Erlang.
Part III is on going further - working with other systems and fine tuning. Chapter 11 is about adding an HTTP interface to the cache. Chapter 12 deals with using foreign code and Chapter 13 deals specifically with Java integration. The book closes with a look at performance and tuning.
This probably isn't the only Erlang book you will need but it is essential. If you want to use Erlang in a modern and appropriate way and if you want to master OTP then this book is what you need. Highly recommended.