Saturday, May 26, 2007

Is Ruby (and Rails) Overly Hyped?

It was, what, 1995. Maybe 1994. The World Wide Web had the biggest assist that lead it down to the road it's been on ever since. No, not the search engine.

Mosaic.

Mosaic was the graphical browser, the predecessor to Netscape, which begat IE, and eventually Firefox and Opera and other lesser known browsers.

Nearly hand-in-hand with the advent of the graphical web browser was Java. Java was originally conceived as a language to be used with a precursor to WebTv. C++ was seen as too difficult a language to work with. Sun's language experts stripped away some of the nastiness of C++ and created Oak, which was rechristened Java, and then retooled it for the Web.

At the time, people thought Java was overhyped, but the hype worked. It created a huge web industry. You know, enterprise Java solutions. And I'm not talking about Kirk and Spock and the rest.

I suppose, Microsoft being Microsoft, released it's .Net environment, and when Sun said Microsoft could no longer develop Java, they simply created C#, which is basically Java, though some claim a nicer Java.

Since then, there hasn't been anything that's been hyped like Java or C#, at least, language-wise (Ajax and some web technologies were hyped).

Until now.

Well, until three years ago. In July 2004, David Heinemeier-Hansson, of 37 Signals, released Ruby on Rails. He created a web framework built on Ruby.

Now, Ruby was a bit obscure then. I had heard of it. At the time, there was Perl, Python, and lagging way back was Ruby. But you could get a book on Ruby, which is presumably how DHH found out about it. The three are considered "dynamic languages", though Python and Ruby fit that category more truly than Perl.

They've been denigrated as mere scripting languages that don't do what "real" languages like Java, C++ do, which isn't really true. Most of these languages have an interpreted environment and avoid strong typing. While this sounds horrendous to lovers of strong typing, it does create simpler code, even if, I imagine, it creates nastier code to debug. This is why TDD (test driven development) has been pushed so heartily, to overcome what is an obvious problem.

Java's success lead government agencies and real companies to adopt the technology, and because so much effort was put into it, Java's reality matched the hype. No one invests that kind of energy to dump the technology. Even now, Java technology (say, Struts) from 5 years ago hangs around today because companies are loathe to pick up the latest technology.

And one can't underestimate that Java was picked as the language for the AP exam, which means that many a college and many a high school picked it as the language to teach students. This was a huge coup, because that meant many hundreds of thousands of students learn Java.

Not every college has been quick to adopt Java despite all that. There's still plenty a college that adopted C++ back in the 90s and has not bothered to switch, mostly because academics, being academics, aren't interested in following what industry does. They often lag way behind wondering why they have to keep learning new stuff. Aren't they the experts now? Goodness, another language?

Still, even as the AP exam flirted with C++ for what? Ten years? Sometime in 2002 or so, the AP exam moved to Java, so they aren't likely to adopt Ruby anytime soon.

The Ruby Revolution may be hampered by that, but that might be OK for now, because C++ was around for a few years before colleges adopted it.

One can argue that Ruby, a language that was around since 1994, but wasn't around the US "popularly" since around 2000, but really got its big push with Rails.

I had been wanting to learn it for quite a while now, and hope to make a push soon to learn more of it. I understand the basic syntax, but haven't had a good program to write until now (well, I'm still deciding what to use).

Railsconf, i.e., a conference helps out. Even a big site like Twitter helps Rails fame. But, I don't know whether the industry is fully prepared to embrace Ruby and Rails. What helps are two efforts: JRuby and Iron Ruby. Both Microsoft and Sun see Ruby as the next step. Will it really be the case? I think it's so new we won't know for sure for a while, but as long as their is enough hype, more and more people will try it out.

Currently, the future may be this homesteading idea, the one put forth by Nathan Talbott, which is letting small potatoes software consultants putting websites up. This almost makes programming a kind of social engineering kinda thing. But is that enough? You get momentum with big companies that invest a lot of money and labor and eventually inertia that will keep Ruby in people's views.

Several things would help Ruby's popularity. One is the adoption of Ruby in high school curriculum. I don't see that happening soon, so the next step is a grassroots attempt by the Rails community to push that downwards, to get interest among the youth.

Hmm, I think I'll blog on that next.

No comments: