7/16/2007

Moore’s Law tells us that computing power doubles every two years, and we’ve enjoyed faster and faster computers ever since. But Moore’s law is about to break: there’s a physical limit to the number of interconnections you can create on a chip. New multi-core devices—single chips with 2, 4, or more processors each—are the future.

But that only works if your programs are designed to be concurrent; with normal software practices and environments, your code will only run on a single processor at a time. Your users will think that your code is slow. And writing concurrent programs in many popular programming languages can be cumbersome and error-prone.

In Programming Erlang: Software for a Concurrent World (Pragmatic Bookshelf, US$36.95, 1-934356-00-X), creator Joe Armstrong describes Erlang, a programming language designed for building highly parallel, distributed, fault-tolerant systems. It has been used commercially for many years to build massive fault-tolerant systems which run for years with minimal failures.

According to Joe, programming in Erlang more closely matches the real world—where we are naturally concurrent. “Erlang programs model how we think and interact,” says Joe. Programming Erlang is much easier than in conventional languages as in the Erlang world, there are no locks, no synchronized methods, and no possibility of shared memory corruption.

Erlang programs run seamlessly on multi-core computers with no extra code on your part. Erlang combines ideas from the world of functional programming with techniques for building fault-tolerant systems. The result is a powerful language that makes it much easier to building the massively parallel networked applications of the future.

This book includes lots of example code you’ll be able to build upon. In addition, it contains the full source code for two interesting applications:

  • SHOUTcast server to stream music
  • Full-text indexing and search engine that can index gigabytes of data

The indexing engine is specially written to illustrate how to maximize throughput on a multi-core CPU.

Erlang is a language used by people in-the-know (just like Ruby was a few years ago). It solves one of the most pressing problems facing developers today: how to write reliable, concurrent, high-performance systems.

Invest in learning Erlang now.

About Erlang

  • Erlang has built-in support for concurrency, distribution and fault tolerance.
  • Erlang is used to build internet server applications (mail, web, etc.), telecommunication switches and applications, database applications, and more.
  • Erlang excels at controlling systems across several machines and implementing complex protocol logic—tasks that are very complex in other languages.
  • Erlang and its libraries are open source; commercial support is also available.

Book Information

Cover Image For Programming Erlang...

Programming Erlang

Software for a Concurrent World

by Joe Armstrong

ISBN: 9781934356005, 536 pages, $36.95US, $48.95CA, 7.5×9.

Pragmatic Bookshelf Titles are distributed to bookstores internationally by O’Reilly Media.

Additional Resources

Sample chapters, table of contents, and more information is available on the book’s home page.

About Pragmatic Bookshelf

The Pragmatic Bookshelf features books written by developers for developers. The titles continue the well-known Pragmatic Programmer style, and continue to garner awards and rave reviews. As development gets more and more difficult, the Pragmatic Programmers will be there with more titles and products to help programmers stay on top of their game.

Contacts

Press and Editorial Queries Only:
Contact Andy Hunt or Dave Thomas
Pragmatic Bookshelf
800-699-7764 (+1 919-847-3884)
pragprog@praprog.com

<< Pragmatic Unit Testing in C#, 2nd Ed. | Manage It! Your Guide to Modern, Pragmatic Project Management >>