Buy new:
$28.79
FREE delivery: Tuesday, April 23 on orders over $35.00 shipped by Amazon.
Ships from: Amazon.com
Sold by: Amazon.com
List Price: $42.00 Details

The List Price is the suggested retail price of a new product as provided by a manufacturer, supplier, or seller. Except for books, Amazon will display a List Price if the product was purchased by customers on Amazon or offered by other retailers at or above the List Price in at least the past 90 days. List prices may not necessarily reflect the product's prevailing market price.
Learn more
Save: $13.21 (31%)
Get Fast, Free Shipping with Amazon Prime FREE Returns
FREE delivery Tuesday, April 23 on orders shipped by Amazon over $35. Order within 5 hrs 32 mins
Only 16 left in stock (more on the way).
$$28.79 () Includes selected options. Includes initial monthly payment and selected options. Details
Price
Subtotal
$$28.79
Subtotal
Initial payment breakdown
Shipping cost, delivery date, and order total (including tax) shown at checkout.
Ships from
Amazon.com
Ships from
Amazon.com
Sold by
Amazon.com
Sold by
Amazon.com
Returns
Eligible for Return, Refund or Replacement within 30 days of receipt
Eligible for Return, Refund or Replacement within 30 days of receipt
This item can be returned in its original condition for a full refund or replacement within 30 days of receipt.
Returns
Eligible for Return, Refund or Replacement within 30 days of receipt
This item can be returned in its original condition for a full refund or replacement within 30 days of receipt.
Payment
Secure transaction
Your transaction is secure
We work hard to protect your security and privacy. Our payment security system encrypts your information during transmission. We don’t share your credit card details with third-party sellers, and we don’t sell your information to others. Learn more
Payment
Secure transaction
We work hard to protect your security and privacy. Our payment security system encrypts your information during transmission. We don’t share your credit card details with third-party sellers, and we don’t sell your information to others. Learn more
Get Fast, Free Shipping with Amazon Prime
FREE delivery Thursday, April 25 on orders shipped by Amazon over $35. Order within 9 hrs 17 mins
Used: Acceptable | Details
Sold by 2nd Life Aloha
Condition: Used: Acceptable
Comment: All pages and the cover are intact, but shrink wrap, dust covers, or boxed set case may be missing. Pages may include limited notes, highlighting, or minor water damage but the text is readable. Item may be missing bundled media.
Access codes and supplements are not guaranteed with used items.
Other Sellers on Amazon
Added
$23.35
+ $3.99 shipping
Sold by: Easterseals-Goodwill Northern Rocky Mountain
Sold by: Easterseals-Goodwill Northern Rocky Mountain
(156 ratings)
95% positive over last 12 months
Only 1 left in stock - order soon.
Shipping rates and Return policy
Added
$28.78
FREE Shipping
Get free shipping
Free shipping within the U.S. when you order $35.00 of eligible items shipped by Amazon.
Or get faster shipping on this item starting at $7.96 . (Prices may vary for AK and HI.)
Learn more about free shipping
on orders over $35.00 shipped by Amazon.
Sold by: travis_textbooks
Sold by: travis_textbooks
(15 ratings)
100% positive over last 12 months
Only 1 left in stock - order soon.
Shipping rates and Return policy
Loading your book clubs
There was a problem loading your book clubs. Please try again.
Not in a club? Learn more
Amazon book clubs early access

Join or create book clubs

Choose books together

Track your books
Bring your club to Amazon Book Clubs, start a new book club and invite your friends to join, or find a club that’s right for you for free.
Kindle app logo image

Download the free Kindle app and start reading Kindle books instantly on your smartphone, tablet, or computer - no Kindle device required.

Read instantly on your browser with Kindle for Web.

Using your mobile phone camera - scan the code below and download the Kindle app.

QR code to download the Kindle App

Follow the author

Something went wrong. Please try your request again later.

Programming Erlang: Software for a Concurrent World (Pragmatic Programmers) 2nd Edition

4.7 out of 5 stars 88

{"desktop_buybox_group_1":[{"displayPrice":"$28.79","priceAmount":28.79,"currencySymbol":"$","integerValue":"28","decimalSeparator":".","fractionalValue":"79","symbolPosition":"left","hasSpace":false,"showFractionalPartIfEmpty":true,"offerListingId":"cRDaQYjaxUVb8l5U1Jd7%2FX1P3aqo50a2bvjott9OsUneHJx3KBroj3oT0DebFu2xPs0l%2B9K7E%2BP6vGU5e4WqEeus5cnusnwEEtwI9Z5VJS%2BUEp6jlTPxg4PcSBOZ6aGLQIcXo5pQXyeIU6FatgIYKg%3D%3D","locale":"en-US","buyingOptionType":"NEW","aapiBuyingOptionIndex":0}, {"displayPrice":"$19.54","priceAmount":19.54,"currencySymbol":"$","integerValue":"19","decimalSeparator":".","fractionalValue":"54","symbolPosition":"left","hasSpace":false,"showFractionalPartIfEmpty":true,"offerListingId":"cRDaQYjaxUVb8l5U1Jd7%2FX1P3aqo50a2YNM0Ly3Fn5m4O4Hha2xP5AFMkqBLsTQAz%2BCxX0bweNte2u%2FGaLY2gCjG4wxlDoSSh2vtytQ0lxNmxBfhj3PcNl83fqXz374cymXvoa2rqtIRfgGRQvHdLj1%2FZPD9%2BxB0GLn9BNyUcywReJv5A7V8hw%3D%3D","locale":"en-US","buyingOptionType":"USED","aapiBuyingOptionIndex":1}]}

Purchase options and add-ons

A multi-user game, web site, cloud application, or networked database can have thousands of users all interacting at the same time. You need a powerful, industrial-strength tool to handle the really hard problems inherent in parallel, concurrent environments. You need Erlang. In this second edition of the bestselling Programming Erlang, you'll learn how to write parallel programs that scale effortlessly on multicore systems.

Using Erlang, you'll be surprised at how easy it becomes to deal with parallel problems, and how much faster and more efficiently your programs run. That's because Erlang uses
sets of parallel processes-not a single sequential process, as found in most programming languages.

Joe Armstrong, creator of Erlang, introduces this powerful language in small steps, giving you a complete overview of Erlang and how to use it in common scenarios. You'll start with sequential programming, move to parallel programming and handling errors in parallel programs, and learn to work confidently with distributed programming and the standard Erlang/Open Telecom Platform (OTP) frameworks.

You need no previous knowledge of functional or parallel programming. The chapters are packed with hands-on, real-world tutorial examples and insider tips and advice, and finish with exercises for both beginning and advanced users.

The second edition has been extensively rewritten. New to this edition are seven chapters covering the latest Erlang features: maps, the type system and the Dialyzer, WebSockets, programming idioms, and a new stand-alone execution environment. You'll write programs that dynamically detect and correct errors, and that can be upgraded without stopping the system. There's also coverage of rebar (the de facto Erlang build system), and information on how to share and use Erlang projects on github, illustrated with examples from cowboy and bitcask.

Erlang will change your view of the world, and of how you program.

What You Need

The Erlang/OTP system. Download it from erlang.org.

Amazon First Reads | Editors' picks at exclusive prices

Frequently bought together

$28.79
Get it as soon as Tuesday, Apr 23
Only 16 left in stock (more on the way).
Ships from and sold by Amazon.com.
+
$33.16
Get it as soon as Wednesday, Apr 24
In Stock
Ships from and sold by Amazon.com.
+
$35.25
Get it as soon as Wednesday, Apr 24
Only 1 left in stock - order soon.
Sold by BookNBounty and ships from Amazon Fulfillment.
Total price:
To see our price, add these items to your cart.
Details
Added to Cart
Some of these items ship sooner than the others.
Choose items to buy together.

From the brand


From the Publisher

Programming Erlang, 2nd edition Programming Elixir 1.2 Metaprogramming Elixir Programming Phoenix
Programming Erlang, 2nd edition Programming Elixir 1.2 Metaprogramming Elixir Programming Phoenix
Customer Reviews
4.7 out of 5 stars
88
4.4 out of 5 stars
23
4.6 out of 5 stars
48
4.4 out of 5 stars
44
Price $28.79 $6.86 $17.00 $26.14
Covers The framework that started the revolution. Learn Erlang start to finish straight from the source - its creator. Meet Elixir, a functional, concurrent language built on the rock-solid Erlang VM. This definitive guide tells you what you need to know. Write code that writes code with Elixir macros, and use them to extend the language. Written by the creator of Phoenix. Build an application that’s fast and reliable. At every step, you’ll learn from the Phoenix creators not just what to do, but why.
Reader Level Beginner to intermediate Intermediate to advanced Intermediate to advanced Advanced beginner to advanced intermediate
Page count 548 354 128 298

Editorial Reviews

Review

""This second edition of Joe's seminal Programming Erlang is a welcome update, covering not only the core language and framework fundamentals but also key community projects such as rebar and cowboy. Even experienced Erlang programmers will find helpful tips and new insights throughout the book, and beginners to the language will appreciate the clear and methodical way Joe introduces and explains key language concepts.""--Alexander Gounares, Former AOL CTO, advisor to Bill Gates, and founder/CEO of Concurix Corp.

About the Author

Joe Armstrong is one of the creators of Erlang. He has a Ph.D. in computer science from the Royal Institute of Technology in Stockholm, Sweden and is an expert on the construction of fault-tolerant systems. He has worked in industry, as an entrepreneur, and as a researcher for more than 35 years.

Product details

  • Publisher ‏ : ‎ Pragmatic Bookshelf; 2nd edition (October 29, 2013)
  • Language ‏ : ‎ English
  • Paperback ‏ : ‎ 548 pages
  • ISBN-10 ‏ : ‎ 193778553X
  • ISBN-13 ‏ : ‎ 978-1937785536
  • Item Weight ‏ : ‎ 2.1 pounds
  • Dimensions ‏ : ‎ 7.5 x 1.3 x 9.2 inches
  • Customer Reviews:
    4.7 out of 5 stars 88

About the author

Follow authors to get new release updates, plus improved recommendations.
Joe Armstrong
Brief content visible, double tap to read full content.
Full content visible, double tap to read brief content.

Discover more of the author’s books, see similar authors, read author blogs and more

Customer reviews

4.7 out of 5 stars
4.7 out of 5
88 global ratings

Top reviews from the United States

Reviewed in the United States on April 23, 2016
Brilliant book. The book demonstrates clearly how Erlang works and how it's a simple language with simple primitives to handle things that other languages struggle with.

After an introduction to how to do things sequentially we're then ushered into how the primitives for concurrency work and what they enable, but also what they mean in terms of error handling and how you will need to structure your networks of processes in order to make your system robust.

When we're comfortable with the concurrency primitives and how to handle them comes a part about how to interface with external resources and how this is typically (ideally) done in Erlang. A SHOUTcast server is demonstrated before moving on how to interface with websockets; a very powerful chapter demonstrating the simplicity of how Erlang can communicate with an external process.

When we're done with the multitude of ways you can use websockets we jump straight into data handling; ETS- and DETS-tables. This flows into a chapter about the Mnesia database.

After a chapter about debugging and tracing (which is quite unique in Erlang) we are introduced to OTP, the Open Telecom Platform ("The name is actually misleading, because OTP is far more general tan you might think", indeed). After a good introduction to how the generic server module is structured and created (introducing callbacks and how they work) we're then introduced to how to make a system using OTP.

At this point, one might be inclined to put the book down and that would be fine, but to close the book out there are several chapters on useful idioms, what to aim for in terms of how to interface with external processes, using external dependencies and perhaps most importantly what to think about when you're trying to use multiple cores effectively.
8 people found this helpful
Report
Reviewed in the United States on June 17, 2015
Everyone has a different learning style. Some like the prose style of the Learn You Some Erlang book. While that book was also interesting and educational, it didn't fit my learning style nor serve as well a future reference as this book by Joe Armstrong. I tend to evaluate software books by the following three criteria: content (does it provide good examples?, e.g. for use as a cookbook for programming tasks), how it expands my mind (does it trigger new questions and new ways of thinking?), and lastly whether it is organized well for future reference (e.g. well indexed and organized into conceptual chapters). Some books excel at one or two of these areas (e.g. Learn You Some Erlang mostly excels at the first two), but Joe's book excels at all three. Plus some of the examples that the Learn You Some Erlang provided weren't as clear to me in terms of understanding them as Joe's. Sorry to compare two books against each other - they're currently the only two Erlang books I've read to now.
22 people found this helpful
Report
Reviewed in the United States on October 1, 2015
masterfully written and all the examples are clearly defined. This book a cut above the rest for newbies like myself wishing to learn the language. The book cleanly and easily explains what takes books like "Learn you some erlang for great good." or "Introduction to Erlang programming" a while, or just can't explain. It cleanly takes you from the beginning and provides examples that will get you thinking in erlang from the start. A must have for any serious Erlang programmer. It easily explains how to start and process and WHY we start processes to do work. Other books spend pages and pages boring you to death on an example that isn't well chosen, or just fail to describe what Elang is. The author, one of the Erlang creators describes everything so clearly that I wish I didn't sound so over the top, but go ahead read some of the free same amazon provides. You'll see im not over the top.

Buy it. You won't regret it.
7 people found this helpful
Report
Reviewed in the United States on January 12, 2019
I am impressed by this book for its style of teaching and its content about erlang. It is one of the best technical books I have read in my life.

Style-wise, this book is easy to read. Takes you from knowing nothing about erlang to very advanced techniques. And does this in a very clear, concise way with just enough source code and problems. I really liked the way author teaches the topic.

Content wise, this book is about erlang and it has everything one needs in easy to gtab chunks. It might be slightly expensive compared to other books but totally worth it, especially you are learning it from the horse's mouth, hahaha.

I feel like I have everything I need to write erlang code with just this book.
4 people found this helpful
Report
Reviewed in the United States on April 28, 2014
As a newcomer to the Erlang, this is an absolutely essential book to anyone getting familiar with this amazing functional, concurrent language. The creator of Erlang masterfully explains the language through excellent real world examples and great analogies to imperative language constructs familiar to experienced programmers and newcomers. I love the creator's thinking process expressed throughout the book. It really helps you realize the possibilities of using Erlang capabilities to solve problems in a intuitive manner that is not possible with imperative languages. This last comment may sound ridiculous, but reading the book was so enlightening and mindbending that I forgot where I was like Alice in wonderland did.
9 people found this helpful
Report
Reviewed in the United States on January 10, 2022
Do get this book. Joe Armstrong is a rare treasure for his contribution to our craft and industry and to all humans for the things in the world from which we all benefit - like telephone and internet switches that have so robustly run Erlang.

Not sure why the copy that arrived at my home at the new price was dirty and smeared with ink stains.

The content of the book is absolutely 5 stars - the quality of this print copy was 2 stars.
Reviewed in the United States on October 17, 2018
Overall, the book is very well written. Erlang has many forward thinking ideas being focused around concurrency, having an optional type system, an in memory nosql database, etc. It's a language that is interesting to learn even if it does not end up being your bread and butter winning tool.
4 people found this helpful
Report

Top reviews from other countries

Translate all reviews to English
Martin William
5.0 out of 5 stars Trop bon
Reviewed in France on May 9, 2020
Un des meilleurs livre de programmation que j’ai pu lire.
Joe Armstrong distille des conseils et des techniques tout au long du livre consacré à son langage.
On y comprends mieux Erlang et sa force. Ne vous laissez pas avoir par la syntaxe.
One person found this helpful
Report
Avid Reader
5.0 out of 5 stars *The* Erlang Book
Reviewed in the United Kingdom on October 14, 2016
If you want to get into Erlang, this is the book for you. Joe Armstrong is one of the creators of Erlang (many people call him "the" creator of Erlang), and the book is infused with his thinking, not a dry guide to the language.

Part 1 - Why Erlang? This introduces the concept of concurrency, and explains that modern computers have multiple cores. But writing programs which can take advantage of multiple cores is hard, far harder than it should be. Indeed, there's a view that this is acting as a huge constraint on how the likes of Intel take processor chips forward. Erlang was designed to run across multiple processors, and so fits the modern multicore world like a glove.

Part 2 - Sequential Programming. Here he gets into the nuts and bolts of "ordinary" Erlang programming i.e. integers, lists, strings, functions, etc. He also introduces pattern matching, which is a powerful way of getting the right bit of code called, relieving the programmer of much boilerplate coding. This section is needed in all programming books, not much more to say about it.

Part 3 - Concurrent and Distributed Programs. This is where the fun starts. He explains all about Erlang processes, which are NOT operating system processes, but mini processes simulated by the Erlang VM. They're kind of "green threads", and they are so lightweight that there can be millions of them in one server. Then they can be distributed over many servers, with a bit of effort but not with so much effort that it kills you.

The Erlang way of handling errors is covered next. Imagine having millions of processes running at the same time, and all the interactions that can occur. What happens when you have a bug, or some weird environmental thing happens, and one of your processes dies? In a Java multi-threaded application, the app would die; so much work is done trying to stop that from happening. In Erlang, you just let the process die, and the system fires up a new one. Everything was designed in from scratch to handle large-scale software, processes, and sets of servers.

Part 4 - Programming Libraries and Frameworks. Here we're told about interfacing Erlang with other languages, using sockets, websockets, the inbuilt database support, and tools like profilers and debuggers. Then we get a description of OTP, a huge and battle-tested library ready for us to use. We also get told here about hot code swapping - the ability to replace live code while the system continues to run: this allows you to build a system which can run for years at a time, without the need to bring it down for maintenance. No wonder the WhatsApp people chose Erlang.

Part 5 - Building Applications tidies up any loose ends, including Erlang programming idioms.

All in all, an excellent book. You don't need to be an Erlang expert to read it. Or even know any Erlang at all before you start. You'll end up being proficient at Erlang, with the foundation to be able to turn yourself into an expert. What is fascinating is learning how a master developer thinks.
5 people found this helpful
Report
Nayanamana
5.0 out of 5 stars Very structured book
Reviewed in Canada on June 8, 2014
The book is organized and structured in a way for a novice to learn and understand the concepts of Erlang in a very short time. The content is laid out concisely. Very satisfied.
Avinash Dhumane
5.0 out of 5 stars Reading Joe is at once fun & education!
Reviewed in India on June 17, 2014
While Erlang is indispensable when it comes to make your computer-model isomorphic to real-world, learning and understanding Erlang with Joe is a serious fun. I have been programming Erlang for quite a few years now, but Joe's book (1st edition until now, and now this 2nd edition) is still finding its time & place to be present in opened state on my desk. The same passage keeps on illumining its deeper and deeper meaning and application to real-world situations over time - and then, you know, why Joe has chosen to write that passage, and how much distance you have come through since you read it for the first time. While there are other useful and worthy books on Erlang, you realise Joe is different. What K&R did to C in that classic book, Joe does it to Erlang in this one. Seriousness is not compromised anywhere even for the decades-long experienced programmers, but this book doesn't compromise on fun either.
2 people found this helpful
Report
Commodore4ever
5.0 out of 5 stars Das Buch vom Meister persönlich
Reviewed in Germany on April 16, 2014
Joe Armstrong ist eine ziemlich interessante Persönlichkeit (einfach auf Youtube mal die Interviews anschauen) die zweite Auflage versucht recht gut, Grundlagen zu Erlang zu vermitteln. Diese Sprache ist so gigantisch und umfassend wie keine andere und man kann das Buch sehr gut lesen. Für Distributed Computing und "gewisse" damit zusammenhängende "Spezialgebiete", OTP und Mnesia sollte man sich aber zusätzliche, separate Bücher zulegen, weil jedes Thema für sich schon jeweils locker 500 Seiten und mehr benötigt - selbst dann ist man noch bei den Grundlagen. Wer einmal Erlang lernt, der wird eindeutig davon angezogen. Das ist kein Gerücht - sondern eine Tatsache. Für die Web-Entwickler: Erlang ist nicht wie PHP, es gibt separate Web-Frameworks aber auch DAS ist wieder ein Thema für sich allein. Erlang ist eine Art in sich geschlossenes System, das gestartet wird. Programme werden darin "eingeladen" und ausgeführt. Man kann TCP-Server erstellen oder Prozesse miteinander Daten austauschen lassen. Der Rest steht im Buch *g
One person found this helpful
Report