Programming Erlang: Software for a Concurrent World (Pragmatic Programmers) Second Edition
Use the Amazon App to scan ISBNs and compare prices.
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
Frequently bought together
Customers who bought this item also bought
From the Publisher
|Programming Erlang, 2nd edition||Programming Elixir 1.2||Metaprogramming Elixir||Programming Phoenix|
|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|
""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.
There was a problem filtering reviews right now. Please try again later.
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.
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.
Buy it. You won't regret it.
Top international reviews
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.
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.