Book Review- The Ruby Programming Language
David Flanagan, Matz, and _why teamed up to write The Ruby Programming Language. This book is in kind of an interesting purgatory right now. This book covers Ruby 1.8 and 1.9 which is both an asset and a problem. It is hard to recommend this book to a beginner because Ruby 1.9 will not be in mainstream use for quite some time now and learning about the new features can be more confusing than useful, but it is also hard to recommend this book for people who know Ruby well since there is no clear differentiation of 1.9 code, thus you can't use it as a reference for what's new.
The obvious comparison for this book is the seminal pickaxe v2 book. Although the Ruby Programming Language is well written and enjoyable, it does not cover Ruby as thoroughly as pickaxe. I could see the Ruby Programming Langauge v2 with a full reference section of 1.9 (or even 1.8+1.9 with some clever way of showing the differences) taking over my recommendation for #1 most important book for any Ruby programmer in a few years, but until then pickaxe is still required reading.
One thing that I found interesting was the decision not to cover many of the common standard libraries like CGI, logger, test/unit, or net/* (there is 1/2 page out of 400 dedicated to net/http). These are some of the oversights I hope will be fixed in v2, though the authors may choose to keep the discussion more pure and keep the book focused on blocks and operators. Personally, I think that would be a shame not to get into more detail.
Overall, I like this book, but feel like the only person that would benefit from it right now are those who know Ruby at a somewhat higher than beginner level already, but want to deepen their knowledge to a more advanced level and stay ahead of the curve with 1.9 at the same time.
Adding a comprehensive reference section with clear differentiation between 1.8 and 1.9, and more _why illustrations (one per chapter is way too meager) could make this book invaluable.

2 Comments:
Thanks for the review, Lucas.
The book does not have one section that lists all new 1.9 features. But everytime a new feature is described it is clearly marked as a 1.9 feature.
Adding a comprehensive reference section would double the size of the book and is not what I was aiming for. The book title says it clearly: this book is about the language, not about the API. (Though chapter 9 is a long and thorough introduction to the API, but is not a reference.) In my opinion, the docs available with ri are authoritative and good enough--it didn't make sense to me to try and rewrite all of those.
David
10:33 AM, March 10, 2008
I think there is something to be said about being able to write in the margins, ri certainly does not have anything like that capability.
Moreover, if I could thumb through a reference and see the new and changed 1.9 methods for each class, I would certainly pay $50 just for that.
That said, great job with the book David.
11:02 AM, March 10, 2008
Post a Comment
<< Home