Customer Rating:      Summary: Mediocre; Erlangers should expect more Comment: In my opinion, Programming Erlang has been bought and used primarily because it is first book on Erlang, not because it will stand the test of time. Alpha-geeks want to learn Erlang and there just aren't many options available yet. Unfortunately, this is not a well-done book. I expect more from The Programmatic Programmers (the publishers).
I used this book as part of a study group to learn Erlang. Most of us had Ruby experience but not all of us had functional programming experience. The group, as a whole, was not pleased with the book. I admit that Erlang is a different way of programming than many Rubyists would expect -- this makes writing such a book challenging.
To summarize, the book just doesn't feel put together right. The intended audience, organization, and writing style don't work together.
Perhaps the book is trying to do too much: introduce the Erlang language, explain how programming in Erlang requires a different approach, and give good examples. Perhaps the book should be more cleanly organized into parts (e.g. quick introduction, language reference, language best practices, examples) so that a reader knows what to expect.
Don't expect "Programming Erlang" to be similar to "Programming Ruby" by The Pragmatic Programmers. The latter is well organized, comprehensive, detailed, and teaches the Ruby language well. "Programming Erlang" is none of these. It probably should have a different title, hopefully indicating that is trying to teach the language and intermix useful examples. I emphasize "try." This book doesn't satisfy in terms of teaching the Erlang language nor as a cookbook.
Here are some specific criticisms:
1. I would think that any book about Erlang would want to discuss functional programming to some degree. It would also be helpful to refer the reader to other resources if the author expects a certain level of understanding. As it stands, functional programming seems to be the elephant in the room of this book. It is mentioned on page 1, but never again according to the index. This book is neither a good introduction to functional programming nor good at tying in concepts of functional programming as they are used in the book.
2. I expected the book to lay out the syntax and basic constructs of the language in a coherent, organized way. It does not. The language is introduced in a piecemeal fashion and never covered in a satisfying way.
3. The organization of the book needs improvement. Take section 5.4, "Miscellaneous Short Topics," for example. It is a scattershot of topics that should have been organized in a better fashion. It is dry, probably because the reader doesn't know why the topics are relevant.
4. As my fellow user group attendees pointed out, some of Erlang is inspired by several other languages, including LISP. I think the book would serve its readers well by offering more footnotes and referrals to other texts to help explain why parts of Erlang seem strange to Ruby programmers.
On the positive side, some parts are humorous. Sometimes (but not consistently) the explanations are insightful, too. Some kudos are:
1. I like how the author (Armstrong) introduces, emphasizes, and even defends single assignment variables and pattern matching right from the beginning. These core concepts are strange to a new Erlanger and should not be breezed over.
2. The introduction to concurrency (Chapter 7) is a humorous and enlightening metaphor. "If somebody dies, other people will notice" uses not-too dark humor to explain error detection.
At least one reviewer here said that this book is going to be the "classic" Erlang text. Not in its current form -- the Erlang community can do better. Let's encourage Mr. Armstrong to iterate on his book. Concurrently, I encourage other authors (especially those who do a lot of teaching) to write a book that does Erlang justice.
Customer Rating:      Summary: The K&R of the Erlang world Comment: I found this to be a pretty easy read overall, but of course had to re-read some sections as I was coming across new concepts.
It reminded me a lot of reading Kernighan and Ritchie way back when I was learning C. I don't say that because the author is the "father" of the language, but because it covers the bare essentials, just enough for you to start really learning to use it.
So if you want to start learning Erlang then this is essential reading and will give you a good start. If you want advance then you'll either have read the online documentation (and there's lots of it) or wait for a book that covers things in more depth.
Highly recommended.
Customer Rating:      Summary: Great overview on Erlang and OTP Comment: With a very amenable writing, Joe Armstrong presents a clear overview on the Erlang Language and basics of the OTP. The book presents the basic topics, with simple and yet powerful examples, and points the directions on how to find more informations.
Definitely a great book.
Customer Rating:      Summary: Very good intro to Erlang Comment: This book was well worth the money even if you don't intend to program in Erlang. It gives a very good over view of an alternative model of parallel programming that is currently not heavily used. The model emphasizes reliability by not having any shared state. I went on to use this model in C++ projects.
Customer Rating:      Summary: Good book technically; a bit confusing organizationally. Comment: Overall, I liked this book. When I read this, I was looking at doing some Erlang work; I didn't end up using Erlang, but the book was still enjoyable, and gave me a good overview of the language.
Some things were a bit odd: the organization was not clear, and the order of chapters was confusing. The authors choice of material was seemed unusual to me: he covered a streaming MP3 server, and mentions ID3 tags; he does not, however, describe what they are or describe in detail how his code processes them. Still, the important details of Erlang itself are covered, and perhaps that's the most important part.
Take it easy,
Dave
|
|