BT

Visual Basic 6: The Looming Crisis

by Jonathan Allen on Apr 02, 2014 |

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.

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

VB6 needs to be updated by Sten Ten

As the article says, Visual Basic applications are still widespread. Microsoft have partly addressed this with their "It just works" support (until 2023). But VB6 needs to be updated to fully support these applications.
Vote for a new VB6 on the Microsoft VisualStudio UserVoice site.
visualstudio.uservoice.com/forums/121579-visual...

Moving from VB6 to .NET by Jeff Jones

Whether you move VB6 code to VB.NET (preferable, IMHO) or C#, one avenue of migration is to write new code in .NET (I'll use that name so you can decide which language) and use COM Interop to use the new DLLs in existing VB6 code.

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 by Arturo Hernandez

There are providers of automatic migration tools that can do the job. I know of one that will tell you, not any one migration is the same. They do have to customize the migration. But you get a better result. IT managers are the ones that have to bite the bullet, and there is a risk factor that may be holding them back. Although the risk of not moving gets bigger over time.

www.semanticdesigns.com/

Who pays ? by Sten Ten

As the author says "It is incredibly expensive to rewrite decades old applications..."
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.

visualstudio.uservoice.com/forums/121579-visual...

VB6 needs to be updated, no one makes the transition to VB .NET by C. Picard

We must be serious, no one makes the transition to VB .NET! The "transition" to VB .NET is basically a poetry, and a bad one !

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 by Shai Vashdi

I completely agree with the article's assertion that applications written in VB6 that rely on old Windows API, such as found in XP, are a major reason for businesses not to upgrade the OS. However, my experience as CTO in a services company (www.galilcs.com) tells me that the fear of migration is mostly unjustified. Upgrading VB6 applications to modern .NET (C# or VB.NET) using automatic tools is very easy and accurate. We have already executed many code modernization projects of this kind, including from VB6 to HTML5. It is unfortunate that many IT departments will just wait for a crisis and only then rush in to have their application reworked. The migration is neither as complicated nor as expensive a task as people fear.

Shai Vashdi, your comment is a masked advertising for your company by C. Picard

@Shai Vashdi

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... by Shai Vashdi

I can only reiterate what I said. We understand that some people are avid supporters of VB6, and so are some of our developers. However, the fact is that Microsoft stated that it will only support the Runtime. There will be no support for third party controls, no support for 64-bit environment, and an application that relies on the Windows API may encounter difficulties. Our customers came to us, because they encountered difficulties. Our own experience is that migration can solve those difficulties. If somebody wants to resolve their problems by rewriting their VB6 code – let them do so!

Re: or not ! :) by C. Picard

I can only reiterate what I said too ! We are not moving from the smartest programming language in the world (VB6) to a mediocre one.

Today VB6 exceeds C++.

VB6 now Microsoft's most popular programming language by S Ten

The VB6 programming language has risen to fifth in the May 2014 Tiobe index, replacing C# as the leading Microsoft language.

visualstudio.uservoice.com/forums/121579-visual...

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

10 Discuss

Educational Content

General Feedback
Bugs
Advertising
Editorial
InfoQ.com and all content copyright © 2006-2014 C4Media Inc. InfoQ.com hosted at Contegix, the best ISP we've ever worked with.
Privacy policy
BT