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.
