Top critical review
3 people found this helpful
A miscellaneous, mainly useless reference
on February 18, 2012
The Ruby Way is a cookbook. I knew that before I bought it, and I don't think there's anything wrong with the format. But it has to be judged in context - it was one of the first English-language Ruby texts, which is nice, but it currently coexists with hundreds of Ruby references and several million Google results. So what does it offer over the competition? Not much!
Basically, what's wrong with this book is the superficiality and specificity of all the examples. I know that sounds contradictory, but in fact the problem is that all the topic areas are covered too shallowly to be of any real use, and the examples provided are dubiously useful. The worst point in the book may be when Fulton spends a page or two explaining how to find the date of Easter in an arbitrary year. For the 1% of Ruby programmers who need to determine when Easter occurs (and can't just look at a calendar for some reason, I guess), wouldn't they find it easy to just look up an algorithm and take a minute converting it to Ruby? Lots of the examples are super-specific like this and Fulton seems rather uninterested in explaining interesting technical tricks about them, or showing how to adapt them to non-hypothetical problems. When I say coverage is superficial, this is what I mean - every topic gets twenty or so examples, but some of them are so simple that they're useless to anyone who's read "Programming Ruby", while there are lots of super-specialized options that totally fail to cover the topics in depth. For another example, the chapter on graphics covers a handful of toolkit options but someone who read the chapter wouldn't be able to build a useful application in any of them, because only the absolute basics for each toolkit are covered. Again and again Fulton makes this same mistake.
The more I think about it the more I wonder if there's a kind of incompatibility between Ruby and this book format - Ruby is so easy and intuitive that you don't really need to memorize or write huge blocks of code to do basic stuff, and so much of this text is wasted on just that kind of thing. On the plus side, the code seems correct and competently designed, but I find it hard to care when I have no use for it. As an intermediate programmer, the ostensible target audience for this book, I am clueless as to who would find this book worthwhile.