Erlang Programming: A Concurrent Approach to Software DevelopmentThis is the main reason I have decide to investigate Erlang.

The book starts of with an interesting history and overview of Erlang, an introduction to concurrency, system robustness in distributed computation. Also included are a comparison to C++, and of course the “Why should I use Erlang“ section.

“Erlang Programming” is well-organized and covers enough of the key topics for a beginner to get started using Erlang as well as some advanced topics.

The author takes you through sequential and concurrent programming using Erlang as well as pattern matching, message passing, processes, error handling, GUI’s and distributed processing. There is a lot of material here not to be glossed over by newcomers. Functional programming requires a different way of thinking about structuring your code, and that new paradigm won’t come quickly to most people.

One of the more-memorable paragraphs which strongly advocates for Erlang’s implementation of concurrency is on Page 9….

Erlang and Functional Programming

“The recent success of Erlang is a success for functional programming, too, because it uses functional programming principles without making a big fuss about it: they are simply the right foundation on which to build a language with concurrency designed in from the start.

One of the prevalent myths in the community in the mid-1980s was that functional programming languages would be the only languages capable of working on the general-purpose parallel machines that were “just around the corner.” It didn’t turn out like that 20 years ago, but perhaps that’s exactly what we are seeing now in the way that Erlang is being used to provide massive concurrency in server farms, cloud computing, and on the multicore processors inside all our computers, from laptops on up.”

I highly recommend this book to you if you are looking at learning Erlang. It will guide you through most of what you need to know to get up and running.