|
|||||||||||||||||||||||||||||||||||
|
35 Reviews
|
Average Customer Review
Share your thoughts with other customers
Create your own review
|
|
Most Helpful First | Newest First
|
|
43 of 48 people found the following review helpful:
3.0 out of 5 stars
Good, But Not Great,
By
This review is from: Programming Erlang: Software for a Concurrent World (Paperback)
There aren't a lot of Erlang books out there, so if you want to learn Erlang, you need this book.
However, I found the writing style a bit preachy. The organization of the book needs work, as the author is constantly referring to topics he hasn't covered yet. I also found that the index needs a lot of work, as it's missing quite a few topics that I know are in the book. The API reference also is missing some functions, which I thought was odd. This book does a good job in promoting Erlang's ability to do concurrency well. I was hoping to get more functional programming style and mind set from the book, though. All in all a good book to have if you want Erlang, but you'll need more if you want to really dive into functional programming or if you want a complete Erlang reference.
39 of 44 people found the following review helpful:
5.0 out of 5 stars
A programmer's library must-have,
By
This review is from: Programming Erlang: Software for a Concurrent World (Paperback)
The computer language Erlang is mature and impressive, with primitives for concurrent, fault-tolerant, and distributed programming that make it a natural for internet applications. So why isn't Erlang more popular in America? The lack of recent accessible introductions in English is probably one reason.
This book fills that void. If you've been wondering what Erlang is about, you need to get this book. It's very readable and does not require any prior experience with functional languages to make headway. It's packed with examples and the book encourages experimenting with them; in fact the first chapter explains how to get an installation of Erlang. My one complaint is that some areas are omitted or only lightly treated, for instance mnesia and parse transformations. However there is extensive documentation on the internet available for these and other advanced Erlang features. This book will get you to journeyman level and allow you to leverage those online resources. Even if you never plan to use Erlang, you should read this book, since Joe Armstrong's wisdom on how to build fault-tolerant software is sprinkled throughout (of course, why implement half of Erlang in a bug-ridden fashion in some other language, when you can get the real thing).
26 of 29 people found the following review helpful:
4.0 out of 5 stars
Are you already familiar with functional programming?,
By
This review is from: Programming Erlang: Software for a Concurrent World (Paperback)
Erlang really appears to be an interesting language, and the author's enthusiasm for the subject shows - which is good. It helped me to keep going, when at times the code was a little hard to follow.
The book does a good job of introducing the language. In particular later chapters give emphasis to the topics of concurrency through multiple processes, multi-cores and distributed programs. All very timely subjects for a world that is connected to the Internet, and where even laptops have multi-core processors I gave the book a 4 star rating because I feel the author somewhat forgot who his audience is. On page 5 he starts out with a description that fit me almost perfectly, and probably many other readers: "Once upon a time a programmer came across a book describing a funny programming language. It had an unfamiliar syntax [...] it wasn't even object-oriented. The programs were, well, different....Not only were the programs different, but the whole approach to programming was different." After reading the book I don't feel like the "Erlang Master" that the road map described (pg 9). While the syntax is now familiar, I still look at the Erlang code and it feels foreign. I still have to "decipher" the code instead of read it. I would have liked the book to more fully address the items from the "Once upon a time" paragraphs. Being that "the whole approach to programming" is different than the OO that many readers are used to, I would have liked to have seen a chapter (or three) on how to best get into that mode of thinking. I do think the book is a good jumping off point. It gives you more than enough to get started. However, if you are unfamiliar with languages where functions accept functions which also accept functions as parameters and return another function as a result, you may end up feeling (as I did) that you only have half the puzzle.
12 of 13 people found the following review helpful:
3.0 out of 5 stars
Necessary book, but needs a 2nd edition,
By
This review is from: Programming Erlang: Software for a Concurrent World (Paperback)
I've been working through this book and am very glad for it. I'm not sure how else I'd efficiently have gotten up to speed on Erlang.
The book does need lots of minor work, though - it still feels like a beta piece of software. There are examples / explanations that make use of not-yet (or never) explained functions/modules. The appendix describing some of Erlang's modules only claims that the set of documented modules is incomplete, but doesn't mention that the set of functions within some modules is also incomplete. Etc. Another issue is the license of the code examples. The author shows some example code for how to do certain things, such as a distributed map function (pmap). After reading the book, it's hard (at least for a newbie) to imagine a different solution than the author's. But if you go to the website containing the example code from the book, you find a pretty restrictive license on the example code. So this leaves the reader in a difficult position: the book only shows you one way to do something like pmap, and the author has a license on that code that makes it unusable to many readers. This is more than a little frustrating. Finally, the index is very incomplete. If you're new to Erlang you still want this book. But it would really be a good thing for the author to gather criticism (if he hasn't already) and go a second round.
10 of 12 people found the following review helpful:
5.0 out of 5 stars
Erlang is going to be the future for performance computing...,
By
This review is from: Programming Erlang: Software for a Concurrent World (Paperback)
Erlang is the language to use for developing concurrent or distributive systems. I first used Erlang when I worked for Ericsson in 1997 programming Telecom switch control systems. We developed an elegant monitoring and control system that managed thousands of switches across the world, and is still in use today offering "Nine-Nines" of reliability. Ten years on and Erlang would still be the best choice - stackless python being the other - and in these passing ten years Erlang has really matured.
Now if you like books and would like to learn more about Erlang I recommend this book. Its author, Joe Armstrong, one of the fathers of Erlang, has a clean and elegant style that makes reading his book a pleasure, and although I'm an old hand I learned a lot from his book. So briefly here are the books Pros and Cons: The Pros: * Written by a real expert. * Great introduction to Erlang * Up to date with the language * Full of great examples, such as the quick sort in Chapter 3, or showing how to implement "Google's" Map/Reduce in a few lines, or building pipes in Chapter 12. The Cons: * I would have liked more on philosophy and design. Erlang is different and you just can't come from the OO world of C++ or Java and program in Erlang. You have to change the way you think. It would be great if Armstrong gave us some help here, just as Stroustrup gave us in Part IV of his second edition. * I would also liked a whole section on OPT or the authors equivalent framework. * Also More on distribution and robust development. Otherwise the book is great and with the very good material you can find on the web at the Erlang site or trapexit.org you should be set to make your millions writing a distributed financial analytical engine for all those very rich and greedy banks!
7 of 8 people found the following review helpful:
5.0 out of 5 stars
could be a tough programming paradigm, or a very natural one,
By pounding on the keyboard "wantaknow" (Bay area CA USA) - See all my reviews
This review is from: Programming Erlang: Software for a Concurrent World (Paperback)
Functional programming (Erlang, haskell, OCAML, mainly) has returned to devs' mindshare, look at lambda-the-ultimate, artima, reddit. It's produced a lot of blogs, online tutorials, but if you want a current book that's a complete overview, carefully written and vetted? Pretty slim pickings.
This book is an offshoot (or inspired by, or something) of Armstrong's PhD thesis. It is (or was) a pragmatic beta product, reviewed by 100's of developers, and this shows in exposition of data structures and algorithms. It's as good as intro dev texts get. The intro bits, like where the math teacher says "all X's mean the same thing" are kind of helpful but after that there's not a lot of handholding of the type of "how to do __ in java and erlang, side by side" (except the Exceptions chapter), or "Here's my definition of functional programming". There's lots of things similar to the ruby or python or smalltalk dev environment, some counter-intuitive things as well(no short-circuits of boolean expressions) but this book's an exposition of Erlang features, common tasks, and best practices. I liken this to the best software books, K&R, Python in a Nutshell, SICP, it's rigorous and intellectually and viscerally satisfying ;-) If you know prolog or lisp, or read the arguments about DSLs /metaprogramming that java and smalltalk/lisp/ruby/javascript devs are wont to have, you may say it fits your brain. Others have noted that the syntax is a complete rework of how they approach programming, that unification/pattern matching and constraint satisfaction is nothing like programming the algol-family. But i think all devs have to understand how regular expression engines work, so you can draw parallels there (tho no backtracking in erlang). (extremely) minor drawbacks of the book: preachy tone of superiority of COP (concurrency-oriented programm'g), fault-tolerance, many processes, etc. Some of the typesetting (code bits in footnotes against grey background) is hard to read. Division of the book into chapters is kinda odd (there's a couple 2-page chapters)
4 of 4 people found the following review helpful:
3.0 out of 5 stars
It's OK, but there is a better alternative,
By
This review is from: Programming Erlang: Software for a Concurrent World (Paperback)
UPDATE, November 2009 : (My initial review from November 2008 is below).
Since I wrote my review in 2008 the Cesarini and Thompson book has been published, and I consider that to be a much better book. C+T has a better writing style in general, and in particular it has more comprehensive coverage of OTP, which is an extremely important area. This book is still OK and will get you to a basic-beginner stage, but C+T will definitely take you further. As such I'm lowering this to 3 stars. Initial review from November 2008 : 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.
8 of 10 people found the following review helpful:
3.0 out of 5 stars
Mediocre; Erlangers should expect more,
By
This review is from: Programming Erlang: Software for a Concurrent World (Paperback)
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.
19 of 27 people found the following review helpful:
5.0 out of 5 stars
The most important programming language book this decade,
By
Amazon Verified Purchase(What's this?)
This review is from: Programming Erlang: Software for a Concurrent World (Paperback)
Erlang is a language that has lived in relative obscurity for many years. However, a combination of several factors is set to launch Erlang into the ranks of the most popular languages.
First, is the emergence of multi-core processing. Erlang is the only language I know that will scale to these platforms without any need to master the complexities of concurrent programming. Second, is the acceptance of dynamic languages in the current developer zeitgeist. Interestingly, Ruby (a language that could not be less like Erlang) probably did more toward opening the doors to interest in Erlang than any other language. Third, is the increasing acceptance of functional programming as an abstraction mechanism. More and more developers are appreciating that a functional decomposition of a complex problem can go as far (or even farther) than a object-oriented one in taming complexity. Fourth, Erlang is nearly complete right out of the box. It has a mature set of libraries for modern distributed development and programming in the large. Given its increasing visibility I fully expect the open source community to fill any gaps in its application stack. Buy this book and join the revolution.
6 of 8 people found the following review helpful:
5.0 out of 5 stars
The world is parallel (and twisted),
By Dmitry Dvoinikov (Ekaterinburg, Russia) - See all my reviews
This review is from: Programming Erlang: Software for a Concurrent World (Paperback)
I read this book to see whether I like Erlang or not.
I don't think I will have a real Erlang project in near future, but I wanted to see what the buzz is about. At the moment the book appears one of the few scarce printed Erlang resources around and it should have better been attracting curious people like myself. And the book did its job - I liked Erlang. To a point that I actually installed the language, Ecliplse IDE plugin for it and tried to throw together a program or two. Neat stuff, you have to pull your hair out to understand how to get a simplest thing done. Not because the language is complex, but because the common programming habits are opposite to Erlang's approach: [quote] The programming world went one way (toward shared state). The Erlang community went the other way [... toward message passing]. [/quote] But solving such puzzles will give you a different perspective and certainly will make you a better programmer. The book is a good introduction, that's all. It shows you the language clearly and consistently. As a joke, the book presents not little and not much information, but "lagom" information: [quote] Erlang comes from Sweden, where the expression "lagom är bäst" (loosely translated as "just enough is best") is often said to summarize the national character. [/quote] The book starts with simple things like variables and syntax, then proceeds to sequential programming primitives such as functions, touches exceptions and goes on to parallel programming with processes and message passing. Finally it proceeds to the application development framework called OTP (Open Telecom Platform) - the standard in Erlang world as it would seem. Therefore, upon reading this book you will know the language and how to build distributed applications with it. I have to admit, I skipped samples that were more than a page long, but luckily those were next to none. Small and clear samples, a few lines long, just to get the idea - that's what I like in introductory books - and those are plenty. One other good characteristic of the book is that the author not only shows what facilities the language has to offer, but also why you need them. For instance with OTP explanation - it approaches the OTP principle in few steps - first start the server, what may you be needing now, add it, then you will be needing this, add it as well, and then - voila - what you get is OTP ! The book and the language will give you a different perspective on building distributed applications, whether it be Erlang, OTP or not. Like I said - I liked Erlang upon reading this book. |
|
Most Helpful First | Newest First
|
|
Programming Erlang: Software for a Concurrent World by Joe Armstrong (Paperback - July 18, 2007)
$36.95 $23.05
In Stock | ||