I'm not the only one that's used "The first hit of heroin is always free," to describe Microsoft's decision to freely distribute the .NET runtime and SDK. Obviously I stole that quote from Scott McNealy of Sun.

But I'm beginning to wonder if this first hit isn't enough (as in, "we don't need more dope".). Until VB.NET, pretty much all your VB code, version one through six, would work in any version higher than the one you originally used. It was backwards compatibilty at its most extreme.

Additionally, even moreso than Apple with OS X (that bent over backwards including the "Classic" compatibility layer), Windows versions have always gone out of their way to keep that old app working. I can still run some of my favorite DOS apps on Windows 2000 (admittedly two games), and there's nothing stopping most, say, VB 4.0 apps from running on Windows XP.

I can't imagine Microsoft is going to break compatiblity with .NET 1.0 with a future release of the runtime.* I have to think anything that comes out of the .NET 1.0 SDK is going to work for years to come. .NET 2.0 might have a ton of bugfixes and 2.0 might very well cost some cash, but the cat's out of the bag. The price of entry into .NET programming is the price of Windows XP, and it's not getting any higher anytime soon.

With IDEs like SharpDevelop for C# (of course the site's down right now) and now the ASP.NET Web Matrix from Microsoft as a free, floppy-sized download for ASP.NET (VB.NET or C#), there's no reason anyone who has paid their entrance fee to Windows not to start learning some .NET.

* Quite naturally, I could be wrong. Just doesn't seem like they would.