Programming Erlang, 2nd Edition
Software for a Concurrent World
Publisher: Pragmatic Bookshelf
Final Release Date: September 2013
Pages: 548

A multi-user game, web site, cloud application, or networked database can have thousands of users all interacting at the same time. You need a powerful, industrial-strength tool to handle the really hard problems inherent in parallel, concurrent environments. You need Erlang. In this second edition of the bestselling Programming Erlang, you'll learn how to write parallel programs that scale effortlessly on multicore systems.

Using Erlang, you'll be surprised at how easy it becomes to deal with parallel problems, and how much faster and more efficiently your programs run. That's because Erlang uses sets of parallel processes-not a single sequential process, as found in most programming languages.

Joe Armstrong, creator of Erlang, introduces this powerful language in small steps, giving you a complete overview of Erlang and how to use it in common scenarios. You'll start with sequential programming, move to parallel programming and handling errors in parallel programs, and learn to work confidently with distributed programming and the standard Erlang/Open Telecom Platform (OTP) frameworks.

You need no previous knowledge of functional or parallel programming. The chapters are packed with hands-on, real-world tutorial examples and insider tips and advice, and finish with exercises for both beginning and advanced users.

The second edition has been extensively rewritten. New to this edition are seven chapters covering the latest Erlang features: maps, the type system and the Dialyzer, WebSockets, programming idioms, and a new stand-alone execution environment. You'll write programs that dynamically detect and correct errors, and that can be upgraded without stopping the system. There's also coverage of rebar (the de facto Erlang build system), and information on how to share and use Erlang projects on github, illustrated with examples from cowboy and bitcask.

Erlang will change your view of the world, and of how you program.

What You Need

The Erlang/OTP system. Download it from

Product Details
About the Author
Recommended for You
Customer Reviews


by PowerReviews
oreillyProgramming Erlang, 2nd Edition

(based on 1 review)

Ratings Distribution

  • 5 Stars



  • 4 Stars



  • 3 Stars



  • 2 Stars



  • 1 Stars



Reviewed by 1 customer

Displaying review 1

Back to top

(1 of 1 customers found this review helpful)


Much more than a textbook

By Stefano Baghino

from Milan, Italy

About Me Developer

Verified Reviewer


  • Accurate
  • Helpful examples
  • Well-written


    Best Uses

    • Expert
    • Intermediate

    Comments about oreilly Programming Erlang, 2nd Edition:

    The very first impression Erlang can give to many software developers, is that of an exotic programming language: it adopts the functional paradigm, it does not come from the Algol/C syntax family, and it supports concurrency with constructs that are really different from those offered by the usual threaded model. Being so particular in contrast with more established languages, such as C++ and Java, an Erlang book needs to be much more than a general overview: it needs to dig deeper, making the reader accustomed with concepts that are so peculiarly related to the Erlang language and runtime environment.
    "Programming Erlang" (2nd ed.) by Joe Armstrong succeeds in this task, going far beyond the usual scope of programming language textbooks: first, it gently introduces the reader to the Erlang syntax and to the functional programming style it adopts; then, it builds on the knowledge acquired to write sequential Erlang code to go further and teach how Erlang supports concurrency using "actors", low-overhead, independent and isolated virtual machines that only operate via message-passing, thus avoiding the inherent problems of traditional concurrency models based on shared memory, threads and locks.
    After these two first sections, the book goes even beyond the language itself, giving an overview of the main libraries and frameworks used throughout the Erlang world, like the Mnesia NoSQL DBMS and the OTP framework, that enabled many Erlang professionals to build industry-strenght, scalable and reliable software systems.
    All throughout the book the approach is really hands-on, with a lot of code to study, many challenging exercises, even a couple of really interesting projects that really make you understand how to write idiomatic Erlang and use its capabilities to write robust software. An entire, in-depth chapter is devoted to debugging, tracing and profiling. Another one gives you an overview of the main tools used to package and share your code.
    The writing style of Joe Armstrong (who, by the way, is one of the original creators of the language) is colloquial and down-to-earth, making the reader feel at home as he goes through the topics, but never falling in the trap of being sluggish or not specific enough.
    I wouldn't recommend this book to a person without some prior programming background as it builds upon concepts that are not explained in the book, especially related to networking, but for undergraduate CS students and professional software developers: this is real gem that you can't miss, teaching you much more than a programming language and giving a new perspective on how large, real world applications should be thought of and designed.

    Displaying review 1

    Back to top

    Buy 2 Get 1 Free Free Shipping Guarantee
    Buying Options
    Immediate Access - Go Digital what's this?
    Print:  $42.00