It turns out Joel’s primary product FogBugz is written in Wasabi. Wasabi is a custom language rooted in VBScript with added coolness like lambdas, closures, LINQ-like embedded SQL etc. Wasabi does not compile into native code nor is it interpreted – it compiles to VBScript or PHP. Wasabi compiler is written in C#, but this fact is mostly irrelevant.
To say that this generated a lot of controversy would be a huge understatement. The problem was that just a bit prior to this post, Joel ranted on and on about Language Wars. Executive summary – Joel’s friend asked for an opinion on which Web development language to choose for an enterprise level application. Joel’s response was to go with the safe approach – with the languages and frameworks that have been confirmed in practice, like Java, .NET or PHP.
Combined with the Wasabi post, many accused Joel of “do as I say, not as I do” attitude. Further, because Rails and Ruby were not among the recommended frameworks/languages, Rails fanboys decided to retaliate. Even Rails creator David decided to chime in with the post Was Joel’s Wasabi a joke?.
I’d like to draw your attention to a typical and reasonable comment from joe to the David’s post:
C# is cross platform (with mono). Java is cross platform. Python, lisp, perl, ruby, haskell, and a thousand other languages are cross platform. Some of them are even "enterprisey". Given all of the above why would you waste time writing a compiler in c#? Why not just rewrite your app in c# and call it a day? Why cross compile to php AND VB? PHP runs fine on windows and it supports IIS and SQL server, why don't you just write it in PHP and call it a day?. If you want to distribute your app then why not have your compiler spit out a C apache module? I can't believe Joel would be so stupid as to write a compiler which spits out PHP and Vbscript. It just doesn't make sense. It's ridiculus on the face of it. He is just messing with you guys and you guys are falling for it.
Basically, joe wonders about the same thing as I did in my previous post – wasn’t it also possible to rewrite FogBugz into a platform independent language at the time it was decided to make it multi-platform?
The answer is not a simple yes or no. If you’ve read Joel since “the beginning” you know that he is against most rewrites (and he’s right). If the circumstances are such that there’s no other way, sure – but otherwise keep the codebase and keep patching it. So it makes more sense to make a compiler that will transform VBScript to PHP than to rewrite the whole codebase in PHP. This might have been the only reasonable decision, if the codebase was larger than most of us think. Without Wasabi, all of Joel’s developers would have to suddenly become top-notch PHP developers, which would cost money in training and increase the risk of bugs introduced just because the developers didn’t know the language well.
Once they had their own compiler they realized that they could now start improving the language as long as the new constructs can be compiled into the constructs of the languages they compile into. Soon they ended up with a language in many ways superior to the average scripting language like VBScript, yet they incurred almost zero training cost and zero risk. That sounds quite good to me.
This does not mean that the rewrite was out of question. It just means that Joel is not nearly as “stupid” as joe would imply.
Personally, if Rails showed up sooner and matured some time before FogBugz was supposed to become multi-platform, I wouldn’t be surprised if Joel switched to it. But the timing was not right and now it’s too late.
Be the first to rate this post
- Currently 0/5 Stars.
- 1
- 2
- 3
- 4
- 5