Programming Erlang: Software for a Concurrent World Summary and Reviews

Programming Erlang: Software for a Concurrent World
by Joe Armstrong

Programming Erlang: Software for a Concurrent World
List Price: $36.95
Our Price: $20.51
You Save: $16.44 (44%)
Availability: Usually ships in 1-2 business days
Category: Book
See more book details and other editions


or

Book Summary Information

Author: Joe Armstrong
Edition: Paperback
Audio: English (Original Language); English (Unknown); English (Published)
Format: Illustrated
Published: 2007-07-11
ISBN: 193435600X
Number of pages: 536
Publisher: Pragmatic Bookshelf

Book Reviews of Programming Erlang: Software for a Concurrent World

Book Review: A Top 5 Programing Book this Millenium, so far ...
Summary: 5 Stars

This book is outstanding. It's easy to read, fun and, maybe, exciting. The exposition is lucid, and exploits a practical, hands-on, example-driven approach throughout. I enjoyed both the breadth and depth of coverage. It interweaves working code with full, clear explanation, background and valuable insight. It felt like discovering chair-lifts after years of sidling up mountain slopes on ski's.

Erlang and OTP are comparable to Java and core J2EE. Erlang/OTP is freely available, Open Source, software from Ericsson, the telecoms company. Erlang has several impressive attributes, but one is Ericssons claim it is used in telecom's hardware to deliver 99.9999999% (roughly 1 second in 30 years) availability, beating most Enterprise applications by a few 9's.

The excellent roadmap in chapter 1 explains the books organisation and chunking of content; roughly: sequential programming, concurrent programming, distributed programming, interfacing, data storage, databases, OTP and multi-core programming. There is good depth to the content. The order of material can be a little strange, but if you are familiar with programming, it's likely straightforward.

The book sets off at a good pace, quickly getting up and running with 'sequential Erlang'. Unlike many programming books, Armstrong deals with the practical nitty-gritty of downloading, installing, compiling, debugging and running Erlang on Mac, Linux and Windows. He returns to development practicalities at several points to support the increasing sophistication of applications. I felt that he really wants to make learning and applying Erlang straightforward, and he succeeded for me; everything worked 'silky smooth'.

The sequential subset of Erlang is a dynamically-typed functional programming language with all of the usual bits, like: single assignment, pattern matching, list comprehensions, first class functions, exceptions, etc. In use, Erlang feels as much like strict Scheme, with helpful syntax, as statically-typed FP languages like Haskell, OCaml, or Standard ML.

Next Armstrong introduces concurrency with light-weight processes, Erlangs powerful message passing mechanism, and failure handling. This is where this book really takes off. Before we're 1/3rd in, we can exploit our dual or quad-core processors, be ready for future many-core chips, with minimal complexity, and handle process failure by 'healing' the system. Gulp!

Distributed Erlang starts setting things up for the later OTP chapters by applying the distributed computing mechanisms. Erlang implements distributed systems by distributing multiple nodes (Erlang VMs) on and across machines. The earlier concurrent stuff, like messaging and failure handling, easily extends to this environment.

The Erlang data storage chapters on ETS, DEST, and Mnesia, the distributed real-time database, have working examples. I would have liked more depth on Mnesia, but there is on-line documentation at erlang.org. Interfacing covers TCP/IP, HTTP clients and servers, UDP, and integrating with external C programs and internal 'drivers'. There are plenty of nifty examples woven throughout, so enough to keep me experimenting.

The crowning glory is OTP. This provides components and frameworks for building distributed systems which require very little extraneous code or configuration. OTP implements distribution, fault-tolerance, self-healing, administration, error-management, hot-code-upgrading, etc. on behalf of the developer. If you've tried to build these capabilities for real, I think you'll find OTP breathtaking. I would have liked even more examples.

While many of the examples are short, it is testament to the compact, expressive power of Erlang that significant examples are included without making the book feel like a pile of code. There's plenty of explanatory meat too.

Weaknesses? There are a few. I would have liked more string or text processing. More complete comparison with 'traditional web application architecture' because that's perceived as the basic 'bread and butter'. The function-reference appendix is inferior to the free, on-line documentation. I'd also recommend also buying the searchable PDF to speed things up when your working. Finally, the front cover 'zebra-crossing' isn't as cool as the 'pickaxe book' :-)

This book won't make you a great Erlang programmer, but it does feel like a massive leap in an important direction. Even if you never use Erlang, you could benefit from reading it. I found myself hacking pieces of code, experimenting with toy servers, while I was supposed to be watching TV. Beware, Erlang can become addictive stuff.

I apologise for the long review, but the book review listed here was too sparse to do the book justice.

Summary: Easy to read, practical, engaging, and sometimes inspirational. If you are interested in building Enterprise-class distributed software systems, get the book, download the open source software, hack the examples, and revel in the experience; simply: "jump in the water is lovely".

Computers & Internet Books

Book Subjects
Most talked about in Parallel and Distributed Systems
Advanced .NET Remoting, Second Edition ImageAdvanced .NET Remoting, Second Edition
by Ingo Rammer, Mario Szpuszta
Apress; Published: 2005-02-16; Paperback; Book
Best price: $38.21
Price in other shops: $59.99
The Art of Multiprocessor Programming ImageThe Art of Multiprocessor Programming
by Maurice Herlihy, Nir Shavit
Morgan Kaufmann; Published: 2008-03-03; Paperback; Book
Best price: $49.50
Price in other shops: $69.95
Distributed Algorithms (The Morgan Kaufmann Series in Data Management Systems) ImageDistributed Algorithms (The Morgan Kaufmann Series in Data Management Systems)
by Nancy A. Lynch
Morgan Kaufmann; Published: 1997-04; Hardcover; Book
Best price: $60.00
Price in other shops: $125.00
Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions (Addison-Wesley Signature Series) ImageEnterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions (Addison-Wesley Signature Series)
by Gregor Hohpe, Bobby Woolf
Addison-Wesley Professional; Published: 2003-10-20; Hardcover; Book
Best price: $34.70
Price in other shops: $59.99
Programming Erlang: Software for a Concurrent World ImageProgramming Erlang: Software for a Concurrent World
by Joe Armstrong
Pragmatic Bookshelf; Published: 2007-07-11; Paperback; Book
Best price: $20.69
Price in other shops: $36.95
Java Concurrency in Practice ImageJava Concurrency in Practice
by Brian Goetz, Tim Peierls, Joshua Bloch, Joseph Bowbeer, David Holmes, Doug Lea
Addison-Wesley Professional; Published: 2006-05-19; Paperback; Book
Best price: $32.45
Price in other shops: $54.99
Similar books summaries and other product reviews
High Performance Web Sites: Essential Knowledge for Front-End Engineers ImageHigh Performance Web Sites: Essential Knowledge for Front-End Engineers
by Steve Souders
O'Reilly Media, Inc.; Published: 2007-09-11; Paperback; Book
Best price: $13.98
Price in other shops: $29.99
JavaScript: The Good Parts ImageJavaScript: The Good Parts
by Douglas Crockford
O'Reilly Media, Inc.; Published: 2008-05-15; Paperback; Book
Best price: $16.81
Price in other shops: $29.99
The Ruby Programming Language ImageThe Ruby Programming Language
by David Flanagan, Yukihiro Matsumoto
O'Reilly Media, Inc.; Published: 2008-01-25; Paperback; Book
Best price: $20.00
Price in other shops: $39.99
The Art of Multiprocessor Programming ImageThe Art of Multiprocessor Programming
by Maurice Herlihy, Nir Shavit
Morgan Kaufmann; Published: 2008-03-03; Paperback; Book
Best price: $49.50
Price in other shops: $69.95
The Haskell School of Expression: Learning Functional Programming through Multimedia ImageThe Haskell School of Expression: Learning Functional Programming through Multimedia
by Paul Hudak
Cambridge University Press; Published: 2000-06; Paperback; Book
Best price: $22.03
Price in other shops: $43.00
Programming in Haskell ImageProgramming in Haskell
by Graham Hutton
Cambridge University Press; Published: 2007-01-15; Paperback; Book
Best price: $30.00
Price in other shops: $47.00
The Definitive ANTLR Reference: Building Domain-Specific Languages (Pragmatic Programmers) ImageThe Definitive ANTLR Reference: Building Domain-Specific Languages (Pragmatic Programmers)
by Terence Parr
Pragmatic Bookshelf; Published: 2007-05-17; Paperback; Book
Best price: $22.22
Price in other shops: $36.95
RESTful Web Services ImageRESTful Web Services
by Leonard Richardson, Sam Ruby
O'Reilly Media, Inc.; Published: 2007-05-08; Paperback; Book
Best price: $20.25
Price in other shops: $39.99
Programming Collective Intelligence: Building Smart Web 2.0 Applications ImageProgramming Collective Intelligence: Building Smart Web 2.0 Applications
by Toby Segaran
O'Reilly Media, Inc.; Published: 2007-08-16; Paperback; Book
Best price: $22.00
Price in other shops: $39.99
Beautiful Code: Leading Programmers Explain How They Think (Theory in Practice (O'Reilly)) ImageBeautiful Code: Leading Programmers Explain How They Think (Theory in Practice (O'Reilly))
O'Reilly Media, Inc.; Published: 2007-06-26; Paperback; Book
Best price: $32.00
Price in other shops: $44.99