As a Perl old timer I have only the most pleasant memories of this book's "sister title" - "Perl Cookbook", also by O'Reilly. The O'Reilly Cookbook series aims to fill the blank space between talkative introductory guides and heavy reference tomes for programming languages. Edited as a set of "recipes" - practical programming problems, divided into topics, the Cookbooks are a great way to quickly find solutions for common problems, and can also serve as a good intermediate / advanced tutorial to the language for those of us who like learning by example. The Ruby Cookbook can proudly hold a very respected spot in the Cookbook series, being very comprehensive and well written. The authors clearly strove to cover a lot of topics and provide copious examples, not sparing 800+ pages for the task. The first ten chapters of the book deal with general Ruby programming topics such as strings, code blocks, metaprogramming, etc. These chapters can serve as a good tutorial in advanced Ruby, presenting interesting examples and discussing different approaches to solve problems. The next six chapters are devoted to more specific topics: XML/HTML, Graphics, Databases, Internet, Rails and Web Services. These can be either very important or barely relevant, depending on what you do with Ruby. I skimmed through a good chunk of these chapters, since I don't use Ruby for web programming. Chapter 17: Testing, Debugging, Optimizing and Documenting is the one I liked most in the book. The authors skillfully present how to use the special strengths of Ruby to make the work of a programmer easier. The recipes in this chapter are good advocates for using Ruby over other languages. Next come few more chapters about GUIs, Multithreading, Rake and other miscellanea, providing an overview of the more advanced features of Ruby. Overall, the scope of this book is just huge - it's a mine of information, and a very good tool for any Ruby programmer. Overlooking a few minor typos and errors, the book is quite well written and the authors know how to get their message through with detailed examples and numerous code samples.


comments powered by Disqus