Programming Erlang: Software for a Concurrent World (Paperback)

Joe Armstrong






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

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.