Lazycoder

13Sep/061

What I think about Wasabi

A lot of people are giving Joel Spolskey grief over his Wasabi language for FogBugz. Normally, I’d be one of them. However, his decision to write a specific scripting language to output one of his products doesn’t really affect me. How many bug tracking applications, CMS, and VNC wrappers does the world really need anyway? (probably as many as their are Linux distros).

Joel asked a specific question over in the comments at Jeff Atwoods place that I’d like to address.

(1) Six years of code already written in VBScript

(2) Needs to run on customers’ Windows and Unix servers

(3) Minimize tech support costs

(4) Many customers refuse to install new runtimes on their servers, either because of IT policies or out of stubborness

What would be your solution?”

I have two possible plans.

First, I would capture the existing functionality of the VBScript app in a document. Then I would find the most commonly avaiable web runtime for both the Unix and Windows platforms. I’d probably end up with PHP. Next I would hire talented PHP programmers and port the VBScript application to PHP. At this point, I’m not sure what I would do next. Each has it’s advantages and disadvantages.

1) Make the PHP version the official version and relegate the VBScript version to “legacy” status. Provide support for the VBScript version for a couple of years, but phase it out in favor of the PHP version. Provide DEEP discounts to existing VBScript customers to entice them to upgrade (maybe even make the upgrade free). This allows you concentrate on a single languages featureset and use a single codebase. (note Wasabi also allows you to use a single codebase, more on that in a minute).

2) Hire talented VBScript programmers to maintain a parallel version of the PHP application, bugfixes, support, etc…. I think it would be easier to maintain separate talent pools (PHP and VBScript programmers) than it is to retain and train people who are specialists in both languages to maintain and upgrade the Wasabi compiler. At least with VBScript, you have a dead language to maintain. PHP is constantly evolving.

I think that creating a DSL to save time in porting, or in Joels words,

“Since we don’t want to program in VBScript or PHP4 or even PHP5 and we certainly don’t want to have to port everything to three target platforms, the best solution for us is a custom language that compiles to our target platforms.”

avoid programming in an icky language is a poor choice. I’ve aluded to this kind of decision as “Technological Wanking” before.

Filed under: General Leave a comment
  • http://harriyott.com Simon

    Instead of just comparing Wasabi to another programming language, I would also compare it to a code generator, likeCodeSmith for example.

    Years ago I had an interview at a company called Synon, which had a product called Obsidian, which was cross platform, and they had written their own VB6-like forms designer which generated and compiled (from what I remember) Windows and AS400 versions from the same sources.

    There just aren’t that many options for cross-platform stuff. I’m not sure I like your idea of having two code-bases, each requiring a separate set of developers. Relegating the VBScript version is a better idea, but still requires hiring people, possibly the most expensive part of a company (especially FogCreek, where everyone gets their own car, apartment, free international travel, tropical vacation and solid chrome monitor stand).

    There is no right answer for the cross platform issue. It’s always going to be messy. It sounds like Joel has made the right decision for FogCreek, but this isn’t necessarily the best decision for everyone.