[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[ossig] Shiflett on "Ruby on Rails fans"



From http://shiflett.org/:

I'm glad to see all of the hype surrounding Ruby on Rails lately. I've
always been an advocate of open source software, and Ruby (particularly
Ruby on Rails) is yet another feather in the cap. I'm not afraid to say it
- I'm glad Rails exists.

I do think it's good to maintain some perspective, and some Ruby fans are
more than a bit overzealous. Ruby on Rails is a niche technology, and
although all signs indicate that its popularity is growing rapidly, it's a
bit premature to be thinking that it will dethrone existing technologies.
In fact, history has shown that technologies can happily coexist, even if
they target the same problem space. The success of Rails doesn't depend on
another technology's failure.

Like Andi, I don't see Rails as a direct competitor to PHP, but my
reasoning is a bit different. Both target the web problem, sure, but the
ideologies behind them aren't very similar. (Rails seems more like a
better J2EE than a better PHP.) Those who prefer one over the other are
already of a different mind.

I should elaborate, but I'm hesitant to try to explain such an ethereal
topic. Recognizing tendencies can tempt one to make generalizations, and
generalizations are rarely useful or accurate. However, I think
recognizing tendencies can help us to understand a group of people. Web
developers are a diverse group, but I think it's possible for us to be
divided based upon the qualities that we tend to admire most in a
technology:

* Flexible and Powerful
* Structured and Organized

Of course, these qualities aren't necessarily mutually exclusive, but
there is a balance to be made in most cases. Those who prefer "Flexible
and Powerful" (let's call them flexies, since they desire flexibility)
like to develop in C, C++, Perl, and PHP. Those who prefer "Structured and
Organized" (let's call them stiffies, since they desire structure) like to
develop in Java, ASP.NET, and Rails. Flexies see stiffies as those who
spend more time thinking about problems than doing anything to actually
solve them. Stiffies see flexies as those who don't do enterprise
development. (Some flexies appreciate structure and organization, but they
prefer freedom.)

I think Java has been a burden on the web industry for years. Java
apologists have tried to explain to me why it's the best choice for web
development, but the truth is that history just doesn't support this
stance. A web application built primarily with Java technologies tends to
require more developers, more money, and more time. The finished product
(if there is a finished product) tends to be substandard. Sure, some
developers can make great web applications with Java, and MacGyver can
make a bomb out of a stick of gum. I'll take my chances with the gum.

Rails is shaking things up by providing stiffies with a better choice for
web development. (It's also lowering the barrier of entry in much the same
way that PHP did for the flexies.) Those who prefer (or will prefer) Rails
over PHP are probably either not using PHP today or aren't happy to be
using it. (Maybe they just think it sucks less than Java and ASP.NET.) I'm
glad there's an emerging technology that will let these people be happier
and more productive developers. I think we'll see better web applications
emerge as a result.

But, it's a bit early to think Rails will replace Java. Maturity matters.
(This is especially true for stiffies.) PHP is getting a lot of attention
these days in the business community (in fact, one could describe its
recent growth as explosive), but many businesses still see PHP as cutting
edge. This is a technology that's been around for more than a decade, yet
it's considered cutting edge.

It's also important to realize that excitement is subtly different than
popularity. Excitement is trendy. Ruby hasn't yet made the TIOBE Top 20 -
its popularity still falls far short of Java, C, C++. PHP, and Perl. In
fact, Ada and Fortran are more popular than Ruby.

If you're like me, you expect to find that Rails is used to build many of
the Web 2.0 applications - you know, the kind of applications you sell to
Yahoo for millions:

* blo.gs (PHP)
* Flickr (PHP)
* del.icio.us (mod_perl)

I sense the presence of flexies. Let's see what else they've been up to:

* Digg (PHP)
* Technorati (PHP)
* Wikipedia (PHP)

These are the only Web 2.0 applications I use with any consistency. I
honestly expected to find many more Rails applications, so I decided to
specifically look for some, and I discovered a list of Rails applications.
Apparently most of the good Rails applications are developed by 37signals
(they created Rails), and they're all pretty cool:

* Basecamp
* Backpack
* Writeboard
* Ta-da List

I think a larger point is that good applications are built by good
developers, not technologies. Did you know what all of these applications
were written in? Did you care? Be honest.

I'd like to end where I began - speaking about Rails fans. I spoke with a
Rails fan the other day who had this to say:

"You need to be quite a bit more of an advanced programmer to get into
Rails."

This type of argument always makes me raise an eyebrow. It can be restated
as "Our technology is better, and if you were smart enough, you'd agree."
If I have to be smarter to use your technology, then your technology
sucks.

On the Ruby on Rails site, Tim O'Reilly has this to say about it:

"Ruby on Rails is a breakthrough in lowering the barriers of entry to
programming."

Tim's statement does more to improve the perception of Rails. Easy is
good. Let's roll with that.

---------------------------------------------------------
To unsubscribe: send mail to ossig-request@mncc.com.my
with "unsubscribe ossig" in the body of the message