This definitive tome came out at just the right time for me, as I was looking to buy a Ruby reference, and this was bang up to date for 1.8.6 and 1.9 and co-written by Matz himself, along with David Flanagan. Yukihiro ‘Matz’ Matsumoto is the main man behind Ruby, so he ought to know what’s what.

I was initially surprised to find that the book didn’t conform to the ‘ a Nutshell’ style of programming language reference book with which I’m most familiar. It doesn’t comprise endless chapters of API reference laid out in a stiffly templated fashion – it is much more prosaic, using the vast majority of its pages to explain Ruby’s syntax and workings in a narrative manner with lashings of ad hoc examples. On reflection this makes sense as Ruby is a multi-faceted beast with much intrigue lying in its extensive syntax and dynamic nature. Hence a lot of attention is paid to the manner in which it is loaded and interpreted at run time, a full understanding of which is vital to being a great Ruby programmer.

There are some chapters at the end which deal with some of the basic API stuff (String, Array, Hash etc.) but these take the form of commentary and neat examples to demonstrate each method available in a compact but complete manner.

Overall I found it to be well written and a joy to read. I didn’t skip the bits I thought I knew and came away much the wiser for it. I’ve pretty much read it cover to cover, as well as using it to look things up when I wasn’t sure – and I’d recommend anyone else do the same.

The only slight let-down is the much hyped chapter head drawings by why the lucky stiff, the unusually named Ruby guru, celebrity and wacky artist. I can’t help feel that they were included so as to be able to put his name on the cover. I also suspect that the publishers have let why down rather badly with their handling of his artwork – reproducing his pencil drawings extremely unsympathetically. If that’s all I can find to complain about though, it must be a pretty decent book, and it certainly is. Buy one today!

You must be logged in to leave a reply.