Will VB6 Apps Continue to Work in Windows 8?

Will VB6 Apps Continue to Work in Windows 8?  That single question has driven more traffic to this website in the past month than nearly any other question.  I believe VB6 still has a very large user base so it’s very pertinent question for many organizations and developers.  Perhaps Real Studio is an option for them, but we’ll get to that at the end of the post.

Visual Basic 6 is 20 years old.  It’s stood the test of time and it while it’s showing its age it still functions and apps written on it still run in Vista and Windows 7.  To its credit, Microsoft has made sure that this venerable product still runs on modern computers.

But the question of Windows 8 compatibility has hit the fan, so to say, in the past month or so with Microsoft saying that apps can be written in html and javascript.  That threw many developers into a tizzy.

I don’t believe for a second that Microsoft is abandoning .NET, Win32 or COM simply because those are the foundation for nearly everything ever written at Microsoft.  It simply doesn’t make sense for Microsoft to move to another set of API’s even if you believe that Microsoft moves to a new technology every now and then to make themselves a moving target.  If anything, I believe that this might simply be a new way to develop apps but not replace anything.

While doing research for this post I ran across an unattributed quote supposedly from a person in Microsoft Support:

“We can’t make an official comment on our Windows 8 plans yet but it would be a likely outcome that VB6 applications will continue to work. “

I believe that statement but it’s not exactly a definitive statement.  The real question, I think, is how bad will it suck?  VB6 apps work in Windows 7 but without some work they look like they’re from the 90’s.  Most app developers I know don’t want their apps to look that dated.

Microsoft has stated that the Visual Basic 6 runtimes will not ship after Window 7.  This presumably means Windows 8 and beyond.  I have heard that Windows 8 will be 64 bit only and that means that the VB6 runtimes will either not work at all or will have to be run in some sort of compatibility layer.  So this means that existing apps MAY work, but only after jumping through hoops to install the runtime libraries and making sure the compatibility is set.

Let’s face it.  VB6 is an old, old development environment.  It was written in an age where computers didn’t have much memory and only one processor.  Threading isn’t impossible, but the few times I tried to get it working in a VB6 app the result was instability and crashes.  Threading is such an important thing in modern applications.

VB6 is object oriented – somewhat.  For the time it was state of the art but since subclassing controls is impossible it makes for interesting workarounds and wrappers.  Frankly it makes life more complicated than it needs to be.

Twenty years ago, VB6 was the cats-meow.  The Macintosh was around but it was considered a toy (I disagree but that’s not the argument) and few cared about it.  Microsoft was pretty much the only game in town.  Linux hadn’t been invented yet and the internet was for a few hard core geeks.

This is where Real Studio starts to look more attractive.  It works the same on Mac, Windows, and Linux.  Web Edition brings some of the same ease of developing desktop apps to the web.  In Real Studio I can subclass controls and objects (for the most part) all day long.  It’s a modern object oriented programming language.  Is it without foibles and inconsistencies?  Certainly not, but it’s way more powerful than VB6 in many ways.  Threading isn’t perfect, but it’s still light years ahead of VB6.

We’ve seen an uptick recently with people asking us to convert their VB6 application to Real Studio.  Our VB6 Analyzer utility (found at http://www.bkeeney.com/consulting/vb2rbconversion) has been downloaded a lot recently.  It allows users to scan their VB6 project and sends us a simple report detailing the number of forms, classes, libraries and OCX’s in use and lines of code and some other simple metrics.  It’s no substitute for seeing the whole project but it gives us a nice way to guestimate the costs of rewriting the app in Real Studio.

Notice that I said rewrite the application.  The only thing that Visual Basic and RealBasic have in common is that they have ‘basic’ in the name.  It’s like comparing a computer from twenty years ago to a modern computer.  Real Studio does things so much easier, better, and faster than Visual Basic that it’s really not worth trying to convert it line by line or even form by form.  Believe me we’ve tried – the end result is that you end up spending as much time fixing VB6 code that has a better equivalent in RB than it would be to just rewrite it from scratch.

Is Real Studio a suitable replacement for every app?  The answer is simple:  no.  Real Studio makes a really good cross-platform app, but that doesn’t always mean it will have all of the buzzers and bells available in development environments meant for each platform (grids in Windows come come to mind).

We are Real Studio consultants.  That’s what we do and we’ve been doing it for ten years.  Most of us spent a fair amount of time in Visual Basic before moving to Real Studio.  If you decide to do the transition yourself you will hate it at first because Real Studio is different than VB.  We all went through it and for a while you want Real Studio to be just like Visual Basic – trust me it’s not – and after you stop trying make Real Studio function like VB6 you’ll start to like it and get it.  Transitions are never easy.  For training videos, we have over 30 hours available at http://www.bkeeney.com/realbasic-training-section plus you could always hire us to come on site for training.

If you have VB6 project you want to transition please drop us a line and we can talk.  If you want to get multiple Real Studio developers looking at your project, make a post at http://www.realsoftware.com/support/consultants.php which gets sent out to the Real Studio developers network.

4 thoughts on “Will VB6 Apps Continue to Work in Windows 8?

  1. I support a number of applications developed for sqlServer using MS Access and VBA and have been thinking about a robust platform for their replacement and long term support.
    Realbasic could be a contender but my concern here is with the future of win32 or indeed compiled x86 native apps under Windows.
    I know that W8 will ship with the option of the classic interface (under x86 at least) but Microsoft’s strategy appears to be firmly in the direction of a cross platform operating system running on a variety of devices including desktops, netbooks, touch screen tablets, laptops etc. I’m concerned that an application that will only work on x86 machines will not be a very attractive proposition to Windows customers after W8 is released. I suspect the release of W8 will result in raising the expectations of both personal and corporate customers that their Windows applications will (if not now in the near future) work both on their desktop and on their tablet (or any other Windows device).
    The situation seems a little less bleak for C# and vb.net apps in that at least there is the potential for cross platform deployment (on W8) even if the applications themselves don’t quite fit Microsoft’s new design paradigm.

    ….we’re all doomed…

  2. Well, the good thing is that Real Software is working hard on stuff like this. They work on a new compiler and are about to finish the transition from Carbon to Cocoa framework on Mac. Real Software like any developer on Mac went through severals transitions. From 68k to PPC, from PPC to x86 and now from Carbon to Cocoa. Can you imaging how much work this last transition is? They swap out the whole GUI classes under the hood. You only need to change a few little things in your app to comply to some Cocoa specifics.
    For Windows, someday there may be a transition needed. If Microsoft requires all app to be .NET and in their byte code, I’d expect Real Software to swap out the win32 backend with a .NET backend and your app will be working after a recompile on Windows X. (X>7)
    Good luck Bob with your projects. I had a call today also about a VB to RB transition 🙂

  3. I would just like to make that small point that it’s Vb1 and not VB6 that came out 20 years ago. VB6 has only just become a teenager!

  4. After the inital shock wore off, I am finding that RB is more than a suitable replacement for VB6 with a few notable exceptions:

    1. Third party support. You can get there with enough searching, digging and begging, but you don’t have near as many choices in each area and I was shocked at the number of dead URLs and product / class offerings that are frozen in time as 7+ year odl abandonware.
    2. Debugging. Comes up woefully short compared to VB. When putting in a temporary msgbox is less painful than locating a variable in the viewer, you know you want changes. I hope the rumored change to the IDE does something about this, it is brutal to use much of the time.
    3. Bugs. REAL certainly marches forward and has the future squarely in its sights, but often at the expense of older, forgotten, less important bugs. Also, new bugs get introduced or previously fixed bugs reappear in the current releases. I guess it’s the price of moving forward, but with VB6, we got used to a very stable platform that has a lot of information posted about how to get around known bugs or limitations. Sure, tons of downside to that (such as a dated looking UI), but I came to worry very little about the VB6 compiler/IDE and just did my job. Can’t say I have that same feeling under Real Studio, its always in the back of my head. I’m not trying to beat up on RB, its a great product and will be my new home, I just wish it gave me more of the warm fuzzys.

    #2 and #3 Real can do something about, #1 we are at the whims of the marketplace. Everything else is just normal growing pains when moving from one development platform to another. But I’m moving full speed ahead with RB, because I don’t like what I am hearing on Window 8. I get the feeling it is not going to be the fairly smooth transition to Windows 8 as it was from XP to Vista / Win 7 for VB6 developers. Hope I am wrong, but I think things are fiarly chaning in my little VB6 world, which I still have to occupy.

Comments are closed.