Spolsky Rails On Ruby
Posted by Dharmesh Shah on Sat, Sep 02, 2006 @ 02:42 PM
I’ve been a fan of much of Joel Spolsky’s writings for a while. I think some of his earlier work, like the “Law Of Leaky Abstractions” is simply brilliant (and entertaining too). But, that was way back in 2002 and both the volume and average quality of the posts has deteriorated over time. But, no big deal. He’s got a company to run, and I understand how that goes. I’ve been writing consistently for my OnStartups.com blog for almost a year now, and I’ve had my good weeks and bad weeks.
However, one of the recent Spolsky articles caught my attention: “Language Wars”. There’s a lot of thinking in the article that I agree with. But, in certain areas, I found the message overly trite and simple. Don’t get me wrong, I personally do not use Ruby On Rails for my own startup, but I know several smart technical founders of startups that did choose RoR and are happy with their choice. For specific types of applications, RoR provides an important productivity advantage. To dismiss the entire language and framework out of hand simply because it is new seems a wee bit extreme. Though I think there are tradeoffs, and I agree with Joel’s point that there is an advantage to “using what you know”.
But, it’s not the whole Ruby thing that really bothered me in the article. It was the reference to Joel’s own technical choices for his flagship product FogBugz. I’m not a FogBugz customer, but from what I know, it is a usable and often praised issue tracking system. What really struck me was that Joel chose to build his own compiler in order to build FogBugz. For someone who is looking to make “safe” choices, this seems to fly in the face of that direction.
The justification offered for building his own compiler comes down to this:
- Though the application is web-based, he needed to ship it to customers as it is not a hosted product (i.e. customers run the software in their own evironments).
- He needed to support multiple operating systems
Now, I could be wrong here, but these don’t seem to be particularly arcane requirements (i.e. there are likely tens of companies out there that have this need). Also, from what I know, FogBugz doesn’t seem to be a particularly complicated product that would justify a domain specific language in order to abstract the complexity.
Maybe I’m missing something, because I’m reasonably certain that Joel’s a really smart guy. But, to dismiss things like Ruby On Rails and in the same article claim that it was the right path to build your own compiler to create an issue tracking system seems a little misguided.
What do you think? Am I off-base here?