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...

Microsoft haven't replied to an open letter calling for the VB6 programming language to be open sourced by S Ten

Satya Nadella, Microsoft's CEO, hasn't replied to an open letter calling for VB6, the Visual Basic programming language, to be open sourced.

www.i-programmer.info/news/136-open-source/7454...

Will programming VB6 on Windows 9 be supported ? by S Ten

Will Windows 9 support Visual Basic 6.0 (VB6) programming ?
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 ?

The alternative is not another MS product by Picky Packer

My advise is not to use another MS product if you thinking of migrating VB code. Microsoft is stuck on an island going no where. The business environment is just too complex for their product offering.

Microsoft is a pit that just sucks money and brings more disippointments then it is worth.

My suggestion is if you do not like Java, then try adobe or any other open standard.

Re: The alternative is not another MS product by S Ten

Microsoft lost a lot more than they realized when they abandoned the VB6 programming language.
They lost the trust of their developers.
Not only Visual Basic 6 developers, but anyone considering any Microsoft software.
The one thing you can be sure of with Microsoft is that they will, sooner or later, let you down.

Visual Basic 6: The Looming Crisis??? by Jorge Eduardo

That all sounds pretty negative to me. I have been writing and selling Vb6 ActiveX controls for many years and they work just fine on Win7/Win8 so I disagree with most of your opinions. Microsoft did break ADO in 2011 and then broke many control packages with a Win7 IE10 update in 2012. Once we found a solution for those issues we were just fine. I have no doubt that we will still be working OK when Win9 arrives.

VB6 programming on Windows 10 by S Ten

VB6 programming is OK on the Windows 10 technical preview. Both the runtime and IDE are OK. It is only the technical preview, not the final release.

Re: VB6 programming on Windows 10 by Jean marie Armengaud

(translated from french with google translator)

Hello

VB6 walk sooooooo good! performance correct. VB is not abandoned at all, and indeed deserve an update.

UACPass software is solution

Re: VB6 programming on Windows 10 by Sandra Hathway

Will VB6 work on Win2012

VB6 supported until 'at least' 2024 by Sten Ten

VB6 programming for Windows 7: (over 398,000 views)
www.fortypoundhead.com/showcontent.asp?artid=20502

VB6 programming for Windows 8: (over 50,000 views)
www.fortypoundhead.com/showcontent.asp?artid=23916

VB6 programming for Windows 10 Technical Preview:
www.fortypoundhead.com/showcontent.asp?artid=23993

Vb6 needs to be updated by Debra Hall

I have a custom made software that cost me close to $60k. I have had this software for heaven knows the years. It set us back 2 years to pay for it since we were a small company of about 6 employees. I'm at 10 employees so it's not a growth issue, but a system issue I'm addressing.

Since our computers keep getting old and upgraded, we are now all into Windows 8 systems that have had the operating systems downgraded to 7 so we can run in XP mode for this custom software that was written in VB6. I have asked our vendor if we could get an idea of cost to upgrade this software (that runs perfectly by the way) to something that will keep up with the computers operating systems. Otherwise I'll be working in Windows 7 for till it's no longer supported! LOL

The comment I received from my vendor was...

1) Points (or software's name) is written in VB6 and that language is retired.
2) All of the integrated components such as reports and grids have also moved onto new versions of controls to work with the replacement languages for VB6. This means that very little of the actual code in Points will directly transfer to your new version of Points. In other words I will need to replace everything with functionality that mimics what you now have.
3) A quick scan of the market shows the replacement controls will cost a minimum of $8000. That is like going to the lumber yard and selecting pallets of lumber. There is not a one for one replacement so I would need to make sure what we created on Points was coded again in such a way that the functionality was maintained.

Now I know it is going to cost me some bucks, but if I'm going to have to invest in brand new software that is written but branded with the same old software name it seems I should maybe do some shopping. I'm a small business but I've years of information stored in the software that I don't want to lose. I just don't know enough technically to figure out if I am going to be taken to the cleaners on this project or not!

I am looking for questions that I can offer when we have our meeting next week that will make me appear like I'm more familiar with what they are suggesting than I obviously am. I just want to be able to get some options thrown out on the table so they don't think that they can snow plow over me with financial fear. I just can't spend that kind of money even with their offer of 'financing' over time.

Thank you............(Semi-retired Bookkeeper thrown into the IT responsibilities)

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

20 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