IT Conversations: Joel Spolsky – Joel on Software: This is a great MP3 interview with Spolsky. (I know, I’m pathetic — I should just move to New York and start stalking him…)
Towards the end of it (it’s almost an hour), he talks about making sure you don’t bind your company to a proprietary technology that might not be there tomorrow. I thought this was odd since FogBugz is written in VBScript (classic ASP), but Spolsky made a great point —
FogBugz is in VBScript because it’s such a lightweight language that it doesn’t do anything that another language can’t do. Put another way, VBScript is the lowest common denominator of programming languages.
(Before you email me: I don’t know if this is actually true or not, but you get my point. VBScript is an awfully simple language.)
When Fog Creek wanted to release a Unix/Linux version of FogBugz they just wrote a conversion script that parsed the VBScript and converted it into PHP (the script is called “Thistle” — he talks about it here). Since FogBugz can run in VBScript, it stands to reason that it can run in about anything. The VBScript version, therefore, just becomes the reference implementation from which they can extend into other languages.
Related to this, Spolsky told the story about a company developing software which they were determined was to be language-independent. They wanted to be able to swap out language files and instantly port it to any other language.
To ensure they could do this, they first version of the app had all text in pig latin. This ensured that they the language was hot-swappable, because if they couldn’t get rid of all the pig latin they (1) wouldn’t have achieved their goal, and (2) couldn’t ship the product.