Off the Rails?
Calling all Rails developers that want to learn Ruby
Book review Billed as a possible Java-killer, the huge amount of interest in the Ruby programming language is in no small part due to the popularity of the Ruby On Rails framework.
An application framework that implements the Model View Controller architecture, Ruby On Rails enables the creation of data-driven web applications with minimal configuration and infrastructure coding.
Its advocates point out that developers using Rails can concentrate on the application logic and forget about the plumbing. It's also possible, in theory at least, for developers to use Rails without knowing much in the way of Ruby. However, those wanting to understand how Rails works, and who want to get the most out of it, can turn to Ruby For Rails, a tutorial designed precisely for Rails developers wanting to learn Ruby.
The first part of the book introduces both Rails and the Ruby language. It's an extended scene-setter containing a first introduction to Ruby. It describes the Model View Controller architecture and how it's implemented in Rails, and introduces a follow-along example site. It also presents a good argument as to why it pays the Rails developer to learn Ruby rather just be content with the framework as is.
In the next part of the book, the language is the main focus. This entails an introduction to classes and objects, program structure, scoping, control flow, and so on. It's a complete introduction to Ruby syntax and the main concepts of object oriented programming (inheritance, polymorphism etc).
Part three moves on from the language and syntax to look at the built-in classes and modules. As with any modern language, the standard library of packages and modules adds the power to the language's semantics. Like Java, C#, Python, and others, Ruby comes complete with collection classes, built-in types, regular expressions support, and so on.
The final section of the book puts the language and framework side by side again. There is a whole chapter on enhancing ActiveRecord – the object relational mapping class for Rails – which is one of the key selling points for the whole Rails framework. This section of the book returns to the R4RMusic example website which is developed at various points throughout the text, adding more functionality that stretches Rails a bit more and which makes use of the Ruby skills that have been imparted in the earlier parts of the book.
The central intention of the book – to make Rails users Ruby-literate – is sound enough, but the book does suffer from a number of faults. The first and most serious is that it's too long. The text is long-winded and repetitive, making it hard to read at times. The 530+ pages could well be slimmed down 150 or so pages and still deliver the same technical content.
Secondly, the author seems unsure whether he's writing for experienced developers new to Ruby and Rails or readers who are new to programming in any language. This lack of clarity means the book lacks a clear focus at times (particularly in contrast to the pick-axe book, Programming Ruby by Dave Thomas).
Ruby For Rails
Verdict: A bit verbose at times, but many readers will find the book a useful tutorial as they take their first steps into Ruby and Rails.
Author: David Black
Publisher: Manning Publications
Buy this book at Cash 'n' Carrion.