avatarharuki zaemon

The Ruby Way(tm)

By

I can’t help but be amused at the number of times I see the term “The Ruby Way” (or similar) used as a euphemism for “Better than {Java,C#,Python,Perl,etc.}” It seems to be one of those terms (like “Un-Australian” and “Un-American”) that can be used to support or attack anything based largely on personal preference.

Case in point: The discussion and ensuing ruckus over Humane Interfaces. What seemed (to me at least) to be an interesting talk on the subject rapidly (as seems to happen all too frequently) into a “mine’s better than your’s” sledging match.

Unfortunately, Fowler did begin his discussion with “Hanging around the ruby crowd…” and followed that up with “…compare the list components in Java and Ruby” which amounts to pouring gasoline on a bbq. However, what almost everyone fails to see (or possibly I fail to see that they see) is that the concept has almost nothing to do with the underlying language and far more to do with the people (surprise surprise).

Java is full of Swiss-Army classes as is Ruby. Ruby seems to have some very intelligent and articulate pracitioners as does Java. In many ways, Ruby (like Perl) seems to almost encourage bad habits in those less versed in The Ways™. Java OTOH attempts to prevent these same problems and yet creates a whole slew of others.

Disclosure: I like Ruby, alot! but I don’t hate Java as a consequence. In fact I find that besides some really nice language features that I really like, I don’t find that I think that much differently in either. Then again, I’ve never liked Struts, I’ve put up with Hibernate and left the J2EE stack along time ago. Alas, ActiveRecord is not much better (yet). It lacks many things that I’ve come to appreciate in ORM tools but, in its defense, it’s still relatively early days and what is there is relatively clean (from the point of view of one using the library) but take a look at the code and tell me there aint a whole lotta spaghetti in there!

Most people (probably myself included) don’t get software development, don’t get OO, don’t get “it” in general. So let’s not get sucked into thinking that somehow the language is to blame. Sure it has an influence but honestly now, horses for courses: People think differently, taste differently and smell differently. Get over it!

Maybe look at yourself first and ask the question “Do I get what they intended?” If you think the answer is yes, then ask again. If the answer is still yes, then how about taking aim at the people involved in creating the frameworks next. The underlying language is a very soft target.

First come up with a definition for “good” and then prove to me there is a direct correlation with the language.