Product Details
Programming Erlang: Software for a Concurrent World

Programming Erlang: Software for a Concurrent World
By Joe Armstrong

List Price: $36.95
Price: $24.39 & eligible for FREE Super Saver Shipping on orders over $25. Details

Availability: Usually ships in 24 hours
Ships from and sold by Amazon.com

30 new or used available from $21.91

Average customer review:

Product Description

Erlang solves one of the most pressing problems facing developers today: how to write reliable, concurrent, high-performance systems. It's used worldwide by companies who need to produce reliable, efficient, and scalable applications. Invest in learning Erlang now.

Moore's Law is the observation that the amount you can do on a single chip doubles every two years. But Moore's Law is taking a detour. Rather than producing faster and faster processors, companies such as Intel and AMD are producing multi-core devices: single chips containing two, four, or more processors. If your programs aren't concurrent, they'll only run on a single processor at a time. Your users will think that your code is slow.

Erlang is a programming language designed for building highly parallel, distributed, fault-tolerant systems. It has been used commercially for many years to build massive fault-tolerated systems that run for years with minimal failures.

Erlang programs run seamlessly on multi-core computers: this means your Erlang program should run a lot faster on a 4 core processor than on a single core processor, all without you having to change a line of code.

Erlang combines ideas from the world of functional programming with techniques for building fault-tolerant systems to make a powerful language for building the massively parallel, networked applications of the future.

This book presents Erlang and functional programming in the familiar Pragmatic style. And it's written by Joe Armstrong, one of the creators of Erlang.

It includes example code you'll be able to build upon. In addition, the book contains the full source code for two interesting applications:

  • A SHOUTcast server which you can use to stream music to every computer in your house, and
  • a full-text indexing and search engine that can index gigabytes of data.

    Learn how to write programs that run on dozens or even hundreds of local and remote processors. See how to write robust applications that run even in the face of network and hardware failure, using the Erlang programming language.


  • Product Details

    • Amazon Sales Rank: #15060 in Books
    • Published on: 2007-07-11
    • Format: Illustrated
    • Number of items: 1
    • Binding: Paperback
    • 536 pages

    Editorial Reviews

    About the Author
    In his search to find better ways to implement fault-tolereant applications, Joe Armstrong designed and implemented the first version of Erlang in 1986. He wrote the first Erlang book and held the first Erlang course-he has worked with Erlang from the very beginning. He has taught Erlang to hundreds of programmers and held countless lectures and keynotes describing the technology.

    Joe has a PhD in computer science from the Royal Institute of Technology in Stockholm, Sweden and is an expert in the construction of fault tolerant systems.

    Joe was the chief software architect of the project which produced the Erlang OTP system. He has worked as an entrepreneur in one of the first Erlang startups (Bluetail) and has worked for 30 years in industry and research. Joe currently works for Ericsson AB where Erlang is used to build highly-fault tolerant switching systems.


    Customer Reviews

    Very easy to digest5
    I made an attempt at working through this book 6 months ago and didn't feel quite comfortable so I dropped it and instead pursued Programming in Haskell. Yesterday I decided to get back into Erlang and found it a complete breeze, powering through the entire book in a few hours.

    A lot of things seem to become really easy after working with Haskell, not to say that programming in Haskell is hard, just it twists and bends your mind into a different shape.

    Now that I'm abreast of the material covered in this book, I am leaping into a large project with great confidence.

    5/5, excellent book!

    Necessary book, but needs a 2nd edition3
    I've been working through this book and am very glad for it. I'm not sure how else I'd efficiently have gotten up to speed on Erlang.

    The book does need lots of minor work, though - it still feels like a beta piece of software. There are examples / explanations that make use of not-yet (or never) explained functions/modules. The appendix describing some of Erlang's modules only claims that the set of documented modules is incomplete, but doesn't mention that the set of functions within some modules is also incomplete. Etc.

    Another issue is the license of the code examples. The author shows some example code for how to do certain things, such as a distributed map function (pmap). After reading the book, it's hard (at least for a newbie) to imagine a different solution than the author's. But if you go to the website containing the example code from the book, you find a pretty restrictive license on the example code. So this leaves the reader in a difficult position: the book only shows you one way to do something like pmap, and the author has a license on that code that makes it unusable to many readers. This is more than a little frustrating.

    Finally, the index is very incomplete.

    If you're new to Erlang you still want this book. But it would really be a good thing for the author to gather criticism (if he hasn't already) and go a second round.

    An excellent book5
    This book was recommended by a colleague and I was hesitant at first, but it really is an excellent read.

    After flipping through the first few chapters, taking in the examples and absorbing what it was spelling out, it really altered the way that I fundamentally look at software modeling. Joe Armstrong's style of teaching by example and breaking things down into the smallest possible space makes this book worthwhile.