I Programmer's book reviewers read over 200 programming titles per year. That's only a fraction of the programming books published, but we try to cover the important ones.

For Programmers Bookshelf we select just the books that were given a high rating, i.e. a 4 or above. In the case of Ruby this meant including over half of the titles. As Mike James comments in a recent review:

Ruby, and its best known framework Rails, seems to attract the sort of book that other languages and frameworks would be pleased to have.

This article picks out key points from each of these review and if you want to read more of the original review click in the link in each title. The thumbnails of the book jacket in the side panel provide links to the Amazon website.

If you just want to view the book's product details (without making a purchase) click in the top portion of the thumbnail to open the book's product details page. If you do decide to buy a book via Amazon, accessing it from a link on I Programmer means that we are credited with a few cents.

Ruby, the language

If you want to get deep insights into Ruby what could be better than the book co-authored by Yukihiro Matsumoto, the creator of Ruby?

If you check the Amazon reviews for The Ruby Programming Language you find that the book scores a straight 5 from everyone and the reviews are slightly in awe of the volume.

Mike James, having read both the book and the other reviews, awarded the book a rating of 4.5 on the grounds that, despite being the de facto standard text on Ruby it isn’t quite perfect:

Its most important shortcomings is that it tackles topics in an order that reveals the structure of Ruby rather than provides a good and easy introductory pathway into the language. This means it isn't a book for the beginner. It also doesn't make a good technical reference because it simply isn’t exhaustive and it isn't a good cookbook because that's not what it sets out to do.

This is my preferred book on Ruby. It complements what you can find on the web by being a logical introduction to a range of topics. It starts off with an overview of the language which should be understandable by anyone who can already program. If you have no idea about programming you won't be able to follow the examples or the ideas. Also don't expect the example used to be either realistic or fit together to make a whole. The examples are designed to illuminate the particular point being explained and not as a real world anything. In the main they do a good job but occasionally there are problems with the explanations or typography that leave you wondering exactly what the meaning is.

After explaining that the book provides "a linear logical exposition of the ideas that make Ruby an interesting language" the review concludes:

If you are serious about Ruby then this is a book you should buy, but you really need it and some additional reading. Don’t buy it if you are a complete beginner - you need to have a good grasp of objects and another language to appreciate this book.

Our review is of the second edition but there's a later version that refers to Ruby 1.9 in the title.

Ruby for beginners

Ruby isn't often thought of as a first programming language so Learn to Program: Using Ruby is an interesting book, that uses Ruby to introduce complete beginners to programming. The review acknowledges that this could be a problem:

Ruby, despite its popularity isn't as in as widespread use as say Java or any of what you might call the "traditional" languages. It also has an arguably "different" approach to many standard things such as objects, functional programming and control structures. Indeed it is the "difference" that makes Ruby such an attractive language. However this could be a real problem for a beginner who learns to program and ends up thinking that the entire programming world is like Ruby.

The book gets off to a promising start with the author succeeding in steering clear of Ruby's "eccentricities" while explaining the basics - what a variable is, the flow of control, loops and conditionals and so on. However, later on it jumps straight from loops to iterators and devotes a whole chapter to recursion, which prompts Mike James to comment:

There are lots of very experienced programmers who will admit that they are still (quite reasonably) unhappy about recursion and view it as a technique to be used occasionally and with caution. Why burden a complete beginner with something so sophisticated difficult and dangerous?

However, despite lapses in the choice of topics and the order in which they are presented, this book is awarded a rating of 4 on the grounds that is lively and motivating style succeeds in "how to tell it".

Niche Ruby topics

To want to read Distributed Programming with Ruby you need to already program, quite well, in Ruby and want to create distributed applications using either DRb or Rinda. If you fit into this category, this book takes a comprehensive look at Ruby libraries concerned with some aspect of distributed programming. According to Ian Elliot this works very well by being a logical and well written approach to the task. He gives the book a rating of 4.5 and his review concludes:

If you are interested in distributed programming with Ruby then you need a copy of this book - unless you are an expert already.

The JRuby Cookbook is aimed at Java programmers who want to use Ruby and succeeds in being on topic. It introduces JRuby is, a version of Ruby that runs on the JVM and so can inter-work with Java, and includes plenty of Java/JRuby interop. The review awards a rating of 4 and concludes:

If you are looking for a book that will help you use JRuby in a Java environment then this slim volume has the advantage of being right on topic.