Erlang Programming and over one million other books are available for Amazon Kindle. Learn more



or
Sign in to turn on 1-Click ordering
Sell Us Your Item
For a $5.30 Gift Card
Trade in
More Buying Choices
Have one to sell? Sell yours here
Start reading Erlang Programming on your Kindle in under a minute.

Don't have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.
Sorry, this item is not available in
Image not available for
Color:
Image not available

To view this video download Flash Player

 

ERLANG Programming [Paperback]

Francesco Cesarini , Simon Thompson
4.7 out of 5 stars  See all reviews (26 customer reviews)

Buy New
$41.70 & FREE Shipping. Details
Rent
$20.50
In Stock.
Ships from and sold by Amazon.com. Gift-wrap available.
In Stock.
Rented by RentU and Fulfilled by Amazon.
Want it Tuesday, May 21? Choose One-Day Shipping at checkout. Details
Free Two-Day Shipping for College Students with Amazon Student

Formats

Amazon Price New from Used from
Kindle Edition $22.79  
Paperback $41.70  
Like this book? Find similar titles in the O'Reilly Bookstore.

Book Description

June 26, 2009 0596518188 978-0596518189 1

This book is an in-depth introduction to Erlang, a programming language ideal for any situation where concurrency, fault tolerance, and fast response is essential. Erlang is gaining widespread adoption with the advent of multi-core processors and their new scalable approach to concurrency. With this guide you'll learn how to write complex concurrent programs in Erlang, regardless of your programming background or experience.

Written by leaders of the international Erlang community -- and based on their training material -- Erlang Programming focuses on the language's syntax and semantics, and explains pattern matching, proper lists, recursion, debugging, networking, and concurrency.

This book helps you:

  • Understand the strengths of Erlang and why its designers included specific features
  • Learn the concepts behind concurrency and Erlang's way of handling it
  • Write efficient Erlang programs while keeping code neat and readable
  • Discover how Erlang fills the requirements for distributed systems
  • Add simple graphical user interfaces with little effort
  • Learn Erlang's tracing mechanisms for debugging concurrent and distributed systems
  • Use the built-in Mnesia database and other table storage features

Erlang Programming provides exercises at the end of each chapter and simple examples throughout the book.


Frequently Bought Together

ERLANG Programming + Programming Erlang: Software for a Concurrent World + Erlang and OTP in Action
Price for all three: $103.33

Buy the selected items together


Editorial Reviews

About the Author


Francesco Cesarini has used Erlang on a daily basis for over 15 years, having started his career as an intern at Ericsson's computer science laboratory, the birthplace of Erlang. He moved on to Ericsson's Erlang training and consulting arm working on the first release of the OTP middleware, applying it to turnkey solutions and flagship telecom applications.

In 1999, soon after Erlang was released as open source, he founded Erlang Solutions. With offices in the UK, Sweden, Poland (and soon the US), they have become the world leaders in Erlang based consulting, contracting, training, systems development, support services and conferences. At Erlang Solutions, Francesco has worked on major Erlang based projects both within and outside Ericsson, and in his current role as Technical Director, is setting the strategy and vision of the company while supervising the technical teams.

Francesco is active in the Erlang community not only through regularly talks, seminars and tutorials at conferences worldwide, but also through his involvement in international research projects. With whatever time he has left over, he teaches Erlang to graduates and undergraduates at Oxford University and the IT University of Gothenburg. You can follow his ramblings (mainly on Erlang and Erlang Solutions) on twitter.

Product Details

  • Paperback: 498 pages
  • Publisher: O'Reilly Media; 1 edition (June 26, 2009)
  • Language: English
  • ISBN-10: 0596518188
  • ISBN-13: 978-0596518189
  • Product Dimensions: 7 x 1 x 9.2 inches
  • Shipping Weight: 1.5 pounds (View shipping rates and policies)
  • Average Customer Review: 4.7 out of 5 stars  See all reviews (26 customer reviews)
  • Amazon Best Sellers Rank: #365,125 in Books (See Top 100 in Books)

More About the Authors

Discover books, learn about writers, read author blogs, and more.

Customer Reviews

4.7 out of 5 stars
(26)
4.7 out of 5 stars
This is where Erlang really shines and they describe it clearly and concisely. Alan McKean  |  10 reviewers made a similar statement
Meant for experienced programmers seeking to learn Erlang, the book is extraordinarily well-written. T. Peter Herndon  |  9 reviewers made a similar statement
The two authors of this book are great writers (particularly, Thompson) and expert programmers. Gran Inquisidor  |  1 reviewer made a similar statement
Most Helpful Customer Reviews
29 of 30 people found the following review helpful
Format:Paperback
What is most attractive about the Erlang programming language is that from the beginning it was designed to solve real and difficult problems, and to do it in an elegant and powerful way. It is also a small language, which makes writing tools for it much more practical than for larger language such as Java or C++.

This book is written for experienced programmers, but not necessarily those that have any prior exposure to Erlang or even functional programming languages in general. The book consists of two parts. The first should be read sequentially, like a textbook. The second part, however, can be read in any order as you need the informaton. The following is a listing of the chapters and a brief description of what you'll find in each.

The first part of the book consists of the first eleven chapters, and describes the core parts of the Erlang language.

1. Introduction - Gives a high-level overview of the characteristics and features that have made Erlang so successful, provides insight into the context in which the language was designed, and describes how this influenced its current shape. Case studies show how Erlang is actually used, comparing it with other languages and highlighting its strengths.

2. Erlang Basics - Covers the basics of Erlang. Some of this will be elementary for experienced programmers, and some will not, such as the fact that you can assign to each variable only once. The chapter starts with defining the basic Erlang data types, and concludes by showing how to define Erlang functions and place them into modules to create programs.

3. Sequential Erlang - An important topic here is recursion, which is perhaps the most useful and powerful of all techniques usually found in a functional language. It allows a programmer to traverse a data structure via successive calls to the same function. Also exception-handling mechanisms are covered here as is the debugger.

4. Concurrent Programming - Concurrency is when different functions execute in parallel without affecting each other unless explicitly programmed to do so. The ability of the runtime system to scale concurrency to levels such that there can be thousands of processes running in parallel with a small memory footprint differentiates Erlang from other concurrent programming languages. This chapter discusses all of these matters.

5. Process Design Patterns - Many Erlang processes will fall into one of three categories - client/servers, finite state machines, and event handlers. This chapter looks at examples of process design patterns, explaining how they can be used to program each of these three types of processes. The OTP framewor is also part of this topic, but OTP doesn't get discussed until chapter 12.

6. Process Error Handling - Erlang has simple but powerful constructs built into the language's concurrency model. These constructs allow processes to monitor each other's behavior and to recover from software faults, and are discussed here.

7. Records and Macros - In the first part of this chapter you will learn about records, which make code evolution easier to achieve. The key to this is the fact that records provide data abstraction. Macros, the other topic in this chapter, allow you to write abbreviations that are expanded by the Erlang preprocessor. Macros can be used to make programs more readable, to extend the language, and to write debugging code. The chapter concludes by describing the include directive, by which header files containing macro and record definitions are used in Erlang projects.

8. Software Upgrade - The software upgrade mechanism relies on a set of simple but powerful constructs upon which more powerful tools are built. These upgrade tools are used in pretty much every Erlang-based system where downtime has to be reduced to a minimum. These topics are explored here.

9. More data types and high-level constructs - The various language features covered in this chapter, many of them derived from functional programming languages, are tools that will improve the productivity of a working Erlang programmer. The topics are: funs and higher-order functions, list comprehensions, binaries, and serialization.

10. ETS and Dets Tables - To handle fast searches, Erlang provides two mechanisms. This chapter introduces Erlang Term Storage (ETS) and Disk Erlang Term Storage (Dets), two mechanisms for memory and disk-efficient storage and retrieval of large groups of data. Erlang also provides a full database application, Mnesia, which is covered in chapter 13.

11. Distributed Programming in Erlang - This chapter explores the theory behind distributed systems and shows how it is applied to Erlang-based systems. Erlang distribution is built into the language, and can be completely transparent to the user.

The rest of the book can be read in any order as needed:

12. OTP Behaviors - OTP behaviors provide library modules that implement the most common concurrent design patterns. Behind the scenes the library modules insure that errors and special cases are handled in a consistent way. As a result, OTP behaviors provide a set of standardized building blocks. This subject is a large one and this chapter is only an introduction.

13. Introducing Mnesia - Mnesia is a powerful database that is part of the standard Erlang distribution. It merges the efficiency and simplicity of ETS and Dets tables with the Erlang distribution and adds a transaction layer on top. Again, this is a large subject and this chapter acts only as an introduction.

14. GUI Programming with Erlang - GUIs are not one of Erlang's strengths, but it does have a cross-platform GUI programming system, wxErlang, which is a binding of the wxWidgets system. This chapter introduces wxWidgets and explains its Erlang binding. After describing the event-handling mechanism in wxErlang, a scaled-down blog example is presented using it. This chapter concludes with a number of pointers for learning more about wxWidgets and wxErlang, and a series of exercises to improve and extend the running example.

15. Socket Programming - Sockets allow programs written in any language to exchange data on different computers by exchanging byte streams transmitted using the protocols of the Internet Protocol. Sometimes even Erlang programs must rely on such a lower-level mechanism for communication.

16. Interfacing Erlang with Other Programming Languages - Discusses how to link Erlang with a C program, Java program, or the Unix shell.

17. Trace BIFs, the dbg Tracer, and Match Specifications - Explains in depth how all aspects of Erlang systems can be traced without degrading their performance.

18. Types and Documentation - This chapter shows how you can write down the types of functions as a part of their formal documentation in Erlang, using the EDoc documentation framework. In addition, what you write down as the type of a function can be checked for consistency against the function definition using the TypEr tool, which is also discussed here.

19. EUnit and Test-Driven Development - In this chapter, the EUnit tool, which gives you a framework for unit testing in Erlang, is discussed. It is shown in action and there is a discussion on how it supports test-driven development.

20. Styles and Efficiency - Summarizes design guidelines and programming strategies to use when developing Erlang systems. The chapter also covers common mistakes and inefficiencies and looks at memory handling and profiling.

Appendix A - Using Erlang- Recommends tools to help you in Erlang softare development and also lists resources for programmers such as websites and books.

I've spent some considerable time with both Haskell and Erlang, two very good functional languages. When it comes to high concurrency and networking applications, Erlang is probably the best choice. However, I still like Haskell because I've found it easier to handle when writing multimedia applications, which is often my focus. You could take a long time to come to your own conclusions, but I found this book and the recently published book on Haskell, Real World Haskell, to cut that time down extensively by explaining the features of both languages so well. I therefore highly recommend this book to people trying to make up their minds about Erlang and those that have made up their minds and now need a clear book on the subject.
Comment | 
Was this review helpful to you?
21 of 23 people found the following review helpful
5.0 out of 5 stars A Cause for Celebration! July 2, 2009
Format:Paperback
What a great book! I have been gobbling up everything that I can related to Erlang in the last several months (forums, books by Joe Armstrong (4 stars), Martin Logan (4 stars) and now, the best of all ... Francesco and Simon's 'Erlang Programming'. It presents a broad view of much that Erlang has to offer in a way that is very accessible to newcomers. They systematically present what you need to get started in the first three chapters, then explain the concurrency model and the three process design patterns in the next two chapters. The next few chapters of the book dive into the details of various features of the language: records, specialized data types, persistence options. Then you are ready for OTP: the Open Telecom Platform. This is where Erlang really shines and they describe it clearly and concisely. The latter chapters cover various language libraries and features: sockets, the Mnesia database, interfacing with C and Java (elegant!), and the finer points of debugging, tracing, testing, documenting and deploying your application.

By all means, get all three books: 'Programming Erlang' (Pragmatic) by Joe Armstrong, 'Erlang and OTP in Action' (Manning) by Martin Logan et. al., and this book by Francesco and Simon. But if you choose to buy only one, I do not hesitate to recommend this one. But do yourself a favor and get all three. Each one offers a different perspective.
Comment | 
Was this review helpful to you?
10 of 12 people found the following review helpful
5.0 out of 5 stars Awesome read! September 2, 2009
Format:Paperback
Having already read the very good Erlang book by Joe Armstrong entitled "Programming Erlang: Software for a Concurrent World", I was very excited to get this new Erlang book the moment it became available.

I am fairly new to Erlang and unfortunately do not use it in my daily job (SAP technical consultant by day) so I can only give a "beginners viewpoint". Not taking anything away from Joe Armstrongs book at all...it is also superb, but from a beginners point of view I have found that "Erlang Programming" is an easier read and I'm doing more "oh, is that how it works" now ;-) I especially enjoy the little diagrams scattered around the book to help illustrate how the processes communicate etc.

The chapters I have found most useful to me are:

- Process Design Patterns (I enjoyed reading on the "Finite State Machine etc")
- Process Error Handling
- Distributed Programming in Erlang

Overall I am VERY impressed with this book and would happily recommend it to anyone like me who is trying to get up to speed with Erlang very quickly.

BTW: The 2 books combined definetly compliment each other very nicely!

Thankyou Simon and Francesco for an OUTSTANDING book!!
Comment | 
Was this review helpful to you?
Most Recent Customer Reviews
5.0 out of 5 stars Erlang for everyone!
Erlang is a programming language oriented to distributed programming. The two authors of this book are great writers (particularly, Thompson) and expert programmers. Read more
Published 27 days ago by Gran Inquisidor
4.0 out of 5 stars Definitive guide
This book is a treasure trove of information about Erlang and OTP. It's a must for anyone who isn't already an Erlang expert.
Published 1 month ago by Gregory Burd
5.0 out of 5 stars program
Good is good. All is good. Good is not bad, at least not in my book. Thanks so much everyone!
Published 4 months ago by Linny
5.0 out of 5 stars Excelente Didatica e com otimo conteudo
O livro realmente inicia o leitor na linguagem. Todos os topicos abordados sao facilmente explicados e exemplificados transmitindo de forma clara todo o poder que a linguagem tem.
Published 5 months ago by Rodolfo Dias
5.0 out of 5 stars Real treat, even if you won't write in Erlang
I've read entire book with great pleasure -- I wish I could have more books as good as this one. The language of the book is very light, entertaining, informative, the authors... Read more
Published 15 months ago by Maciej Pilichowski
5.0 out of 5 stars Very complete, very well written. Great, great book! Thanks
I've been teaching myself Erlang using this book in my spare time for a couple of months now. I highly recommend it for programmers that are new to Erlang. Read more
Published 15 months ago by NewLibertarian
5.0 out of 5 stars Fall in love with programming again!
There are other reviews about the content and coverage (viz. by a top 50 reviewer). So, I'll skip the analysis and give a personal story. Read more
Published 18 months ago by Trevor Bain
5.0 out of 5 stars honest, instructional, and easy to read
Summary: This is a great Erlang starter and maybe the only book you'll need. It is not an academic text but is very practical and applied. Read more
Published on April 12, 2011 by Tyler Forge
3.0 out of 5 stars Ok
High expectations but the text was very dry. Started reading Armstrong's book instead. Lots of errors, make sure you view the errata page.
Published on September 12, 2010 by DavMin
4.0 out of 5 stars Must have Erlang Book
There are only a couple of Erlang Books out right now, primarily this one and Joe's book. I would recommend getting both of them since they both have different styles, but if you... Read more
Published on September 6, 2010 by Hugh Watkins
Search Customer Reviews
Only search this product's reviews

What Other Items Do Customers Buy After Viewing This Item?


Forums

There are no discussions about this product yet.
Be the first to discuss this product with the community.
Start a new discussion
Topic:
First post:
Prompts for sign-in
 





Look for Similar Items by Category