Wednesday, September 13, 2006

Piling on old Joel

Joel Spolsky, famous for the Joel on Software blog, is a funny old man. He's been doing a lot of hating on Ruby and Java for a while now. His latest complaint about Ruby is comes down to the fact that it's not fast enough for big calculations. I guess we are all missing something- but what big calculations is his bug tracking software doing? Does it fix the bugz in your code?

Most Rubyist use c extensions in those cases. I used to drop out of Avenue to call signal propagation algorithms written in c++ rather frequently. Even in Java, we used JNI calls in various places for image processing code. And then the c and c++ programmers drop into assembly for the truly ludicrous optimization requirements. And then we buy an FPGA and do it in hardware. Has anyone tried orthorectification with this stuff from Cardio Logic?

In his quest to have a flexible high performance language, Joel is actually using a custom language based on VBScript (that compiles to...VBScript) for his little web app. To ease deployment. And it's called Wasabi.

Dion's satire is amusing but I have to point all to Jeff Atwood's excellent deconstruction over on Coding Horror. A snippet:

"For instance, two weeks ago we found out that Joel's company wrote their flagship product, FogBugz, in a proprietary language they created themselves.

FogBugz is written in Wasabi, a very advanced, functional-programming dialect of Basic with closures and lambdas and Rails-like active records that can be compiled down to VBScript, JavaScript, PHP4 or PHP5. Wasabi is a private, in-house language written by one of our best developers that is optimized specifically for developing FogBugz; the Wasabi compiler itself is written in C#.

You couldn't possibly have heard it, but that was the sound of fifty thousand programmers' heads simultaneously exploding.

Writing your own language is absolutely beyond the pale. It's a toxic decision that is so completely at odds with Joel's previous excellent and sane advice on software development that people literally thought he was joking. He had to write an entire follow-up post to explain that, no, he wasn't kidding.

So, should we all continue to pile on poor old Joel? I have been looking at his stuff with a much more sceptical eye this year, but I am thinking about not looking at all anymore...sigh.


Sean Gillies said...

Did Spolsky jump the shark? I guess we'll have to wait and see. Meanwhile, he's still relevant to the GIS business: his own VB -> C# path is the same one being travelled by Arc* platform developers.

Matt M said...

Agreed...C# is the arc of Arc development, now that they have tied themselves to Microsoft completely. It is interesting to note the ESRI support of Python though. I have dabbled with it in ArcInfo, and it seems like a powerful approach. I am not sure that a lot people are trying it though...

Carl said...

Joel mentioned in the past that FogBugz does some fancy bayesian filtering on email, which I assume is the computationally expensive feature mentioned in his Ruby post. One would think that this particular feature would be perfect for an outside process to handle since it is done when email arrives and therefor would not need to be written in the same language as the web application. Granted you would have to figure out a way for the filtering application to share data with the web application. I hear they have these nifty things called databases that help with that.

But what do I know, I was never hired by Microsoft

Matt M said...


I agree that it's the kind of thing that should be done on message arrival, but maybe that would be too much processing if each new message caused all previous messages to be reclassified.

Regardless, I think the whole idea that the ability of your web framework to handle this kind of stuff is some kind of selection criteria is dumb.

Here's what I like about Rails, my apps run faster because it is smarter than the code I write, regardless of the underlying technology.