The Spolsky Compiler

I just read a post by Joel Spolsky where he begins talking about different languages and platform stacks. I had begun to skim and skip a lot of the content because it just didn't strike an interest, however, I hit the last paragraph where he reveals how they build applications at FogCreek.

_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#. _

Now, I'll stop short of saying that this is just a bone-head thing of doing because I don't know all the reasoning behind it. Maybe it is cheaper to fund the building and the maintenance of one's own custom, proprietary compiler and language, than it is to provide a PHP port of a VBScript (or for that matter an ASP.NET) application that is fairly simple (bug tracking with minimal workflow). For that matter, I don't even know how large the market is for the PHP version of the application. However, I am sure those numbers all balance out and the business decision supports it, at least to some degree.

Then I ran across Jeremy Miller's post about this same subject. Jeremy is not as kind as I am trying to be and says matter-of-factly:

So, a diatribe on sticking to mainstream technology, then saying you wrote a proprietary programming language that "compiles" to VBScript to get features which already exist in other languages. I really can't imagine a bug tracking tool requiring a special language. If you'll forgive the vulgarity, the phrase "Proprietary Programming Language" is what I call a 'Nad Shrinker.

"Nad Shrinker"? Now that's a new one to me but hilarious.

I have wondered ever since becoming a customer of Joel's why is he still using VBScript and old school, err, classic ASP, to build his application. It seems to me that a much more powerful application could be built using C#/ASP.NET and at the same time make maintenance chores a lot simpler and therefore cheaper. I would have to imagine the overhead involved in maintaining your own language and compiler would far outweigh the benefits of producing the product in two languages as I would imagine a fair number of those running FogBugz on PHP would build out a Windows server and serve up FogBugz in IIS if they didn't have the choice of using PHP.

All this being said, it's hard for me to criticize what Joel is doing as he is doing it (running his own software company) and doing so apparently pretty successfully, and I am not.

By the way, I just realized that this marks my 200th post on this blog! It's been fun writing and sharing my thoughts. I think it has been instrumental in helping me develop some of my half-baked ideas. It is also starting to serve as a good reference tool for me as I begin to start using the Search feature of this blog to find past posts. I would imagine that this will become more and more valuable as time goes on and my archives get larger and larger. I am starting to hit the limits of storage as allotted in my hosting package so I may need to relocate this blog to another host soon or figure out a good upgrade path at my current host. Moving the blog makes me nervous -- wouldn't want to loose anything.

Tags: joel spolsky, joel on software, proprietary compilers, jeremy miller, nad shrinker