Vous voulez voir cette page en français ? Cliquez ici.

Sign in to turn on 1-Click ordering.
More Buying Choices
Have one to sell? Sell yours here
Tell the Publisher!
I'd like to read this book on Kindle

Don't have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.

Programming Erlang [Paperback]

Joe Armstrong
5.0 out of 5 stars  See all reviews (2 customer reviews)
List Price: CDN$ 44.95
Price: CDN$ 28.32 & FREE Shipping. Details
You Save: CDN$ 16.63 (37%)
o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o
Temporarily out of stock.
Order now and we'll deliver when available. We'll e-mail you with an estimated delivery date as soon as we have more information. Your account will only be charged when we ship the item.
Ships from and sold by Amazon.ca. Gift-wrap available.
There is a newer edition of this item:
Programming Erlang: Software for a Concurrent World Programming Erlang: Software for a Concurrent World
CDN$ 35.20
In Stock.

Book Description

July 18 2007

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.

Customers Who Bought This Item Also Bought

Product Details

Sell a Digital Version of This Book in the Kindle Store

If you are a publisher or author and hold the digital rights to a book, you can sell a digital version of it in our Kindle Store. Learn more

What Other Items Do Customers Buy After Viewing This Item?

Customer Reviews

4 star
3 star
2 star
1 star
5.0 out of 5 stars
5.0 out of 5 stars
Most helpful customer reviews
2 of 2 people found the following review helpful
5.0 out of 5 stars Awesome book on my new favorite language Oct. 19 2007
Armstrong has been a key part of the development of Erlang since it's inception in Ericsson. This book is great. This book would be too fast paced for a first programming book, but that's one of the things I love about it. Amazing! This book isn't all things to all people!

Armstrong steps you through all the important parts of Erlang as a sequential programming language right away and has you dealing with parallel programming by page 135.

Now you have to read the first 120pages very thoroughly or you may miss some important concepts, the book is quite dense in the first half. I completely misunderstood pattern matching for days.

But there is no easier way to have multi threads, and no better language for it.
Was this review helpful to you?
5.0 out of 5 stars Great way to start learning about Erlang July 25 2009
I buy a lot of books about programming in Java and C++. A lot. This book is well written, has clear and good examples and is making me a convert to Erlang. The author shows why and how Erlang can be employed to solve complex system issues. Functional programming is quite the departure from OO based sequential programming. But once you get into thinking that way, it opens new horizons. At work, we are finally able to solve problems we have been trying to address in C++ and Java with limited success. Mr. Armstrong takes you through all aspects of Erlang and the knowledge gained is easily applied. A must read for anyone building complex concurrent and scalable systems.
Was this review helpful to you?
Most Helpful Customer Reviews on Amazon.com (beta)
Amazon.com: 4.3 out of 5 stars  35 reviews
49 of 54 people found the following review helpful
3.0 out of 5 stars Good, But Not Great Aug. 8 2007
By Seth H. Ladd - Published on Amazon.com
There aren't a lot of Erlang books out there, so if you want to learn Erlang, you need this book.

However, I found the writing style a bit preachy. The organization of the book needs work, as the author is constantly referring to topics he hasn't covered yet. I also found that the index needs a lot of work, as it's missing quite a few topics that I know are in the book. The API reference also is missing some functions, which I thought was odd.

This book does a good job in promoting Erlang's ability to do concurrency well. I was hoping to get more functional programming style and mind set from the book, though.

All in all a good book to have if you want Erlang, but you'll need more if you want to really dive into functional programming or if you want a complete Erlang reference.
43 of 48 people found the following review helpful
5.0 out of 5 stars A programmer's library must-have July 19 2007
By Paul Mineiro - Published on Amazon.com
The computer language Erlang is mature and impressive, with primitives for concurrent, fault-tolerant, and distributed programming that make it a natural for internet applications. So why isn't Erlang more popular in America? The lack of recent accessible introductions in English is probably one reason.

This book fills that void. If you've been wondering what Erlang is about, you need to get this book. It's very readable and does not require any prior experience with functional languages to make headway. It's packed with examples and the book encourages experimenting with them; in fact the first chapter explains how to get an installation of Erlang.

My one complaint is that some areas are omitted or only lightly treated, for instance mnesia and parse transformations. However there is extensive documentation on the internet available for these and other advanced Erlang features. This book will get you to journeyman level and allow you to leverage those online resources.

Even if you never plan to use Erlang, you should read this book, since Joe Armstrong's wisdom on how to build fault-tolerant software is sprinkled throughout (of course, why implement half of Erlang in a bug-ridden fashion in some other language, when you can get the real thing).
30 of 33 people found the following review helpful
4.0 out of 5 stars Are you already familiar with functional programming? Jan. 30 2008
By J. Pease - Published on Amazon.com
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

I gave the book a 4 star rating because I feel the author somewhat forgot who his audience is.

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 return another function as a result, you may end up feeling (as I did) that you only have half the puzzle.
15 of 16 people found the following review helpful
3.0 out of 5 stars Necessary book, but needs a 2nd edition March 5 2008
By Christian J. Convey - Published on Amazon.com
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.
9 of 10 people found the following review helpful
5.0 out of 5 stars could be a tough programming paradigm, or a very natural one Sept. 3 2007
By pounding on the keyboard - Published on Amazon.com
Functional programming (Erlang, haskell, OCAML, mainly) has returned to devs' mindshare, look at lambda-the-ultimate, artima, reddit. It's produced a lot of blogs, online tutorials, but if you want a current book that's a complete overview, carefully written and vetted? Pretty slim pickings.

This book is an offshoot (or inspired by, or something) of Armstrong's PhD thesis. It is (or was) a pragmatic beta product, reviewed by 100's of developers, and this shows in exposition of data structures and algorithms. It's as good as intro dev texts get. The intro bits, like where the math teacher says "all X's mean the same thing" are kind of helpful but after that there's not a lot of handholding of the type of "how to do __ in java and erlang, side by side" (except the Exceptions chapter), or "Here's my definition of functional programming". There's lots of things similar to the ruby or python or smalltalk dev environment, some counter-intuitive things as well(no short-circuits of boolean expressions) but this book's an exposition of Erlang features, common tasks, and best practices. I liken this to the best software books, K&R, Python in a Nutshell, SICP, it's rigorous and intellectually and viscerally satisfying ;-)

If you know prolog or lisp, or read the arguments about DSLs /metaprogramming that java and smalltalk/lisp/ruby/javascript devs are wont to have, you may say it fits your brain. Others have noted that the syntax is a complete rework of how they approach programming, that unification/pattern matching and constraint satisfaction is nothing like programming the algol-family. But i think all devs have to understand how regular expression engines work, so you can draw parallels there (tho no backtracking in erlang).

(extremely) minor drawbacks of the book: preachy tone of superiority of COP (concurrency-oriented programm'g), fault-tolerance, many processes, etc. Some of the typesetting (code bits in footnotes against grey background) is hard to read. Division of the book into chapters is kinda odd (there's a couple 2-page chapters)
Search Customer Reviews
Only search this product's reviews

Look for similar items by category