The rantings of a beautiful mind

On life, society, and computer technology.

My Photo
Location: Toronto, Ontario, Canada

I live in the Fortress of Solitude. I drive the Silver Beast. My obsession is justice. I used to be a Windows software developer. I retired in 2000 when my stock options helped me achieve financial security.

Thursday, November 16, 2006

No guts, no glory

Joel Spolsky says:

Before you flame me, Ruby is a beautiful language and I'm sure you can have a lot of fun developing apps it in, and in fact if you want to do something non-mission-critical, I'm sure you'll have a lot of fun, but for Serious Business Stuff you really must recognize that there just isn't a lot of experience in the world building big mission critical web systems in Ruby on Rails, and I'm really not sure that you won't hit scaling problems, or problems interfacing with some old legacy thingamabob, or problems finding programmers who can understand the code, or whatnot.

Well, interfacing with old legacy thingamabobs is a typical problem nearly all software projects face. Using Java or C++ certainly doesn’t obviate that. And whether you are using Ruby or Smalltalk, this certainly is not an intractable problem.

And is it true that Java scales well for all types of software projects? I don’t see why Ruby or Smalltalk should have greater scaling difficulties. (In fact, the experiences of Smalltalk enterprise customers show otherwise.)

As for finding programmers who can understand Ruby code, there appears to be a LOT of them around the globe, given the rapidly increasing popularity of the language. Unless you are expecting high turnover rates in your software project (suggesting you have other, more pressing problems), this shouldn’t be a major concern.

So while Ruby on Rails is the fun answer and yes I've heard of 37 Signals and they're making lovely Ruby on Rails apps, and making lots of money, but that's not a safe choice for at least another year or six. I for one am scared of Ruby because (1) it displays a stunning antipathy towards Unicode and (2) it's known to be slow, so if you become The Next MySpace, you'll be buying 5 times as many boxes as the .NET guy down the hall. Those things might eventually get fixed but for now, you can risk Ruby on your two-person dormroom startup or your senior project, not for enterprisy stuff where Someone is Going to Get Fired.

Joel assumes that choosing to develop in a non-mainstream language entails greater risk than any other kind of risk that software projects inevitably have. Is this a reasonable assumption? What evidence can anyone provide?

There probably aren’t enough Ruby projects to offer a good statistical sample. Perhaps this is what enterprises want to see in the way of proof before they accept the risk of using Ruby. But such proof won’t be forthcoming unless or until enterprises take it upon themselves to explore the wonders of dynamically typed, purely object-oriented language tools, such as Ruby and Smalltalk.

I share Joel’s sentiments, I really do. I’m not suggesting that enterprises jump whole hog into using a “non-mainstream” language, but they should at least give promising tools a try, starting with pilot projects to suss out any problems with scaling or performance. To continue to play it safe all the time is to miss out on potentially valuable opportunities. No guts, no glory—even in business, this aphorism applies...


Post a Comment

<< Home