Return to the petition!

Classic VB Petition FAQ

What do you mean by "Classic VB"?
The term "Classic VB" has been adopted to mean those 32-bit versions of Visual Basic (VB5/VB6) and Visual Basic for Applications (VBA) that are in most common usage today.
What, exactly, are the MVPs demanding from Microsoft?
Nobody is "demanding" anything. Please read the petition carefully. The petition requests that Microsoft alter its strategy to one that should better benefit both Microsoft and its customers. Microsoft recognizes MVPs as being extremely in touch with its customers, and often solicits their feedback based on this very (accurate) assumption. In this case, the feedback being offered is a bit more public than at other times, as private channels have failed to alert Microsoft to the seriousness with which millions of customers view the current situation.
What prompts this petition to Microsoft now?
Microsoft has declared that "mainstream support" VB6 ends on March 31, 2005. From that date forward, millions (the number varies by source, but is widely agreed to most likely exceed six million) developers and application owners will find that their code assets are no longer supported by Microsoft. Future changes to operating systems, or other software shipped by Microsoft, may break today's functioning applications.
Microsoft says the only thing that's changed is you'll no longer get two free phone support incidents - what's the rest of the story?
The end of mainstream support simply provides chimes for the countdown clock towards final abandonment. Microsoft has chosen to focus on this single issue (specifically, loss of two free phone calls) as the one they want people to think is most cared about by petitioners, yet this attempt to obscure has failed miserably in assuaging the true concerns. Foremost to many is the dangerous precedent of Microsoft declaring their customers' data to be disposable. In this regard, Microsoft has been characterized as acting in an "unacceptable",  "morally indefensible", "unconscionable" manner that "should be illegal" by (at least) one of their most enthusiastic supporters! As you browse the petition, take particular notice of the wide array of support endeavors the signing MVPs have been recognized for. This should indicate the breadth of concern arising in the community as Microsoft intentionally orphans customer data. For nearly all involved, the question is whether the company that proclaims "Trustworthy Computing" as its mantra is worthy of trust itself?
Can't VB6 code simply be recompiled in VB.NET?
Sadly, no. The changes wrought to what Microsoft now calls Visual Basic really warranted a new name entirely, as the two languages are just that - two distinct languages. Microsoft provided a migration wizard intended to ease the transition from VB6 to VB.NET, true. There is near-universal agreement that using this tool to port code assets is an incomplete solution at best, in that leaves myriad "TODO:"'s scattered throughout the translated code. At worst, the migration wizard is an extremely poor choice in that, unlike a complete rewrite, it doesn't take full advantage of all that the new platform offers.
What's Microsoft's track record at moving data forward?
To the best of our knowledge, Microsoft has always "gone the extra mile" making sure its customer's data were fully transportable forward to, and generally backward from, new application software releases. Source code is, fundamentally, data. Businesses view their investments in source code as highly valuable assets, and most "business logic" is platform agnostic. Throughout the history of Microsoft BASIC (the product Microsoft was founded upon), from 1975 through 2001, code was forward compatible from one version to the next with very few notable exceptions. This all changed with the release of VB.NET, which broke every VB application ever written.
Why not leave functioning code in VB6, and write new code in VB.NET?
That's a fine solution for the problems it fits. Many developers can indeed let existing applications linger in VB6 forever (assuming future OS changes don't break them), and concentrate all their efforts on developing new VB.NET-based applications. For the great majority of VB developers, however, there is continuing need to revisit and revise legacy applications. While Microsoft may no longer want to support VB6, great numbers of VB6 developers still intend to support their customers with ongoing bug fixes and application enhancements.
Why not rewrite in VB.NET and be done with it?
Certainly, a lot of old code is thrown away and not re-used. Certainly, there are times when it is necessary and appropriate to rewrite because the old code is so patched as to be unusable as a base for further development, or because the application needs re-architecting to accommodate an increase in scale. The point though is that these occasions for rewriting are triggered by internal circumstances for individual applications. It is inappropriate that a rewrite be imposed from the outside by Microsoft, irrespective of the current quality of the source code, as the price for using the current version of development tools.
How does VBA fit into this picture?
VBA and VB6 are very much the same language, with only very minor differences (mainly in extensions) between them. Combined VB6/VBA solutions provide an extremely powerful synergy, as code modules are quite often freely exchangeable between the two environments, and VB6 can be used to author easily accessible-from-VBA libraries when source code protection or raw execution speed are priorities. 
VBA is still fully supported by Microsoft, both within its Office suite, and for the many hundreds of licensees that include it in their own products. But, no development has occurred on the VBA IDE in over eight years; the team has been abandoned. New versions of Office continue, at this point, to ship with this very old technology. No decisions on replacement of VBA have been forthcoming from Microsoft, and only the vaguest of assurances have been offered as to how long it will be the preferred Office automation solution. 
If VBA follows the same course as VB6, many large corporations will be forced to choose whether to continue upgrading their Office installations, or stick with the coded solutions that have made them the success they currently are. This is a huge problem for Microsoft, and one they must address meaningfully. 
What good would supporting Classic VB in the Visual Studio IDE do?
Adding support for Classic VB to the Visual Studio.NET integrated development environment would greatly benefit both Microsoft and its long-term customers. Microsoft would gain immediately by the simple gesture of reaching out to the millions of disaffected customers, and ultimately by offering the mechanism by which Classic VB customers may begin experimenting with VB.NET in an environment they'd quickly become familiar with as their new source editor. Rapid, widespread adoption of the .NET platform would have virtually been assured had Classic VB source bases been immediately usable. Bringing VB.COM to the current VS IDE could tip the balance away from the marginal adoption seen today. Developers would gain, obviously, by having their code assets once again fall under the support auspices of Microsoft. They would also have the opportunity to extend their applications more easily through interoperation with the new managed languages.
Why do you want my email address?
After signing the petition, an email is immediately sent to the address you provide. Your signature will not appear on the petition if you do not click the link contained in this email. This is simply an attempt to assure that the person signing can be tracked back to an email address for which they have control. Your email address will never be made available publicly, nor be shared with spammers of any sort, we assure you. We have had over a hundred confirmation emails returned as non-deliverable, most for one of several preventable reasons. Please do not use intentionally non-deliverable addresses, as we don't have the time/energy to de-spam them for you. Please be sure your spam filters have white-listed this domain (@classicvb.org) for delivery.

Myth Busting

The changes in VB.NET were necessary for compatibility with the platform. 
Most of the changes were because Microsoft thought it was improving the language. Of the changes that broke existing syntax, as opposed to adding new features, only one (the change from deterministic finalization to garbage collection) was presented with a convincing technical justification from Microsoft. Every other change amounted to language cleansing - cleaning up after decades of evolution to make the language better in the eyes of, well, mainly people who didn't use the language. In the end, some changes were justified as weakly as allowing users of other languages to make comfortable assumptions (such as the number of bits in integer datatypes) without having to read the documentation.
The petitioners are just a bunch of whiners lacking the skills to move forward.
With any group of humans, there will be natural variation that includes members who could be so characterized. As a generalization, however, claims such as this are nothing but baseless (is there any other kind?) elitism. Classic VB users recognize productivity when they find it, and find it they did - by the millions! Nothing is more productive than reusing functional, tested code in new applications. The goal of the petitioners is simply to maintain their proven investments in source code (data). 
VB6 still works; there's no reason in the world they can't just keep using it.
This is more subtle, but equally wrong. If VB6 is never updated, newer platforms will acquire progressively more features which are inaccessible to applications written in VB6. Eventually, VB6 will not be able to run on modern platforms. So the evil day of rewriting may be postponed for a while, but it cannot be put off for ever. Also there's no telling when an upgrade to Windows will break a third-party OCX or DLL. Most VB6 projects make use of at least one. It's also been demonstrated that even Microsoft can and does break Classic VB functionality, such as when it changed the method by which rounding occurred in an XP build of OLEAUT32. Without ongoing support, this sort of breakage is certainly inevitable and most likely irremediable. 
Platform changes are always accompanied by the need to rewrite applications.
The history of Microsoft BASIC puts the lie to this common myth. One of the very first MVPs, Mark Novisoft, had to change just two lines of code per module, when he moved his codebase from an Apple II running CPM to an IBM PC. Hardly what anyone might classify as a rewrite. This experience was repeated countless times over the following quarter-century. Core logic code was moved seamlessly from DOS to Windows, and again from 16-bit Windows 3.x to 32-bit versions of Windows. With these latter platform shifts, there were certainly disruptions, especially to user-interface design and response, but nothing of the magnitude accompanying the shift to the (so-called) .NET platform. To take a trivial example, there is no defensible reason why a QuickSort algorithm should need to be rewritten because you have a new compiler for a language targeting a new platform.  
Classic VB was/is all about COM, and moving from COM meant changing VB/A.
Classic VB was hosted on COM from VB4/32 onwards. Before that, it sat on a different architecture (with VBX add-ins), but had essentially the same syntax. VB1 was an extension of QuickBasic, but still maintained and extended the same overall syntax. There are VB6 applications around that contain business logic code that dates back to before Windows existed. This argument displays nothing but historical ignorance. 
There is a practical upgrade path.
It's best to draw a veil over the shortcomings of the migration wizard. In addition, you can't even copy-and-paste pure business logic code because of the syntax changes. Were rote migration tools even reliable, there is universal agreement that in order to take best advantage of what .NET offers, you really must rearchitect and rewrite any substantial application from the ground up. Classic VB code libraries have to be similarly rewritten.  
There is no faster form of development than being able to re-use existing working code!
This one isn't a myth, but those who speak against the petition goals sure seem to treat it as such.

###