Is Windows 8 the End of VB6 Support?

I was a Visual Basic developer for many years.  Despite the perception that VB 6 made crappy apps, I know of many successful commercial apps that were written in VB6 and, what matters more, is that those apps are still in service.  Despite Microsoft dropping support for VB6 years ago developers were able to limp along and get their apps working in Vista and Windows 7 with few headaches.

Does this change with Windows 8?  I don’t know, but I’m already seeing an uptick in developers that are looking to convert from Visual Basic 6 to Real Studio.  Uncertainty is a bad thing and even the full-time Windows developers I know don’t seem to know what’s going on.  Some of them are even worried that .NET and Silverlight support is up in the air.

The only thing that’s been mentioned for Win8 is JavaScript and HTML5.  No mention of .NET, Silverlight, or even Win32.  It’s very uncharacteristic of Microsoft to be so secretive and up-in-the-air over a future product.  Are they trying to be more Apple-like?  Perhaps that’s why people are freaking out.

Do I think MS is going to drop support for .NET, Silverlight, or even Win32?  Not a chance.  They have way too much invested in each of those to abandon them.  From a corporate standpoint there would be a revolt since almost everyone has invested, heavily, in one or more of those technologies/platforms.

But are Visual Basic 6 apps still safe?  That is a very good question and from the research I’ve done it appears that the VB6 runtime will not be shipped with Win8 though some in the community suspect that a hack will be found before release.  Other comments I’ve seen indicate that Win8 will ship as only 64 bit.  The VB6 runtime is 32bit only so that will mean running in compatibility mode which adds to the possibility of it not working properly for all applications.

Microsoft, at some point, has to kill compatibility.  Visual Basic is an old development environment that doesn’t take advantage of many new technologies.  It’s also not a very good object oriented language – it just wasn’t designed to be that way.  If the MS dev tools of the future are Silverlight, .NET, and JavaScript/HTML5 (does anyone really believe that!?), then it sure seems that VB6 might be on its way out.

So while VB6 apps might work with Win8 using hacks and compatibility mode, I believe developers have every right to be worried.  They’ve invested heavily in VB6 tools and controls and now the (long) honeymoon is over and it’s time to look at alternatives.

If you are only interested in Microsoft then the options are easy with .NET or Silverlight (assuming they aren’t going away).  If you’re thinking of a Mac or Linux version than the options are limited.  You could do Java, but as a long-time Mac user I’m not a big Java fan and try to avoid them because their UI generally isn’t native (I’m a Mac snob, but then most of us are).  Qt is a possibility but it’s not a RAD option either.

I am a little biased but I think Real Studio is a good choice for those coming from Visual Basic.  They are very much alike in how they work though REALbasic is MUCH better at object oriented programming than VB ever was.  It’s newer and is on a regular update schedule.  And, with just a little work, you can easily make apps for Mac, Windows, and Linux that look the same on all three platforms.  And now that Real Studio can make Web Apps there’s a fourth platform that you could potential support (though making a web app involves different controls, editors, etc so it’s not as easy as clicking a checkbox).

Is it a quick and easy conversion?  No.  Don’t trust any conversion program and, from experience, any converter will be just as time consuming (if not slightly worse) as rewriting from scratch.  We’ve found that taking a look at the UI and making it a bit more object oriented to take advantage of the strengths of REALbasic is always worth the investment.  We like to say you’re writing the apps for the next ten years and not only for right now.  So doing the extra work now will pay off for years.

Is Real Studio perfect?  Absolutely not.  It currently is not 64 bit compatible either though I know of many developers that have no issues with running in Windows 7 64 bit.  I do know that 64 bit compatibility is the next big upgrade for Windows after Real Software finishes up on Cocoa builds for the Macintosh side.  If memory serves they are on track for late 2011 64 bit compatibility (though that’s always subject to change).

With Win8 on schedule to be released next year (does anyone really believe that either?), you might need to be proactive and start thinking about the alternatives now.  Waiting until Win8 is released might be too late for your product.  Do you really want to be under the gun from management to get something that works on the CEO’s new shiny Win8 laptop?

If you would like to get a rough estimate on cost to convert from VB6 to Real Studio, we (BKeeney Software) have a VB6 Analyzer Tool for you to download (written in RB of course) that analyzes your project and gives us some metrics on lines of code, controls used, numbers of classes, etc, that help us give you an estimate.  More information can be found at http://www.bkeeney.com/consulting/vb2rbconversion.

27 thoughts on “Is Windows 8 the End of VB6 Support?

  1. Thanks, I’ve updated the links.

    Am I being alarmist? I don’t know – I hope so. If MS kills VB6 compatibility there will be a lot of developers that are screwed. I’m just reporting info that I’ve read in various places and after talking with a Windows developer or two.

    Google “Visual Basic 6 and Windows 8” and you’ll see of the thoughts that I incorporated into my post.

    Truth is, I *AM* seeing more RFQ’s for Visual Basic to Real Studio conversions. More than I have in several years.

  2. While the open-ended questions and secretiveness from Microsoft is disconcerting, how alarmed you should be also depends on how your apps are delivered. If you have a lot of in-house, company VB6 legacy code, then you may have more control over the situation than developers that sell apps to general public. With in-house code it is easier to make the argument to your boss or CEO that moving your hardware to Windows 8 is going to cost the company XX dollars because of VB6 legacy apps, and you may be able to buy some more time. But with the open market seeing a decrease in Windows share to the Mac (and I suspect even more so in the near future to the mobile platforms), if you sell that market, then you don’t have as much say in the matter. Technical issues are not the only considerations here.

    If Windows 8 won’t run your apps then the decision is made for you and sooner than later. But even if they do work on Windows 8, you ARE still going to have to move off VB6 at some point, might as well do it when you have time to do the conversion on your pace instead of some imposed deadline by MS. Now is a good time to start thinking about converting your VB6 apps or paying a qualified shop like Bkeeney Software to do it. I looked long and hard before settling on Real Studio, it was the easiest transition from VB6 and delivered the Mac market fairly cheaply.

  3. We see this more on commercial apps (generally vertical market apps) that are 100% Windows now, but are getting more and more calls for a Mac version. The comment that I get from developers looking to convert is that they know *someday* their apps will no longer work in Windows. It’s not a matter of *if* it’s a matter of *when*.

    So if they have to bite the bullet and learn a new dev system and rewrite what they already have,
    why not include Mac OS X support? Real Studio’s big win is that it won’t cost ‘double’ to cover Windows and Mac (and Linux too for that matter).

  4. I’m sure M$ would LOVE to kill VB6 and force new $ spent on new dev tools and make Windows *appear* more modern at the same time but can they afford to do that to their core customers?

    For instance I was told that Sprint has many in house apps that are still actively being developed in VB6 (I know heresy but it is what I was told). Can M$ afford to tell the Sprints of the world ‘to bad, so sad’?

    Killing VB6 would *probably* also mean the death of VBA code written for Office Apps. Would it cripple cash cow #2?

    If it cripples VBA, now it is not just app developers getting thrown under the bus, it’s anyone who has ever added a little code to an Office App, Enterprise and Consumer.
    Is M$ really that dumb (rhetorical question).

    Can M$ survive if they kill VB6?
    I am thinking, no they can’t especially if it means killing VBA.
    Many Enterprise customers will not want to buy new hardware, therefore no new Windows licenses (cash cow #1), many people will not want to upgrade Office (cash cow #2)
    Can they survive if they don’t kill it? Don’t know.

    I know one thing, if M$ kills VB6 it will crush the small company I work for. It simply cannot survive (as is) if it has to spend a year or two re-writing its VB6 apps.

    I am guessing that if M$ kills VB6/VBA the death spiral will go to warp speed and take a lot of companies with it.

  5. Mark P :
    Now is a good time to start thinking about converting your VB6 apps

    If I’ve heard that line once I’ve heard it a thousand times over the last decade 🙂

  6. @jjb
    What’s funny is that people I’m talking have known for years that they had to move on. They chose not to because Microsoft hasn’t killed Visual Basic yet. So why spend the time and effort if they don’t need to?

    Who knew the Microsoft was an enabler of bad habits? 😛

  7. Bob Keeney :
    @R Smith
    Those are good points. I keep forgetting about VBA. Maybe MS has something to replace it? Perhaps a version of .NET?

    Maybe? It was pure speculation on my part that *if* M$ kills VB6 then VBA would also die. I have dabbled in VBA a time or two and seems to be the same beast.

    I suspect that there is a HUGE number of business big and small that rely on Office Docs with VBA code.

    I coworker of mine who is a bit of a M$ fan boy is under the impression that M$ will kill COM in all *NEW* development tools. So if you have a hybrid .NET app you maybe SOL if you upgrade dev tools. don’t know.

  8. If I’ve heard that line once I’ve heard it a thousand times over the last decade

    .
    The difference now is before it was Microsoft telling you to move to .NET. Now:

    1. The Mac is no long a gnat that just needs to be swatted.
    2. Mobile platforms are becoming huge.
    3. For the first time in a long time companies are seriously looking outside the Windows / Microsoft box.

    Do I think they are killing VB6 in Windows 8? No. But every year I lose more and more customers to the Mac and Mobile devices and it starting to become a real concern. Wouldn’t totally shock me if VB6 apps didn’t run right out of the box in Windows 8.

  9. Bob Keeney :
    They can’t kill COM. It’s part of all their languages.

    Sorry I didn’t mean they were going to kill COM just that it would not be integrated/supported into/in *new* dev tools or new revisions of dev tools. Again, this is just what a M$ fan I work with told me. I can’t confirm or deny it.

  10. Mark P :

    If I’ve heard that line once I’ve heard it a thousand times over the last decade

    .
    The difference now is before it was Microsoft telling you to move to .NET. Now:
    1. The Mac is no long a gnat that just needs to be swatted.
    2. Mobile platforms are becoming huge.
    3. For the first time in a long time companies are seriously looking outside the Windows / Microsoft box.
    Do I think they are killing VB6 in Windows 8? No. But every year I lose more and more customers to the Mac and Mobile devices and it starting to become a real concern. Wouldn’t totally shock me if VB6 apps didn’t run right out of the box in Windows 8.

    Sorry it would really surprise me if they didn’t support VB6/VBA. This is the paradox that will crush M$ in the blink of an eye.

    The paradox is, in order to stay relevant M$ has to kill backward compatibility and put out a modern product. A product that doesn’t support COM/ActiveX/VB6/VBA (and for fucks sake, kill .dll’s and the registry) but if they do this, sales will tank and the death spiral will go super nova. If the don’t, Apple will continue to hand them their ass until they die.

    As I see it M$ has four choices:
    1. Kill backward compatibility and hope to be like the Phoenix (death from the ashes)

    2. Limp along on sh!t cash cows until they can reinvent themselves. Like IBM.

    3. Keep doing what they are doing and wake up dead one day.

    4. Split M$ into separate companies (OS, Office, SQL Server, et al) and let the strong survive and the weak die.

    Funny thing is, I don’t believe they are capable #1, #2 or #4. However, if anyone can pull #1, #2 or #4 off it is Balmer . As long as it takes.

  11. R Smith :
    Kill backward compatibility and hope to be like the Phoenix (life from the ashes) .

    I am talking about stuff I don’t really understand very well here so call BS on this if you know better 🙂
    What I understand is that the MS strategy to solve the backward compatibility problem is to run old apps in a virtual machine in a manner that will be transparent to the user.
    They will then have neatly encapsulated backward compatibility issues. In all future versions of Windows as long as they ensure the VM program works then all older software will work too.

    If I am right and it works it’s a win win.
    By contrast am I correct in stating that Apple have in the past shown no hesitation about
    chopping the legs of existing software when altering the OS?

    MS deserve a lot of credit in this regard and it’s surely something that should give us some confidence?

    However……
    On this page ( http://msdn.microsoft.com/en-us/vbasic/ms788708 ) I do find the following quote a bit concerning :

    VB6 runtime will ship and will be supported in Windows 7 for the lifetime of the OS. Developers can think of the support story for Vista being the same as it is for Windows 7. However there are no plans to include VB6 runtime in future versions of Windows beyond Windows 7.

    So what am I going to do? Well so far, sitting tight, and keeping my head in the sand has worked just ‘fine and dandy’ as Forrest replied when Jenny asked him what was wrong with his legs 🙂

  12. jjb :What I understand is that the MS strategy to solve the backward compatibility problem is to run old apps in a virtual machine in a manner that will be transparent to the user.

    I hope that is not the plan from MS. VMs carry their own special set of problems and headaches and the performance is never great, especially when users are used to running your apps natively. Is this is truly the way MS handles this, then the VB6 version of my apps would only be supported up to Windows 7 and earlier and any users moving to Windows 8 would have to be addressed by a REALbasic version, which I am working on. As I said before, “Now is a good time to start thinking about converting your VB6 apps……”

    It may not even be an issue at the end of the day, but I’m not banking on MS this time around, they are being too quiet on the subject.

  13. Hi

    Good forum – this is my first post.

    If VB6 runtime libraries are not being shipped with Windows 8 can’t we just instal them anyway and then run the VB6 applications as usual?

    • Probably but that’s one more thing the customer has to do get your software running. Plus, there’s the issue of whether or not the VB6 runtimes will run in 64 bit OS’s given that they’re 32bit only. Will that mean additional steps to get backwards compatibility?

      Depending on your audience this might be next to impossible. Businesses will have consultants and IT departments to help them, but consumer related software is going to be hit hard I think.

  14. Bob Keeney :Probably but that’s one more thing the customer has to do get your software running. Plus, there’s the issue of whether or not the VB6 runtimes will run in 64 bit OS’s given that they’re 32bit only. Will that mean additional steps to get backwards compatibility?

    On Windows XP we had to do this, not a big deal to add the necessary runtime instructions to the install script. And there are article on which ones are needed. The real question is Bob’s second point, backward compatibility and runtime compatibility issues. The more things needed to get something running, the more trouble there is, and the more technical support needed. I really enjoyed the fact that Vista and Windows 7 had a stable compatible set of VB6 runtimes pre-installed, I had a lot less DLL hell issues than I did 5 years ago under XP. I hope this is not going open that can of worms again if MS decides not to ship the runtimes and it back on the vendors plate to do so (assuming it will even work).

  15. Thanks for the insights.

    So if you have a small (20 forms) VB6 application that runs on the desktop only (no web interface) and you could convert to VB.NET using the 2008 Express Edition, do you think that would be a good path?

  16. Clinton Reilly :

    Thanks for the insights.

    So if you have a small (20 forms) VB6 application that runs on the desktop only (no web interface) and you could convert to VB.NET using the 2008 Express Edition, do you think that would be a good path?

    If you’re only serving Windows users then that’s probably a good choice. In my opinion, as soon as you want to support another platform, Real Studio starts to be more attractive. Not that Studio can’t do that but .NET will give you a more Windows-like experience (again, in my opinion).

    The question really starts and ends with who the target audience is.

  17. Microsoft appear to be moving towards a degree of platform independence with W8 , championing their new javascript and html frameword as “the way” to develop apps for windows. I guess the .net frameworks were their first move in that direction. It looks like W8 will be available for a number of platforms including tablets and not just intel. I would imagine that organisations that are investing in Windows as a platform will prefer apps that can be used on any supported platform and there’s no room in that world for VB6 …. or indeed RB unless real software have a cunning plan I don’t know about.

  18. @Bob Keeney
    Hi

    I just started trying to convert a VB6 application using the 2008 Express Edition conversion wizard. However as the wizard started the conversion (Initializing) it gave the error

    “Upgrade Failed: Exception Occurred: Can’t use character device in file names.”

    Can anyone tell me what this may mean?

  19. @Mark Dolan
    Hi mark,

    Interesting comment. Does the move to HTML5 and JavaScript mean that other development tools (e.g. .NET) will not be supported either, or at least are now a dead end and destined to have not support in future?

    Clinton Reilly

Comments are closed.