Visual Basic 6: The Looming Crisis
One of the major factors that is preventing older enterprises from leaving Windows XP is the prevalence of mission critical applications written in Visual Basic 6. Updating a VB 6 application to run on Windows 7 can be a daunting challenge, especially if it relies on obscure COM or control libraries. Compounding the problem is UAC or User Account Control, a necessary but much hated security measure that many large organizations require be turned on.
In the past, users of Windows 7 could install a feature called XP Mode. This would enable an XP virtual machine specifically for running older software. But when the support for Windows XP ends on April 8, so does the support for XP Mode. Microsoft writes,
After April 8, 2014, technical support for Windows XP and Windows XP Mode will no longer be available, including updates that help protect your PC. This means that if you continue to use Windows XP or use Windows XP Mode on a Windows 7 PC after support ends, your PC might become more vulnerable to security risks and viruses. Therefore, to keep your Windows 7 PC secure after April 8, 2014, we recommend that you only use Windows XP Mode if your PC is disconnected from the Internet. Learn more about Windows XP end of support.
If that’s not enough, many Visual Basic 6 applications are still under active development. Dice reports 176 open positions for VB 6 developers and Monster has 312. While that shows there is need out there, those numbers are not high enough to encourage new developers to learn the aging language.
And even if they wanted to, there are a couple serious barriers to entry. For one, Visual Basic 6 is only available via a MSDN subscription. So it is unlikely that a typical junior or even mid-level developer will even have access to it. On top of that the Visual Basic 6 IDE is designed to run on Windows 95/98. Officially the IDE is supported in Windows 7, but in practice we have found that it often doesn’t work correctly for non-trivial applications. Again, the culprit seems to be third-party COM and control libraries.
So what are companies to do? It is incredibly expensive to rewrite decades old applications even under ideal circumstances. And even if you can find enough talented developers to pull it off, your staff will still need to be retrained on the new software.
VB6 needs to be updated
Vote for a new VB6 on the Microsoft VisualStudio UserVoice site.
Moving from VB6 to .NET
I have written both COM DLLs and COM "OCXs" in pure C# (VB.NET works fine, maybe even better) and used them with no problems in VB6 code.
If you take that approach, you can, over time, refactor the VB6 code to .NET code, taking advantage of splitting up business layer, UI layer (as in Windows apps, Windows Phones apps, ASP.NET apps, or even iOS and Android apps using Xamarin in VS 2013).
For me, it is not theoretical. I've done it for years, and it works great.
Automatic migration is an option
Who pays ?
And it can be very difficult to get a budget to replace an application that works just fine.
With Microsoft "It just works" support until 2023 (and due to be extended) and the fact that a 1998 VB6 application will run unchanged on Windows 7 and 8.x there seems little reason to migrate. In fact VB6 applications should continue to run as long as Windows continues to use the Windows API.
But having said that, it would be nice to have an updated VB6 incorporating the 64 bit features added to VBA7.
VB6 needs to be updated, no one makes the transition to VB .NET
Over time the community of VB6 programmers have developed new third party components, keeping this programming language to modern standards (WP). Some of the points that we must consider for a NEW Visual Basic 6.0 are:
1) The new version of VB6 must be cross platform
2) Old VB6 projects must work on the new version (this is crucial)
3) The new version must have the same speed as VB6 has (this is crucial)
4) The compiled executables made by the new version should not be dependent on any external files
5) No syntax change, only additions (this is crucial)
VB6 brought in 2014 so far, ~ 1000 VB6 open source projects on PSC! (more than the last year - in 2013 there were ~2500 open source projects on PSC)
Automatic migration can be easy
Shai Vashdi, your comment is a masked advertising for your company
VB6 is the smartest programming language. Your comment is a masked advertising for your company's software products! LIKE: "Why should I transpose my code from VB6 to .NET?". That PDF explaining "why", it is extremely childish and wrong with each sentence! VB6 works on Win8 and will work on Win9 and Win10, because VB6 it is supported by 2023!
The migration is highly justified! You talk about fear of migration?!, what fear ?! I'm not moving from the smartest programming language in the world (VB6) to a mediocre one. Today VB6 exceeds C++.
To migrate or not...
Re: or not ! :)
Today VB6 exceeds C++.
VB6 now Microsoft's most popular programming language
Microsoft haven't replied to an open letter calling for the VB6 programming language to be open sourced
Will programming VB6 on Windows 9 be supported ?
Will the VB6 runtime be included ?
Will the VB6 IDE run ?
Are Microsoft going to tell us, or will they ignore the question until Windows 9 is launched and we find out VB6 is still fine ?