A prank during TechEd caused many to believe that Visual Basic 6 would be open sourced. While it turned out to be false, it did start a lot of conversations about the language, its legacy, and an open source implementation would mean.
Visual Basic undergoes significant breaking changes in every third version. The first major change was the transition from 16-bit to 32-bit programming in Version 4. While not much of a problem for “pure” applications, most Visual Basic programmers heavily relied on third party libraries and components. In cases where the 16-bit DLLs and VBX components didn’t have corresponding 32-bit DLLs and OCX components a major rewrite could be required.
The next major shift occurred in Visual Basic 7, also known as VB.NET. This replaced the natively compiled code and runtime libraries with .NET’s IL code and Common Language Runtime. In the process some core functionality was broken, the most notably being the resource model. Visual Basic 4 thru 6 used COM’s reference counting design, which requires setting a variable to null to free resources. Translating this to .NET’s non-deterministic garbage collection is not an easy task, especially with working with limited resources such as file handles.
The ramifications of this are still plaguing companies and developers. In the 90’s Visual Basic was by far the most popular language for writing internally used business applications. Faced with the prospect of more or less rewriting their applications from scratch, many developers gave up entirely on VB and switched to Java or C#.
The most recent change to Visual Basic comes with VB 10 SP 1. This removes practically all of the legacy features inherited from VB 6 such as unstructured error handling. This was done specifically to support Windows Phone 7 and other specialized platforms where you would be writing new code anyways.
Why Visual Basic 6 Matters
Companies like Citect (http://www.citect.com) and users thereof might. There's plenty of legacy stuff out there still being actively maintained that has VB6 in it. Maybe VB6 can now go 64 bit?
-- syousef
If they actually do this, VB6 will still be a popular language when we're all dead. I'm completely serious -- it's the next COBOL.
Whether that's a good thing or a bad thing, I don't know.
-- anonymous
There's a scary amount of legacy code in VB. When I was interviewing for a job recently (PS: anybody hiring coders in the DelMarVA area?), the interviewer was asking about some porting work I had done. There were a whole pile of VB projects in use, only one or two of which the budgeters could justify examining---and that only meant re-working them in VB.net, so that they could be extended in the future without needing a legacy development environment.
VB already *is* the next COBOL.
-- orangesquid
The hospital I work (and pretty much every hospital in the country) is dropping millions on a certain healthcare EMR system that is based on VB6.
-- anonymous
Seeing as half the world's business are still built on VB6 then yes, it'd have been a good thing, because it'd mean there was finally hope in creating something that'd pull them away from that unstable, poorly scalable [expletive] of a technology.
-- Xest
I spent the last ten years working supporting a VB6 project. I wrote the C++ code that it ran on top of. The non-CS engineers who wrote the VB stuff fought tooth and nail to keep that software going. At the time I left the job, they were trying to get it to work on 64-bit Windows so they wouldn't have to upgrade it. The scariest part is, this was a real-time test system.
If I were still there (and is this release had been true), I'm certain they'd be asking me to compile this source code into 64-bit.
-- anonymous
Oh and additionally, there are lots of companies still using VB6 as their main code source for enterprise sized applications. I work at one such company and we run a multi-million dollar business on VB6 desktop codebase. No the web versions are all .NET and services accessed by both versions are .NET based.
I see many jobs still with VB6 as a required skillset as well as some dedicated positions utilizing it. So I wouldnt say VB6 is anywhere near death... yet.
-- RobDog888
This is true also in Italy. Most of these companies are now switching to Delphi but I'm sure that they would love to keep using unmanaged VB if a software house whatsoever took care of upgrading it.
-- esposito
These quotes are from Slashdot and VBWire.
Where Visual Basic 6 Currently Stands
Visual Basic 6 still doesn’t have a 64-bit version available to the general public and, according to the March 2010 service bulletin, it never will. That isn’t to say it is impossible, there is a 64-bit version of Visual Basic for Applications included in the Microsoft Office product line; it merely means Microsoft has no intention of dedicating resources to it.
More distressing to some is Microsoft’s intention to stop shipping the VB 6 runtime after Windows Server 2008/Windows 7. While Visual Basic 6 originally required the installer to include the runtime, these essential DLLs have been shipped with ever version of Windows for the last decade. Going back to the old model will require rewriting the installer packages currently in use.