||New Reviews| |Software Methodologies| |Popular Science| |AI/Machine Learning| |Programming| |Java| |Linux/Open Source| |XML| |Software Tools| |Other| |Web| |Tutorials| |All By Date| |All By Title| |Resources| |About||
Keywords: Ruby, Rails, web applications
Title: Ruby For Rails
Author: David Black
Level: Introductory Ruby
Verdict: A little bit too wordy at times
Billed by some 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. It's 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 for 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 the syntax to look at the built-in classes and modules. As with any modern language, it's the standard library of packages and modules that add the power to the semantics of the language. 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 web site 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, 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 a 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).
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.