Jeff Atwood talks about the current browser war and just how bad the situation was between the release of IE 6 and IE 7 — five whole years, and from a web development standpoint IE 7 appears to be scarcely an improvement. Sad.
It wasn't always like that. IE 4 was an amazing browser when it came out and led to Microsoft's winning of the first browser wars. There was another innovation that got perfected in IE 4 that made it one of the “must install” applications on any IIS web server.
Microsoft have been wedded to BASIC ever since their first product. This meant that they wanted to be using BASIC as the language to program the browser (they were calling it Visual Basic then of course). Netscape had just given birth to LiveScript which was recovering from the trauma of an early renaming to JavaScript (a great marketing move though). Microsoft had to support Netscape's baby, but they really wanted everybody to use VBScript, as the scripting version of Basic became known.
The solution they hit was to have a single language back end that could handle both languages at the front end. You could mix (and I guess probably still can) VBScript and JavaScript on the same page. Both languages had access to the same browser API, and even more impressively, you could write a JavaScript function that used a VBScript object that in turn used a JavaScript object. Cool.
This meant that when IE 4 was married to IIS 3 with ASP 2.0 I could throw away all of the work I'd been doing building dynamic web sites using the Compuserve web server and start to use the new-fangled ASP scripting technology* [*Even in '97 I could see that VBScript wasn't going to win any style prizes so I never found the need to Wasabi myself to ridicule.].
It's good that Sun have finally started to realise that Java is a platform on which you should be able to run software written in all sorts of languages. It's another data point that shows the entirely healthy separation of language design from run time design. With all this talk of DSLs, PyPy and any number of other cool metaobject protocol inspired language developments it might be too easy to forget that Microsoft had already perfected their first common language runtime in IE 4.
If you're developing in a language that locks you in to doing everything through that one run time then worry because the future is language interoperability and C APIs or command line pipes just aren't good enough any more.