BUY THIS BOOK
Add to Cart

Print Book $36.95


Add to UK Cart

Print Book £22.99

What is this?

Programming Erlang Software for a Concurrent World

By Joe Armstrong
First Edition  July 2007 
Publisher: Pragmatic Bookshelf
Pages: 526
ISBN 10: 1-934356-00-X | ISBN 13: 9781934356005
starstarstarstarstar (Average of 2 Customer Reviews)

Buy 2 Get 1 Free Free ShippingGuarantee

Book description

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.
    Full 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.

  • Browse within this book

    Cover




    Featured customer reviews

    Write a Review


    Already familiar with functional programming?,  January 30 2008
    Rating: StarStarStarStarStar
    Submitted by J. Pease   [Respond | View]

    Erlang really appears to be an interesting language, and the author's enthusiasm for the subject shows - which is good. It helped me to keep going, when at times the code was a little hard to follow.

    The book does a good job of introducing the language. In particular later chapters give emphasis to the topics of concurrency through multiple processes, multi-cores and distributed programs. All very timely subjects for a world that is connected to the Internet, and where even laptops have multi-core processors

    Unfortunately, I feel the author somewhat forgot his audience.

    On page 5 he starts out with a description that fit me almost perfectly, and probably many other readers: "Once upon a time a programmer came across a book describing a funny programming language. It had an unfamiliar syntax [...] it wasn't even object-oriented. The programs were, well, different....Not only were the programs different, but the whole approach to programming was different."

    After reading the book I don't feel like the "Erlang Master" that the road map described (pg 9). While the syntax is now familiar, I still look at the Erlang code and it feels foreign. I still have to "decipher" the code instead of read it.

    I would have liked the book to more fully address the items from the "Once upon a time" paragraphs. Being that "the whole approach to programming" is different than the OO that many readers are used to, I would have liked to have seen a chapter (or three) on how to best get into that mode of thinking.

    I do think the book is a good jumping off point. It gives you more than enough to get started.

    However, if you are unfamiliar with languages where functions accept functions which also accept functions as parameters and in turn returns another function as a result, you may end up feeling (as I did) that you only have half the puzzle.


    Masterfully Done!,  August 13 2007
    Rating: StarStarStarStarStar
    Submitted by Anonymous Reader   [Respond | View]

    Programming Erlang is a must-read for anyone interested in learning how to use the unique and powerful Erlang language to create distributed, fault-tolerant, and concurrent systems. Author Joe Armstrong masterfully explains all that is needed to get up to speed. Numerous bite-sized examples are sprinkled throughout the book. There are also three larger examples that show how a more sizable program might be written. These are a SHOUTcast server, an IRC-like chat system, and a full-text indexing and search engine.

    The basic language features are thoroughly explained including everything that a new user might struggle with (e.g. pattern matching, non-destructive assignment, the syntax, using the erlang shell, etc). The normally difficult topics of concurrency, distributed programming, and fault-tolerance are shown to not be so difficult given the right tools and language for the job. The tools include the impressive OTP libraries and the Mnesia database system. Both of these are covered with enough detail to get you up and running with pointers to appropriate manual pages to help you when you progress beyond that.

    The entire book is written in a very pragmatic style that gives you just enough information to get up and running without weighing you down with a bunch of extraneous material. The writing reads very easily. I often felt as if the author was speaking directly to me.

    Multi-core processors are becoming increasingly common. Programs have to be written with concurrency in mind in order to run faster on these newer processors. Programming Erlang shows how easy this can be with a programming language that was designed from the ground up to solve the very problems multiple cores introduce. Even if you don't plan on using Erlang on a daily basis you may very well benefit from an alternative view of the concurrent programming universe. I know I have.


    Read all reviews


    Media reviews
    "The explanatory material and annotations are lucid and an exemplar of technical communication. Programming Erland provides a comprehensive overview for informed readers -- even those without any programming experience -- who want more than a gloss of what Erlang is about and its capabilities. Those who want to learn, or improve their knowledge of, Erlang, will find this an exceptional guide that is comprehensive and detailed."
    -- Major Keary, Book News



    Read all reviews

    Programming Erlang
    See larger cover