On Being a Rails Expert

I've come across a recent phenomenon that I think is ... well ... sort of curious. There's been a lot of hype lately about a new technology called Ruby on Rails. Ruby, of course, is an object-oriented scripting language with some moderately eclectic syntax in various areas. Rails is a framework created in Ruby that purports to simplify, and dramatically speed up, the web development process.

From what I've seen, Ruby is, in fact, a very powerful language with some subtleties that take a while to master. Likewise, the Rails framework is a daring software effort that discards old perceptions about how frameworks should be architected in order to create something that may really impact how web sites are built in the future.

But neither Ruby nor Rails are the phenomenon that I'm talking about in this blog. The phenomenon that I've seen is the sheer number of developers walking around calling themselves "Rails experts" even though they've only read one book on Rails and only created, perhaps, a single toy application.

The book that everybody reads is the so-called "Rails bible", the thick tome called Agile Web Development with Rails by Dave Thomas and David Heinemeier Hansson, with Hansson being the primary originator for the Rails framework. Don't get me wrong, it's a very good book and highly recommended if you want to get started with Rails.

But despite the exhaustive nature of the book, reading it makes you knowledgeable about Rails but it doesn't instantly make you an expert. Most people I've seen can only do the basic things with Rails that are exhaustively described in the books that are available. As soon as they encounter a problem that ventures off the beaten path, they're stumped.

And here's why. Let me compare Ruby on Rails to the Struts framework in the Java world. An expert developer in the Java realm would classify himself as a Java expert, not solely a Struts expert. In fact, complete mastery of Struts basically requires a wide-ranging mastery of Java. With Ruby on Rails, which is still in an early adopter stage, individuals with only a modest degree of knowledge are touting themselves as experts in Rails with no real underlying understanding of Ruby.

Frankly, this is absurd. I like Rails. I think it's got a lot going for it. But Rails derives much of its power from the capabilities provided by the Ruby programming language. If you want to get beyond rote following of the Rails techniques described in programming books, you will have to understand Ruby.

It's that simple. Mastery of Rails requires mastery of Ruby.

The ability to really build interesting features on top of Rails requires mastery of Ruby. In order to understand how Rails does some of the things that it does, you will have to master Ruby. So, the next time you see one of these self-declared Rails experts, ask them how well they know Ruby.


No comments yet. Be the first.

Leave a Comment

Comments are moderated and will not appear on the site until reviewed.

(not displayed)