Future of Legacy apps vb6 and vfp9

Hello Experts,
Our customers have most of their apps developed in actual technologies, no problem there;
but we also know most of them still use legacy apps developed in the early 90s with vb6 and vfp9,

Now today almost all of our customers with these apps are reluctant to invest in migrating those legacy apps simply because they are very much customized for engineering and specific specialized tasks. The investment would be high as it was originally or maybe more.And those apps still work just fine and still they can virtualize the machine so they really are not moving.

Our company is today in charge of further developments and maintaining as much as possible legacy apps with these companies. We are trying to prevent and see today how far in the future these legacy apps will go....
We fear its not even enough to migrate. Maybe we are already too late.

So our proposal to our customers will be something like maintain what can be maintained for at least another decade and migrate what will stop no matter what in the next few years. but in all cases prevent a situation that can be hurtful business wise.

Here is my question, how far in the future will these vb6 and vfp9 legacy apps go ?
Since they are not the core system but yes they do perform specific important tasks can we keep them like that with some sort of environment ? and if so what environment would that be?

Best regards,
RGuillermoProject ManagerAsked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

RGuillermoProject ManagerAuthor Commented:
Can we talk about a slow, low cost migration with enough time ? please ?
Too many things to do and I believe these legacy apps can become a big problem if not facing the issue now.,
JohnBusiness Consultant (Owner)Commented:
There are many VB6 apps that will not (and will never) work in Windows 8 or Windows 10. Windows 7 is past its best before date.

So you should make plans to move ahead as the technology world will not wait for you.
JohnBusiness Consultant (Owner)Commented:
To keep these old technologies alive until 2025 (a decade past now) means have virtual machine technology and having out of support virtual machines to run the older software.
Big Business Goals? Which KPIs Will Help You

The most successful MSPs rely on metrics – known as key performance indicators (KPIs) – for making informed decisions that help their businesses thrive, rather than just survive. This eBook provides an overview of the most important KPIs used by top MSPs.

Dave BaldwinFixer of ProblemsCommented:
The only way to keep old apps working is to keep old machines working.  But when the old machines break down, you will likely be unable to repair them because the parts will no longer be available.  Unless you plan on keeping backup copies of all the needed machines.
Martin LissOlder than dirtCommented:
As a MVP in VB6 it pains me to say this but Microsoft support for VB6 ended in April 2008, and while the runtime is still supported, who knows what will happen in the future so you really need to bite the bullet and rewrite the apps for .Net. Note that I said rewrite and not convert because while I haven't done it, many people say converting VB6 apps yields poor results in terms of both efficiency and maintainability of the app.
Jacques Bourgeois (James Burger)PresidentCommented:
Do your customers still use cassette tape players and 8 tracks? When they need to send information to a co-worker, they put it on a floppy and pass it around? These are things we did when VB6 came around. And it has not evolved. The many service packs simply patched it to make it work with newer operating systems. And the last one was 7 year ago if I am not mistaken. That is a very long time in computing.

Explain to them that computing evolves faster than sound systems, and that if they wait until the applications do not work anymore. One day, they will have to move to newer computers to run a new piece of software that they absolutely need to stay in business. The old application will then stop working from one day to the next.

I know of at least 1 company that had to close because they waited too long, ended up stuck in such a situation, and lost the market they had to their competitors while they were trying to cope with an important VB6 application that went on hiccups for too long when they had to move to Windows 7 (not even 8) because their main customer insisted that they run an application that did not run on XP.

Try running their old applications on Windows 8. 30% chances they will have problems. Move that up to 60% if they use third party components, and even more if they switch to 64-bits. They are lucky if it does work. And you cannot stretch luck indefinitely. With Windows 10 coming out soon. What do you think will happen? Let them try to replace one of their suddenly broken computer with a new one that does not run Windows 10 one year from now.

Do they still use some of these computers with 1 Mb of memory 2 floppies to ease copying. These were all over the place when VB6 came out. This is what the computers they have today will look like in 10 years from now... still in there because they are the only ones able to run that application that they did not started to move to .NET today.

Or they will hire somebody to make a new version in a rush. And everybody knows that programs made in a rush always lead to design that is not optimal, bugs and maintenance nightmare. They will be in such a rush that they will probably do what Martin tells you should not be done, convert instead of rewrite, thinking that it will be faster, which isn't.

I have trained hundreds of VB6 programmers in their switch VB.NET in the last 15 year or so. So I have met countless programmers who tried converting. I am talking about professional applications here, real ones, not bowling league scores recordings. Without exception, they all ended up with a mess, scrapped the conversion and finally needed a rewrite. A lot of time lost there... with the application able to run only on old computers that break one after another. The architecture of .NET applications, error handling, way of working with databases is so different that no converter can do the job. Translating a command into another one is easy. Translating a design into another is almost impossible.

On a rewrite, you often have to completely scrap the old architecture and restart from scratch, because it won't be optimal in .NET. A rewrite is not something you start working on the day you are starting to have problems. A rewrite takes time, specially if you want to do a good job. And it is better to be good, because at the pace your customers work, they will be stuck with it for the next 20 years.

As I told you, I heard of and lived indirectly many conversions projects. There is only one I know of that was successfull along the slow, low cost migration with enough time line. This was already built in VB6 with a .exe that did almost nothing except provide the interfaces. Most of the job was made in a dozen of different dlls. They where believing in code reuse and thus made most of their stuff that way. When came the time to move to .NET, they first redid the .exe, which was very fast. And they kept using the old dlls in the background. This is quite easy to do, specially if the dlls were well conceived. They moved everything to .NET as the needs arose, over 7 or 8 years, and were very successfull.

They were able to do it slowly because their system was built around a number of individual .exes and dlls. Unfortunately, very few VB6 projects were built that way. Most of them ended up as big monolithic .exes. These cannot be converted at low cost, because they have to be rewritten from scratch.

And that was in a time were VB6 was supported, and on operating systems that were made for both VB6 and VB.NET. So their dlls still worked during those times. I am not sure that they would be able to repeat the same thing nowadays. What if some of their dlls do not work on Windows 8?

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
David Johnson, CD, MVPOwnerCommented:
Times change one has to adapt and overcome. I used to run a very  bulletin board system based on PCboard software and used Desqview or OS/2 and had 50 USRobotics 56K modems (modems were my largest capital cost) , was a Fidonet hub where my largest operating cost was long distance charges. I can still remember paying $1,200 for a 1GB hard drive, had several CD changers (CD's were my most affordable near-online storage)  (CD authoring software or writers were extremely expensive). Total available storage was aprox 20GB both online and near-online storage.

I've owned parallel printers i.e. daisy-wheel, dot-matrix, line-printers... All of this technology is obsolete and could me made to work in some fashion.
Clarke Development Systems is out of business they sort of died off when making PCB 15.0

At one time COBOL was the programming language of most business software with a smattering of PL/1 and Fortran.  These languages are no longer being taught. Yet at one time they were the mainstay of business and scientific operations.

As a computer store owner I found out that inventory was a major problem.. Technology evolves so quickly that something 1 purchased for X dollars depreciated very quickly.  If something didn't sell within 6 months I'd have to sell it off at a loss (not even able to get a pittance of my cost)

The in-house software that still works has to evolve into the new world. They've got their moneys worth out of it.  Software development cost are fully depreciated within one year. Does one still keep a 20 year old truck fleet on the road or does one buy new trucks on an ongoing basis?  Maintenance and operating costs of old machinery can outweigh the cost of new machinery.
RGuillermoProject ManagerAuthor Commented:
Message is clear and unanimous, MIGRATE NOW REWRITING FROM SCRATCH !!
I thank you very much for all your remarks!!
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Visual Basic Classic

From novice to tech pro — start learning today.