Coding Horror

programming and human factors

I want my WSH.NET!

Speaking of ghetto languages, when exactly is the Windows Script Host going to be updated with a modern language-- like, say, .NET? I want my WSH.NET!

I still use WSH to write quick and dirty command line utilities that don't justify a full blown .NET console executable. Like UNIX shell scripts, there's a lot of power there for relatively little effort. And I don't have to fire up the VS.NET 2003 IDE to do it, either. Unfortunately, VBScript-- the shared script language of classic ASP and the Windows Scripting Host-- is rapidly being left behind in an increasingly .NET-centric world. The worst thing is, it's just similar enough to fool you into trying some VB.NET syntax, even though you know better.

It seems like a relatively simple exercise to build WSH.NET, and in fact, several third parties offer stopgaps that deliver script-alike execution of .NET code in plaintext files:

However, this isn't the same as a Microsoft blessing. These little tools are all incompatible with each other, require an explicit installation step, and have quirks of their own. I have no idea why Microsoft hasn't stepped up to the plate with a proper WSH.NET implementation. I did find this cryptic post dated late 2001 by Andrew Clinick of Microsoft:

WSH 5.x will remain with us for a long time to come (not least because it's built into the operating system) We are working on plans for WSH.NET but don't have concrete info we can share at present.

To answer the question a bit more does .NET make WSH obsolete? No. It would be great to use VB .NET and JScript .NET in WSH and that's something we're working on but in the mean time having to compile exe's etc is more difficult than just writing a script and running it. We're working on making that much simpler in WSH.NET

Whatever those "plans" were, 3 years later, we're still waiting.

Written by Jeff Atwood

Indoor enthusiast. Co-founder of Stack Overflow and Discourse. Disclaimer: I have no idea what I'm talking about. Find me here: