Years ago, when Microsoft first started thinking about their new .Net family of languages, they decided - for their own reasons - that VB needed a bit of work. Not exactly a nip and tuck, you understand, more a sort of a neck-down transplant. So VB.Net was born : a language almost entirely incompatible with its "predecessor", Visual Basic 6. This aggrieved the VB community more than a little : Microsoft had broken significant bits of the language once before, with VB4, and taken some stick for it - MVPs were invited to Redmond early in VB.Net development and there was, as diplomats say, a full and frank exchange of views. Pithy, anglo-saxon monosyllabic views in some cases. And the VB.Net developers nodded, listened thoughtfully, went away and did just exactly what they were going to do before the meetings anyway.
Let's get one thing straight : the whole VB problem isn't about the quality or otherwise of VB.Net. I'm sure that it, in it's own way, is a fine piece of work. That's completely irrelevant, something which a number of people offering their opinions on the net have failed to grasp. The problem is the sheer volume of difference between VB6 and VB.Net, and the lack of any real portability between the two. Microsoft have, at a stroke and entirely for their own selfish reasons, effectively obsoleted one of the most popular programming languages in the world, and simultaneously orphaned billions of lines of perfectly functional code. That code represents a huge investment, and the only way forward for that code as far as Microsoft is concerned, is a rewrite.
Yeah.That's gonna happen.
But why should you care about VB - you don't use it, right?
Well, the reason you should care about the right royal mess that is the current state of VB, is that it is symptomatic of a much deeper and more serious malaise at the heart of Microsoft itself. It's the "OK to break stuff" attitude which is now pervasive at Redmond. Once upon a time, Microsoft could be relied upon to be pragmatic. It might produce stuff that was less than stellar, but it always worked, it got the job done and it didn't break legacy. That "old" Microsoft understood business computing in a way that other companies just didn't.
But that Microsoft is dead and buried. Now they don't care if they break your code.. and if they're prepared to break billions of lines of code in their most popular language, what makes you think they wouldn't break your code ? They can't touch the language standards that they don't own, but they own the API, and if they were prepared to piss off all those VB programmers, what makes you think they wouldn't break your code in any way they feel fit, if it suits their strategy?
If you think I'm being excessively curmudgeonly, here is Joel Spolsky's take on the same subject, written before NT6 shipped.