Avoid VBScript for Web Apps

Earlier this week I spent some time troubleshooting a browser-based application that a client is using. The problem cropped up on a PC with a clean install of Windows XP SP3 after assorted system corruption that wasn’t worth the time to repair.

The application in question uses an ActiveX table control to display data provided as XML embedded in the body of the web page, and has assorted other components that need to be installed on the PC for it to work. After getting past the basic issues (the regular user of the PC isn’t a local administrator, so no ActiveX installs allowed), we had the page loading, the table control displaying, and no contents.

After removing, reinstalling and verifying the registration of the control and the supporting libraries, both I and the vendor’s support staff were stumped (and it got kicked around their offices for a day or so). I had glanced at the HTML enough to confirm that the data to be displayed was in fact present and we knew it wasn’t an account issue on their side since the same web-app login worked correctly from other systems, so it was something specific about that newly-built system.

After a bit more poking around on my own in the HTML to see what was happening, it occurred to me that the very first thing in the block of VBScript was the command to link the table control to the XML-formatted data in the page. Since that wasn’t executing, I figured that perhaps the VBScript support on the system was out of date. I remembered seeing an update for that a few years earlier (Windows Script 5.6 for 2000/XP, 2007 and Windows Script 5.7 for XP, 2007), and applying that did the trick.

I’m not sure whether it was a question of the scripting support being outdated or simply not being present at all in a new install. In theory 5.7 was supposed to be a part of SP3 and 5.8 is in Windows 7 and Server 2008 R2, but since it’s not based on .NET it’s clearly not the direction that Microsoft is headed – it’s legacy code. Since the .NET-based PowerShell is available for all current Microsoft operating systems, I’d expect that at some point in the not too distant future the older Windows Script Host is going to fall by the wayside. If you’re developing for the long term, I’d try to avoid falling with it.

Note: Of course, this all ignores the fact that VBScript and .NET-based browser development will only run in Internet Explorer. If you’d like to have your application run in multiple browsers or be usable on Macs and Linux (and eventually on mobile devices like the iPhone, Android and probably even Windows Mobile), you should be working with JavaScript and some of the frameworks for it. ActiveX controls and IE-only scripting languages may add unnecessary constraints to your market.