Microsoft promised to support VB6 long after the release of .NET, but their actions are telling a different story.

Microsoft's policy for supporting versions of their software has historically been current version minus 2. That policy was supposed to be relaxed and extended when Microsoft released the .NET Framework and Visual Studio .NET, because they represented such a radical break from the COM roots of the Visual Studio 6 (more specifically VB6) world. Shortly after the official release of .NET, Ari Bixhorn, the Product Manager for Visual Basic .NET, stated that Microsoft planned to provide high level support for VB6 through 2005, and limited support through 2008 [1].

Strangely enough, I recently got an email that contained a list of MCP exams that were slated for retirement in 2004. Lo and behold, both of the Visual Basic 6 exams are on it [2]. Although it appears that Microsoft will not require candidates to take any additional exams to retain certification, I am disturbed by the timing of this move. I think that it sends the wrong signal to companies and developers who are still deeply invested in VB6.

A certification exam should be retired when its subject matter is on a solid trajectory toward obsolescence. A good example of an obsolete development tool is VB5. When building COM solutions with the Visual Basic language, it makes little sense to use VB5 instead of VB6 (even though I still have one client that is hanging onto it). Therefore, it makes sense for the VB5 exam to be retired. Even though .NET is new and powerful and cool, it is so different from the previous version of VB that upgrading to the new IDE is not the logical choice for every application project.

There are literally billions of lines of VB6 code that will never be converted to .NET, and that's ok. Somebody has to maintain it, fix it, and enhance it, though. Anybody that has used both VB6 and VB .NET will tell you that they are almost completely different. Therefore, a VB .NET certification does not stand for expertise in VB6 development. Both certifications have their place in the current state of software development.

Many people forget that VB6 still has a lot of life left in it in alternative forms as well. For instance, Microsoft Office still uses the VBA engine (which is based on VB6). Eventually, Microsoft Office will support both regular VBA and .NET code, but that day has not arrived yet. There are also millions of Web sites built around Active Server Pages (ASP), using VBScript, another variant (no pun intended) of VB6. These are two more reasons why the VB6 certifications should have been left alone.

Microsoft has stated that they will support VB6 for many years to come, but their actions speak differently, and that worries me. If my guess is right, the move to retire the VB6 exams was an attempt by Microsoft to push their customer base forward into .NET development a little faster than it would have occurred if they left things to happen naturally. I can appreciate their desire to keep their customers current, but there is still a tremendous need for VB6 developers, so the VB6 certification exams should not be retired.

If you need another reason, think about the crisis surrounding the shortage of COBOL developers a few years ago, when the Year 2000 bug was knocking on our doors. What do you think will happen if new developers stop pursuing COM-based VB6 development (and the associated certifications)? VB6 developers should eventually reduce in numbers, but the time hasn't come for that yet.

As a final parting shot, I'm also a little miffed that Microsoft continues to completely ignore the opinions of its base of MCPs and MCSDs (of which I am both). We weren't polled or consulted in any way about the decision to retire the VB6 exams. The decision was unilateral and wrong. Perhaps if Microsoft had asked for our feedback, they could have avoided making such a big mistake in the first place. I can only hope that they are willing to take the necessary steps to correct the problem. I'm not holding my breath, though. My name is Jonthan Goodyear, and I am the angryCoder.