How Microsoft Killed Its Own illegitimate Child

In 1993 Microsoft came out with Visual Basic 3.0. A programming language that developed from the Basic language included with DOS. This language was highly criticized as not being a true programming language. One of its key drawbacks was not being able to create actual executable files. This meant that any VB program had to be interpreted at runtime and hence ran slower than a normal compiled program. However, Microsoft touted it as a great break through in rapid application development and argued vehemently that it was in fact a legitimate programming language.

As Visual Basic progressed Microsoft released Visual Basic 4.0 in 1995 which allowed people to write programs for both the old Windows 3.0 (16 bit) operating system and their newer Windows 95 (32 bit) operating. Visual Basic 5.0 was released in 1997 and supported only 32 bit programming. However, it was very easy to convert any previous VB programs to Visual Basic 5.0. This was a necessity because Microsoft still had very few "real" programmers on board with their "legitimate" language.

Then came Visual Basic 6.0 in 1998. This was Microsoft's coming out party in the programming realm. They had been ridiculed long enough and had done all they could to transform Visual Basic into a true programming language. With VB6 programmers could write full applications. Its database access features were outstanding. A business application written with just a couple thousand lines of Visual Basic would be equivalent to one written with millions of lines of C++. Programmers finally jumped on bored. Microsoft continued the publicity and soon Visual Basic was accepted in the real world.

Then Microsoft came out with VB.NET in 2001. They explained all the great new things entering into the .NET realm allowed for VB6 programmers. The problem was there was no true conversion path from VB6 to VB.NET. Of course in true Microsoft fashion they released a Wizard that allowed you to convert the simplest of programs, but if you had a real business application in VB6 you had to virtually recreate it in VB.NET. Microsoft had spent all this time and energy convincing people that their illegitimate child (Visual Basic) was a full programming language and now with one fell swoop that sought to kill it.

By 2005, Microsoft announced that they would no longer support Visual Basic 6 in any public way. This included no longer allowing anyone to buy the Visual Basic 6 development environment. All the companies that had invested millions in their VB6 business applications would have to rewrite the programs or face not having Microsoft support. If they hire any new VB6 developers they have no way to legally purchase development software for them.

This is old news though, the current news is that in March of this year Microsoft will put the nail in the coffin by discontinuing even their "Extended Support." This support allowed people to pay a fee for updates and phone support. Now Microsoft is preparing for the final finishing move. Like in the classic video game Mortal Kombat, Microsoft is preparing to lop the head off of Visual Basic 6 all together.

So my question is what now? How can Microsoft expect more developers to jump on their band wagon with their next languages? The sad part is, in my experience, Microsoft has finally figured some things out. I highly enjoy developing in their C# language, but I only do so because I know that it will always be available through third party open source initiatives like the Mono Project and I refuse to give Microsoft any more money for a development language.

This site site is dedicated to helping all of us who still use Visual Basic 6 for development. Maybe this is because we bought into the idea that its a real programming language. Maybe its because we are just learning to program and are starting here. Maybe its because we have so many programs in Visual Basic 6 already that we can't just kill them when Microsoft tells us to. Whatever the reason, I hope this site is of service to you. I've been developing in Visual Basic since version 4.0 and I'm glad to help anyone that needs it.

If you enjoyed this post, subscribe for updates (it's free)

Hi, I’d just like to say I


I’d just like to say I still use VB6. I never ventured into Dot Net in the first place because the language was so different and it was going to be a lot of work to upgrade. Now I’ve got a program of over 120 000 lines I fear it would fall to bits if I tried converting to a different language.

I’ve written my own forms and set of controls, so I don’t use the VB6 forms at all. All I do is use the Win 32 API and I use the flat version of GDI+ for the graphics and some OpenGL as well.

The thing I love about it is that my code is 100% solid. If it works it will work every time. I found for what I wanted to do the controls were a bit iffy, as in they could find themselves in weird loops that would give erratic performance, but perhaps that was just the way I used them. The actual core language itself is nice and fast and works without fault. I don’t tend to use all the fancy stuff that MS provides, as I tend to write everything myself so I know it will work well and it will work fast. This is old school programming. It’s the idea of your Turing complete language that you can build anything out of. Well that is except for one or two issues. It should have been given multi-threading capabilities, pointers and it was a little underdeveloped regarding inheritance and working with COM. I have to use some DLLs, for a bit of classic bodging, but on the plus side I have a language that I can read and write as I would in English.

I have never liked the C language style. It’s older than Visual Basic and was thought up when computer resources were expensive, so you have all these ‘!’ or | or the hideous curly brackets and the semi-colons and so on. Nearly all of my code seems to be using simple integer arrays with do and for loops. The fancier you try and be the slower your program is going to run. With VB you think like the machine does, and it goes like the clappers. The three most important things are reliability, speed and development time. So it was a classic, and still is.

MS pulling the rug from under my buisiness's feet

I am not a programmer by profession.

However, I use the VBA editors in Word and Excel. I have an ACCESS database and have a whole bunch of mission critical applications for my company built on VB6. It took me years to build this code. It's tantamount to constructing a building. Once programs are well built, they can operate for a generation.

I have been feeling apprehension since 2005, since MS announced it would pull out VB6. Here we are 8 years later and my vb6 apps are still running strong and serving my business.

I have a proposition for Microsoft : Charge me whatever reasonable amount you want for a VB6 updated version. However, know that you will NEVER sell me another programming language instead of VB6. When I say NEVER, I mean NEVER !!!

MS and Steve Balmer, you choose. ! Seems like you have an opportunity you could profit from. I don't know why you don't seize it. You are miscalculating if you think you will sell me something else, if not VB6.

to provb6

to provb6, what do you mean when you refer to 'tight binding', and why would you require 5 forms open at once (what sort of application requires this, and why?)
What is it that .net lacks that vb6 offers?

What is the problem with having multiple forms open that you found with .net?

VB6 Learning Package

I use a VB6 Learning package bought some 15 years ago when at an evening class. It serves my needs but my desktop is now clunky and I am cosidering a laptop. Previously the VB6 package has survived the transfer to new Windows versions. Will this be the case for Windows 7, please ?

Support Statement for VB 6.0 through to Windows 8

Executive Summary

The Visual Basic team is committed to “It Just Works” compatibility for Visual Basic 6.0 applications on Windows Vista, Windows Server 2008 including R2, Windows 7, and Windows 8.
The Visual Basic team’s goal is that Visual Basic 6.0 applications that run on Windows XP will also run on Windows Vista, Windows Server 2008, Windows 7, and Windows 8. As detailed in this document, the core Visual Basic 6.0 runtime will be supported for the full lifetime of Windows Vista, Windows Server 2008, Windows 7, and Windows 8, which is five years of mainstream support followed by five years of extended support (

I would guess so

My guess is yes it will survive. See my post on VB6 With Windows 7. In it I detail how Visual Basic 6 is still running great even on Windows 7 (and probably beyond). Microsoft works very hard on maintaining compatibility even if they don't "officially support" a product.

What the user want..

The Clients don't ask you which development tools you use but they ask you how their applications could run their business smoothly..As long as you able to satisfy their needs, you will be their partner forever... That's my point!

vb6 purchase

Does anyone know if VB6 bought from the USA and imported to the UK is legal in the UK?

im visual basic 5 programeer

i still using visual basic 5.0 can produce exes with less files than vb6, and visual basic 5 can run on windows,98,95

i can do enything more fast than visual , i still using xp, im very comfortable programing usin visual basic 5, i can do the same things than using .net 2005 2008,so im visual basic 5 programer at 2012... sorry my english im spanish speaker...

i need your suggestion... please help me out...

am working in some X company. now am out into development domain in which they are using vb6 as the tool for development of applications for clients. i really want to know wheather this domain is good for my future carrer or not? is there any scope for me in future if i continue to be a developer in vb6? if i want to switch my domain from vb6 to any other like java, .net etc.. say in another 2 years, how difficult it is for me to change? is that possible? or shall i continue in vb6 only? will i get good future???? please give me suggestion... i really need it... waiting for earliest response
thanking you

VB6 forever just like FORTRAN and COBOL

Why would anyone want to write "Hello world" in 20 different files and 3 different folders? There are always going to be desktop application where Visual Basic 6 is the most effective tool to do it.

I'm sure there are also enterprise application where we don't need Microsoft development tools. In fact the technology of Cloud make Microsoft development tools quite redundant. Tell me what can't you do with LAMP (Linux, Apache, MySQL and Php)!

Just like many mainframe application written in COBOL, the past decade had too many apps developed in VB6 and it'll take another 10-20 years for it to become unpopular. However the simplicity of BASIC language will still live on. So VB6 may go for a long while. Microsoft again have strategic error since Bill Gate is gone!

Goodbye Microsoft you have lost direction!

VB6 was, and still is, the best RAD

We made a lot of money from VB 3, 5, 6 and would pay thousands for proper MS upgrade and support (if obsolescence policy improved to the point where we could trust MS again). Our app was for critical control of public info. We started in assembler, then used VB3 to port to MS Windows. We call C++ dlls for hi speed processing. As VB is RAD, we could adapt, make it tactile and foolproof. As DB engines were (and still are) flaky and slow, we rewrote one in VB that mirrors across WANs. This ran rings around our competitors and sold hundreds of high cost apps. Spin-offs include server CGI's, XML db's, industrial VoIP, and even an IIS serving 1000+ websites(all in VB6).

VB6 is not "bad software" or a "horrible hack" as non-VB forums suggest -- we bought the pro editions and VB was one of the two major parts of MS's VS6 (high-level in VB, low level in C++). We chose it as the most mainstream with many financial institutions using it, and as it was (& still is) the script engine in Excel, Word, Access and is close to ASP & VBScript. That was a professional choice!

When the 1st Fred (dot Net) came out, we procured the pro ver but found it unsuitable and NOT backward compatible. Later ones were no better. It's different, it's research based development, and it's not tight (they say it's "loose coupled" and they are right!). It does not suit the logical mind, it does not encourage tidy programming in my observation, and I'm yet to see a vast app with dozens of forms written with it. The small apps we did write in it were frail. We held on for MS to deliver on their promise right up until 2010 to provide a proper upgrade path. Then the unthinkable -- VB 2010 came out declaring NO back-compatibility.

It's May 2011. I argued with MS at high level to retain VB6 (and they haven't ruled this out incidentally, but have said it is unlikely -- Mar 2011). It is the event driven, departmental hierarchy and bug-defying tight-binding + single-thread that I miss most. We've tried Pure, PowerB (Turbo B), Real, Dark, KBasic, FreeBasic and gone further with several variants of Java (inc NetBeans). NONE compare except perhaps Jabaco (if it raises it's standards). VB.Net has more features than VB6 (but not if compared to VB6 with countless 3rd party OCXs), and is more event driven than the its competitors, but only at the expense of unnecessary complexity. But -- can we trust MS? More below..

Then Um... If It's DEAD Then

Then Um... If It's DEAD Then Why Is There VB 2010? It Died In 1900's And Now There's A 2010 Version? What Ever You Say...

reply to Um... If It's DEAD Then

Re "If It's DEAD Then Why Is There VB 2010?"
Because it is not an upgrade. We cannot upgrade. It's so different, the VB community nicknamed the new Dot NET version Fred -- Google VB Fred. It's not just novices, it's banks and institutions that are affected as well. See this: .. MS Fred is based on trying to replicate the popularity of Java Virtual machine cross-platform concept, and in doing so inherited all that concept's bloat. Moreover, it seems that they had a bunch of new programmers that didn't have the time or inclination to understand VB6, so they just started again.

Classic VB actively developed: as REALbasic...

Actually, Classic VB IS alive, and growing, it just has a new name: REALbasic. The clone of classic VB6, and works on all Windows, MAC, + Linux. It is actively updated, a new version about every 6 months. Its syntax is very VB6-like, (a near clone), but with some new, better features. However, being cross-platform means that most COM won't work well with it. (although many activeX controls do work). (the early versions of REALbasic were limited and buggy, but it's a lot different these days.) I like it.
Another really good language is PureBasic, producing fast, small exes. The combo of using REALbasic, Purebasic, and some VB6 is a winner!
The big problem with anything on the .NET platform is the code is easily hacked. You can't protect yourself from pirates. Obfuscation is a joke, — there are many 1-click de-obfuscators. But machine code (like REALbasic or Purebasic) is much harder to crack.

REALbasic & PureBasic, don't make me laugh...

You are missing the point -- upgrading VB6 to REALbasic is nearly as bad as upgrading to VB.Net (I had cites for you, but the spam filter stopped them). Both IDEs as subject may have some good features, but VB.Net is streets ahead of either of those two (as was VB6). PureBasic's idea of form handling is to put the programme in a loop watching for keyboard and mouse changes -- I just bought a copy and this is what I discovered.

It's all about what you are stuck with. We've got near 20 years worth of VB classic work to upgrade, dozens of apps still in use, and no upgrade path in sight at May 2011. Not only that, but despite all the "horrible hack" rhetoric about VB6, I've employed several non VB programmers, and they just could not do merchantable GUI intensive apps until I convinced them to go VB6. It's genius is tight binding although of course some s/w discipline is necessary. We started from scratch with VB.Net as well, and we still couldn't achieve the same robust versatility. I'm sure any of these IDEs are fine if you've got one ot two forms, but try an application with two dozen forms of which about 5 are visible at any one time, accessing and mirroring multiple databases over LAN's and WAN's. VB6 rules, even now.

Vb still roles

Can any body merge vb6.0 with php appl

Classics never die:)

that's like someone would kill Rambo. Can't happen. VB forever!


Bravo brother..i still use it until now for development !

VB6 on any windows OS


vb6 is not dead. vb6 programs will run on windows vista, windows 7 or any future version of windows as long as the interfaces of the native APIs are not altered. i developed an application that runs on windows from 98 onwards up to windows 7 without any problem whatsoever (although i advised the users that the minimum OS should be XP). the technique is to isolate the dependency files and registry references and put them in the same folder with your program. any change in the system files or registry structure of the OS will not affect your program. use the manifest wizard tool on my website to create the manifest file containing the dependency references. no need for a virtual OS. the vista looks and controls can easily be implemented through SDK coding. there is nothing in vb2000+ that cannot be done in vb6. you just need to be creative. but if you are just beginning to delve on programming i would advise that you learn purebasic or powerbasic instead of vb6. these languages have vb-like syntax but with the versatility and speed of c++ and their output will run on any windows OS.

VB on any Windows OS

Dear Anonymous,

This sounds encouraging. What is the URL of your website?

VB6 Game Developers

I was pretty upset to see that most of the DirectX functions I used in VB6 were depricated in .net. If you don't want to convert to .net because you are trying to write games in VB6, then you should definitely check out Alan Phipps website ( ) in which he tutorials using XNA (yes you can use it with VB, you just can't play the games you write ON the 360) with

Sorry for double post.

Legacy is Legacy

Would be nice to see articles on how to move your VB6 apps to at minimal .net 2.0. You aren't tired of declaring Win32 API's and debugging the code that uses them?

vb6 forever

When I started programming for a living basic as you pointed out was an interpreted language so in order to meet my clients needs I switched to an xBase language called Clipper which porduced a fully compiled exe. I only started using Visual Basic again when Win98se came out and dos based programs started acting finicky. I now find the same thing with Vista and Vb6 so I am activily convincing my clients and anyone who will listen not to move to vista. I am tired of bleeding money to Microsoft. they just keep stabbing us in the back. If I have to move on from Vb6 it will be to a non-microsoft product.

Micro$oft Idiocracy, They lost me a long time ago!

The Microsoft "Software Lifecycle" has been perverted from the more legitimate standard "Waterfall Lifecycle" (which has a definate "start and ending" for any software project) to Microsoft's never-ending circle! This means, from the start, Microsoft has NO INTENTION of ever finishing a product! 80% of an "upgrade" is they just rearrange all the menus and rename the same objects in confusing ways so you must take a MS cert class to figure out where they hid everything!

I learned this with the first versions of Windows, Office Products, and Visual Basic 1, 3, 5 & 6! I REFUSE to migrate to!! I simply don't need it, and I program for a huge variety of companies! There are better ways, with no chains. MS refuses to fix bugs unless they are totally debilitating to the product, charge us a fortune for elevated support to solve THEIR bugs, and I have seen the same "bugs" carry on for generations of their products! I am still, as of late 2009, 100% Windows 2000 on my computers, and develop in (when on windows) VB6! When something cannot fuction in that environment, I am moving more and more to C/C++ and my next OS upgrade will be a "Real" upgrade.. to Linux! I have already abandonned MS for 100% Internet projects many years ago, Now using only Linux Web Servers, PHP & MySQL! I cannot tell you how good it feels to be free of the endless pains of ASP, Windows and all their crap! In the desktop world, I am getting away from them more each day! Soon, like my web stuff, I will be totally weined too!

Take that Micro$oft, in fact, just eat me! I'll never come back unless you change this abusive mentality towards me! I am not going to retool every couple of years to suit you! I'm done!

Turbo assembler

I write my apps in Turbo Assembler from Borland.

LOL :-)

May be JAVA is the future ...

And already its use is expanding ashtonishingly in Japan. If you read at ads for Wanted Jobs, almost 90% is related to JAVA or derivatives as Java for Mobiles. Demand for Open Source Programmers is in high (Valid for OS specialists too).

nice artical

i i enjoyed it

I am supporting my customers with VB6

For For the last 14 years I am in Dubai, U.A.E. I came here with Dbase 3. and started making user interface with Foxpro Ver 6. learned VB6 from one computer centre in Dubai in 1996, Now earning my bread with vb6. So far my clients are happy. I am able to feed them. I have own enterprice edition of VB6.
My two children are studying in India for Btec IT /Btec CS. Now I feel still future is there for VB6. in U.A.E. During this recession period also I get enquiries for VB6 solution.
I feel my boys should not go behind Microsoft. rather I should convince them to improve open source
Joseph Aloor

VB6 long live !!

I have started learning programming in Basic 1.0,Visual Basic 4.5 till Visual Basic 6.0 now I am able to create a more advance applications fast
and quit. It's sad to know that VB7 is VB.NET which is an alien to me and find that it is completely different not only in programming syntax but
its GUI also changes !!. It not comfortable environment and it takes far learning curve to pick up. It is not a good idea for Microsoft to discard
the development for VB6... Regards/ Very sad VB6 programmer.

Glad to find this site

IMO, VB6 is still the best all arounf language for Windows. Pre .NET Delphi had some advantages but it was never as popular as VB. I suspect that like COBOL, VB5 will remain alive for some time after it's death - too much existing code that will never be converted or rewritten. AFAIK, VBScript still powerts Office as well. For desktop and client-server development VB6 still holds its own. Unfortunatelyfrom our perspective, everything is going web based and web development seems to be increasingly focused on AJAX. The VB6 web features like DHTML applications never got much use that I'm aware of and now they are probably obsolete. If there were a bridge between VB6 and AJAX, I'd be happy. As it stands though, from a professional standpoint learning VB .NET or C# seems pretty much mandatory. I'd love to find some virtual contracting jobs for VB6.

Whatever you people say, VB6

Whatever you people say, VB6 is DEAD, yet till there are people who learn vb6. That's why VB6 is still half alive.

My Reason to use VB6

I always wanted performance. My first computer was a pentium II with almost no HD space... It had 32 or 64 MB. It was what I can call slow. Then I got a pentium III (Ghz) with 256 ram, 128 Graphic Card and 50 HD space.

Finaly I got my Powerfull Dual Core with 2GB ram and 120 HD space. With this Caracteristics why am I not using Vb 2008 or VB 2005? Because the new applications are slow. I want the best performance when im programming and those new applications can't give me that chance. And the VB that im going to learn at school its VB 6 so its no use to learn the newest languages.

Your article was very interesting.

Sorry about my English... I could not explain as I wanted to...

Visual Basic

In 1993 Microsoft came out with Visual Basic 3.0. One of its key drawbacks was not being able to create actual executable files.

Microsoft released Visual Basic in 1987. I think you'll find that Microsoft made a DOS version first. This didn't sell so they made Visual Basic 1.0 for Windows in 1991.

In 1992 they made Visual Basic 2.0 for Windows. As you say in 1993 the made Visual Basic 3.0 but you also say there was a drawback not being able to create actual executable files. Well my version of VB3 does, so I don't know where you had this info from.


I've been programming with VB for 14 years. Started with VB4 16bit Pro, VB5 Pro, VB6 Pro/Enterprise and now VB3 Pro. But I'm no expert, I'm still learnin

What Actual EXE's means

I should clarify. By actual EXE's I mean code that was compiled and could run natively on windows. VB3 actually created an intermediate code that had to be interperted and and executed at runtime. Hence, it was very slow and required the VB3 runtime to interpret it. This also allowed a VB3 exe to be decompiled back into VB code.


Does this means if I develop a program and Compile it with Windows XP I can not run it with higher version of Microsoft OS?