Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!


Forgot your password?
DEAL: For $25 - Add A Second Phone Number To Your Smartphone for life! Use promo code SLASHDOT25. Also, Slashdot's Facebook page has a chat bot now. Message it for stories and more. Check out the new SourceForge HTML5 Internet speed test! ×

Erlang and OTP in Action 63

RickJWagner writes "Manning has just released a new Erlang title, called Erlang and OTP in Action. For quite some time now, there's been a definitive guide to Erlang-- Joe Armstrong's excellent book Programming Erlang. Well, it's time to make a little extra room on the bookshelf, because the Erlang book-o-sphere has just shifted. There are now two must-have resources for an Erlang programmer." Keep reading for the rest of Rick's review.
Erlang and OTP in Action
author Martin Logan, Eric Merritt, Richard Carlsson
pages 500
publisher Manning Publications
rating 9/10
reviewer Rick J Wagner
ISBN 1933988789
summary Teaches you to apply Erlang's message passing model for concurrent programming
The book is divided into three sections. The first one deals with the basics of Erlang and details about the OTP application framework. Part two shows how to build a production-worthy application in Erlang. The third part of the book is about integration and tuning.

Section 1 has chapters that cover the following: basics of Erlang and OTP, Erlang language fundamentals, writing a TCP-based RPC server, OTP and the supervisor model, and graphical tools to help your development efforts. Language newbies will spend some time here, as Erlang can be a little odd to programmers coming from non-functional environments. (Concepts like recursion are given great coverage, as it should be.) OTP, the Erlang ubber-framework, is explained in detail as well. Section 1 alone would make a decent book on Erlang, but there is much more here.

Section 2 covers building a production application. The example given is a caching application, designed to increase throughput of a web application. In addition to expected topics like logging and an event-framework, the reader is exposed to Erlang's built-in distributed database, Mnesia. Application packaging and deployment considerations are also covered here.

Chapters in section 2 follow a helpful pattern to guide the reader through building an application. First, there is an introduction to some high level concept. Next, it is shown how this new widget can be used to further the needs of our production-worthy caching application. Finally the authors provide code that brings the desired functionality into the ever growing caching application. Erlang code tends to be somewhat dense-- not much code goes a long way-- so much of the latter part of each chapter is explanatory text explaining why you'd want to implement things in the way the authors did. Chapters in this part of the book read like an in-depth tutorial, and that's not a bad thing.

The third section of the book shows how to integrate with external users via HTTP, how to allow programs written in other languages to communicate with your Erlang code, and how to tune your environment. It's notable that Java gets a whole chapter on integration, through JInterface (in comparison, Joe's book offers about 4 lines on this topic. In fairness, that's a much older book, though.)

Throughout the book, simple illustrations are used to demonstrate key concepts. I found these to be extremely helpful, as Erlang in general is quite different than most programming languages. The delta between Erlang application development and other-language development is an order of magnitude different than something like the difference between Java and Ruby or Python and .Net. It's got different characteristics and different concepts. Given these large differences, I really appreciated the illustrations.

The book covers language built-ins like management tools, profilers, etc. (If you've ever used GNU development tools to profile an application, some of these might look a little familiar). The reader is given a lot to think about, and it's scattered over nearly 400 pages. To make a Java analogy, it's like an all-in-one book that teaches the language, the JDK and tools, JEE, and shows how to integrate your enterprise application with external entities. It's ambitious, but the book does a good job in explaining everything. That's why the impressive page-count helps. A skinnier book probably wouldn't be able to pull all that off.

The book is written with easy-to-understand anecdotes that help the reader grasp the finer points of Erlang craftsmanship. You definitely get the impression the authors have written 'real' code, and they offer strong direction to guide the reader through constructing application code. There is a big difference between understanding language syntax and understanding best practices in application construction. Section 2 in particular is loaded with best practices, and this alone makes this book a worthwhile read for Erlang coders writing production applications.

Probably the best thing I can say about this book is that the authors seem to put the advancement of Erlang above all else. To bolster that statement, I'd point out that they give the reader a list of other Erlang books they may wish to read, and they also include several mentions of Joe Armstrong. (Joe is the author of what has been the most popular Erlang book.) In my opinion, the authors can afford this indulgence, as this book is strong enough to merit inclusion on the Erlang programmer's bookshelf.

So who is this book good for? I'd recommend this book to anyone who wants to program in Erlang. It can get beginners off the ground, and will reveal many best-practices to those who already know their way around Erlang.

You can purchase Erlang and OTP in Action from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.


This discussion has been archived. No new comments can be posted.

Erlang and OTP in Action

Comments Filter:
  • will just love this book.

    Oh, and by the way, "First!"

    • But apparently the Haskell comunity found a programmer that actually care about Haskell [blogspot.com] just last week, they are now up to 38 people. I quote:

      People see words like monads and category theory," Briars continued, swatting invisible flies around his head for emphasis, "and their Giving a Shit gene shuts down...

      • But apparently the Haskell comunity found a programmer that actually care about Haskell [blogspot.com] just last week, they are now up to 38 people. I quote:

        Blah. Can't feel a lot of respect for any programmer who doesn't cultivate an appreciation for different styles of expression. To me that's a fundamental aspect of improving myself as a programmer.

        Still, the bit about "hired a Perl hacker" was funny. For sure one of the big temptations in thinking too hard about programming is failing to get anything done. :)

      • Whoever ranked the parent a Troll is either devoid the ability to sense humor or somehow is a Haskell fan that just happened to have mod points. Face it, Erlang, Haskell, and even OCaml are not popular languages outside of the mathematical and scientific communities. Even I as a programmer tried to pick up all three, to a degree succeeded in learning the syntax and grasping the concepts, but hit a dead end when I found out all three are missing many things that are required to create actual real world appli
        • by NateTech ( 50881 )

          Actually wasn't Erlang written for and successfully used by Ericsson in telco control and/or billing software with some insanely low amount of system down-time? Never figured out why the more business-minded innovative leaders in software didn't pick up on that and find some programmers willing to drop their prima-donna loves for mainstream languages to give writing some other software in it to see if the results for uptime could be duplicated.

    • I doubt it. Erlang has pretty good documentation. There's a book that you can download that describes the core language and parts of OTP, and the various OTP modules all have detailed documentation. When I learned Erlang, the idea of buying a book about it never really occurred to me. The language itself is pretty tiny (and sufficiently similar to Prolog that it's easy to pick up). I've written a couple of concurrent server apps with Erlang, although I wouldn't describe myself as an Erlang programmer.
  • I was heavily considering writing a book on Erlang. It's a good thing I didn't. God only knows what the market for Erlang publications would be like if there were THREE books to choose from!
    • I was heavily considering writing a book on Erlang. It's a good thing I didn't. God only knows what the market for Erlang publications would be like if there were THREE books to choose from!

      Don't forget Erlang: The Movie!! [youtube.com]

    • Better get it out the door before O'Reilly publishes Erlang in a Nutshell, Head First Erlang and the Erlang Pocket Reference.
    • Don't forget "Erlang for Dummies," "Son of Erlang," "Erlang Strikes Back," "The Revenge of Erlang," "House of Erlang," and perhaps most important, "Ghost of Erlang." By the way, what's Erlang?
  • by digitaldc ( 879047 ) * on Wednesday December 08, 2010 @03:56PM (#34491732)
    Everyone needs more programming languages in their life this holiday season, and everyone loves Erlang!
    With this book, no one will EVER guess what you gave them, it is truly original.
    Pick up your copy today, makes a great stocking stuffer!
    • by eyenot ( 102141 )

      Doulb-plus! Even if, by some miniscule chance or miracle, they manage to guess that it's a book on Erlang you've given them without even unwrapping it, imagine how surprised they'll be when they see the cover! No-one EVER would have guessed a book on programming languages would have THAT cover!

  • OTP? "One True Pairing?"

    • Re:OTP? (Score:4, Informative)

      by TheRaven64 ( 641858 ) on Wednesday December 08, 2010 @06:24PM (#34494038) Journal
      Open Telecom Platform. Erlang was created for writing telephone switching systems, and so the standard library that it comes with was named with this in mind. It's a bit of a silly name now, because it contains a load of stuff that would be no use for telecoms, but which are pretty useful in other situations.
  • That does NOT look like a good cover for a book on computer programming!!!

  • by Anonymous Coward

    ...so you can read them concurrently.

  • by Peganthyrus ( 713645 ) on Wednesday December 08, 2010 @06:49PM (#34494442) Homepage

    What with being more up on the activities of fan-fiction authors than the activities of the Erlang world (it's really a fine slicing of 'vaguely aware of' for both), I keep wanting to read "OTP" as "One True Pairing", and wonder who Erlang is supposed to be having an imagined relationship with.

    I'm not sure I want to google for the real meaning of OTP in this context. I kinda like the mental images.

  • by msobkow ( 48369 ) on Wednesday December 08, 2010 @07:16PM (#34494796) Homepage Journal

    Just a warning for anyone thinking of picking up Erlang programming. The Mnesia database is unstable under 10.04 -- so unstable that it loses the entire database every few restarts of an application.

    • by Anonymous Coward

      The Mnesia database is unstable under 10.04 -- so unstable that it loses the entire database every few restarts of an application.

      Well it lost the 'a' from the front of of its name, so it's no wonder it forgets stuff.

    • by Mattias ( 24907 )

      Just a warning for anyone thinking of picking up Erlang programming. The Mnesia database is unstable under 10.04 -- so unstable that it loses the entire database every few restarts of an application.

      Do you have any references for this? I have used Mnesia on Ubuntu 10.04 and I haven't lost any data yet. However, I am about to use this combination on a mission-critical system so I really need to know if there is a problem.

  • Dont forget "Erlang Programming" http://oreilly.com/catalog/9780596518189/. Its been out for a while

Yes, we will be going to OSI, Mars, and Pluto, but not necessarily in that order. -- Jeffrey Honig