Tim Anderson's ITWriting

Why Visual Basic 6 was frozen


Want to reproduce this article?

If you would like to reproduce this article on your own publication or web site, please contact Tim Anderson .

picture of book

Microsoft and the abandonment of Visual Basic 6.

Visual Basic was the most popular programming language in the world, yet Microsoft froze its development in favour of a new and different VB. Here's why.

By Tim Anderson.

Why Visual Basic 6 was frozen

It sounds like perfection. Microsoft had perhaps the largest number of developers in the world hooked on a language which in turn was hooked to Windows. Yet Microsoft took this asset, of incalculable value, and apparently tossed it aside. Back in 2002, it announced that the language was to be replaced by something new, different and incompatible. That caused rumblings that continue today. Developers expressed emotions ranging from frustration to anger. They felt betrayed. What follows is the explanation.

To think this through, we need to hold in our minds three things.

First, there is the Windows API. By this I mean the low-level programming interface to Windows, as explained in books like Charles Petzold’s Programming Windows. It is primarily a C interface. Every Windows programming tool compiles code that calls the Windows API.

Second, there is COM, which stands for the Component Object Model. So what is COM? Essentially, it is a mechanism for linking software components together. It is a binary standard, so it works with compiled code at runtime. COM is a family of technologies. One of them is ActiveX controls as found in both Internet Explorer and Visual Basic. There is also COM automation, used in Microsoft Office and elsewhere to control one application from another. A third COM standard is OLE (Object Linking and Embedding), used when you insert an Excel spreadsheet into a Word document.

Third, there is .NET. The .NET Framework is Microsoft’s replacement for COM. I’ve already written about the rationale behind .NET; it’s a bit out of date, but mostly still applies. COM was replaced because it was failing. It is a tightly-coupled binary standard, which makes it frail for Internet applications. It is highly complex, which was one of the reasons developers were moving from VB to Java. It also has versioning problems, causing software failures.

By contrast, .NET has a loosely-coupled architecture, idea for Internet and mobile applications. It is also designed for ease of development, and has many security and versioning features that could not easily be added to COM.

It is hard to understate the significance of Microsoft’s shift from COM to .NET. I think we should assume that the company would not have done so if there had been a good alternative. If industry politics had allowed, It could have moved towards Java rather than .NET, but the move away from COM was necessary in order for the Microsoft platform to remain viable.

Today, with the family of technologies called Indigo, the extent of this move is becoming even more apparent. Indigo replaces COM+, the COM-base transaction server which is key to distributed Enterprise applications on Windows. Indigo is also the new standard for XML Web Services, message queuing, transaction management and remote objects, and even inter-process communications. Indigo is built on the second version of the .NET Framework.

So what has this got to do with Visual Basic? I assume that sometime around the year 2000, when the plans for .NET were coming together, Microsoft looked at Visual Basic 6.0 and wondered what to do about it. VB6 was first released in September 1998, so it was due for an update. At the time, VB6 was a popular product, but also the source of considerable discontent. Developers bemoaned its lack of full object-orientation and its many anomalies. Another issue was the VB roadblock. Some things that you could do in C++ or in Borland’s Delphi could not be done in VB, or could be done only by monstrous hacks.

The truth is, VB was never intended to be a complete development language. It was intended to be a language for high-level composition of low-level components, a glue language if you like. For this reason, VB created a highly successful third-party industry in components, mostly ActiveX controls. These components were built mainly using C++, but used mainly from VB. Without ActiveX, VB would have been severely underpowered.

VB gets its component abilities from COM. In fact, VB is built using COM. It is not just a good COM client or server; it is a COM product. The object-orientation in VB is that of COM objects, which is why it doesn't do inheritance (COM is based on interfaces). Create a class module in VB6, and look at its Instancing property. Would you like PublicNotCreatable or GlobalSingleUse? These strange terms are COM features. In other words the technology on which VB was built was the technology .NET was replacing. There was no way VB could easily be adapted to become a .NET language.

Clearly Microsoft had to implement a new Visual Basic. However, it made what in my view was the only feasible decision. The company created a brand new product, maintaining compatibility with VB6 only where it could be done without damaging the new language. In one or two cases it maintained broken features in VB6 for the sake of compatibility (the strange array dimensioning comes to mind), but in general it made the new stuff clean. The new product solved many of the issues that afflicted VB6. It removes most anomalies, supports full object orientation, removes the dependency on a single IDE (VB .NET has a command-line compiler), and largely removes the roadblock, putting VB on a par with any other .NET language.

The compatibility problem

However there was a huge price to pay, and that was compatibility. Let’s think for a moment about what this means. Imagine you are a large organization which has used VB6 to build applications that play a key role in your business. There are hundreds of thousands of lines of VB6 code. The database architecture is based on ADO, the last COM-based database model. Now Microsoft says that VB6 is the end of the line. What do you do?

It's a bad scenario, and not uncommon. Microsoft’s official recommendation is either to port to .NET, or to freeze the existing application to maintenance only, and build new features in .NET using interop techniques to integrate the old with the new. Neither option is particularly attractive. Porting is a major effort, and your application developers have skills in VB6 and COM, not .NET. Interop is another idea, but often raises performance issues as well as tricky programming problems.

Microsoft does of course offer porting tools. Frankly, these have an impossible task. They can help a little, but there are many inherent problems. The main difficulty is not with the language, which converts reasonably well in most cases. The difficulty is with the class library, components, and GUI framework. The Visual Basic forms engine is nothing like the .NET Windows Forms library. ActiveX controls work to some extent in .NET, but they are sub-optimal and often cause problems. Worse still, advanced VB applications make considerable use of clever hacks and API calls which are bound to trip up any porting tool. Finally, COM has a totally different architecture to .NET. How is a porting tool ever going to re-architect your application successfully?

Mitigating factors

There can be mitigating factors. In general, applications which are mainly non-visual will either convert or interoperate more easily than visual applications. Applications which use best practice in terms of separating business logic from presentation code, and which use an object-oriented design, will be much easier to migrate or maintain than those which do not. However, even the best-written applications still have a problem.

COM is not altogether dead

Personally I like .NET. My general instinct when considering the future of a legacy VB application is to plan a new .NET or perhaps a Java application to replace it. However, that is not always realistic. There is another option, which is simply to continue with VB6. Some people are spooked by Microsoft withdrawing support. Here’s the latest official story. In summary, mainstream support ended in March 2005. Extended support, which is almost as good, runs until March 2008. However, the real support for VB6 is in the community and on the Web. By now, almost everything is known about the product. In addition, VB is (as we have seen) hugely extensible. You can call the Windows API; you can consume ActiveX controls; and you can create DLLs in other languages and call them from VB.

There is of course a theoretical risk that Longhorn or some other Windows release might break VB, locking developers to old versions of the operating system. However, this is vanishingly unlikely for the foreseeable future. Microsoft is not stupid. Why would it wreck adoption for a future Windows release by breaking VB apps?

Another factor is that Microsoft itself still uses VB. VBA remains the macro language of Microsoft Office. For that matter, Office is still primarily based on COM. This isn’t only because of legacy code. The .NET Framework does not have any equivalent to Object Linking and Embedding, which is used to great effect in Office. COM is not going away, not in Longhorn, nor in whatever comes after Longhorn.

Consider support for 16-bit applications as a parallel example. 16-bit applications still run in Windows XP, even DOS applications. However, they don’t run in 64-bit Windows. It was impractical to support three levels of Windows (16-bit, 32-bit, 64-bit) simultaneously. I’d expect that VB6 applications will still run for as long as 32-bit Windows is supported. I’d also expect that 32-bit Windows will have a much longer life than 16-bit Windows, since there are more applications out there, and the advantages of 64-bit over 32-bit are small for most users. Your VB6 applications will run for a long time yet.

I'm not suggesting that sticking with VB6 is an ideal solution. It is already dated in some areas, and will get increasingly so. For example, it is hard to support Windows XP Themes in a VB6 application. As Microsoft moves on with Avalon, Indigo, and other new Windows features, it will be difficult for VB6 developers to keep up. However, I doubt this is the main concern of organizations contemplating their VB6 applications. It is more likely that they just want their applications to work correctly.

What else could Microsoft have done?

This to me is the key question, neglected by many of those who feel let down by the abandonment of VB6. Clearly Microsoft could have stuck with COM and not done .NET. I don’t personally think that was a viable option; if Microsoft had done that, the migration away from Windows to Java and elsewhere would by now be huge. It could also have created a compatible VB7 as a separate stream of non-.NET development. This is actually what happened to FoxPro. The killer disadvantage is that this would have offered no migration path for VB developers who actually did want to use .NET. If Microsoft had done that, nobody would have taken its .NET strategy seriously. Or it could have done both VB7 and VB.NET. Confusion would reign. It might have worked as an appeasement strategy, but it would not make any difference to the underlying awful truth: the COM-based VB does not fit in the new .NET world.

I think Microsoft made the right decision in freezing VB6. The right decision in this context does not mean painless. Microsoft was in a bad place, and so was VB; it was always going to end it tears.

Postscript on Borland's Delphi

It is interesting to compare what Borland has done with Delphi to the way in which Microsoft has handled VB. Unlike VB, Delphi was never a COM-based tool. It supported COM, but its primary dependency is the Windows API. Again unlike VB, Delphi has been fully object-oriented from its first version. Therefore, Borland had some options not available to Microsoft. It was feasible for Borland to create Delphi for .NET with reasonable compatibility.

However, looking at what has happened to Delphi you can see that this approach also has its problems. Like VB6, Delphi has its own GUI class library which is different from .NET Windows Forms. Borland addressed this with a kitchen sink approach. The company provided Windows Forms support in Delphi, but also ported the Delphi GUI library to .NET, as an alternative to Windows Forms (VCL.NET). Which way should Delphi developers jump? You can choose your incompatibility. Choose VCL.NET, and live on the margins of .NET with a niche GUI library instead of the standard item. Choose Windows Forms, and greatly increase the porting effort for Win32 Delphi applications. Neither is ideal.

Of course Borland has also continued to update the native code version of Delphi. This is still where Delphi is most compelling. It’s also apparent that while Microsoft is moving away from COM, it is not really moving away from the Windows API, which is still being extended in Longhorn. So native code Delphi still makes sense as a product, as does Microsoft’s native code compiler, Visual C++.

It is true then that Delphi developers have an easier ride to the future than those on VB6. That does not prove that Borland loves its developers more; rather, it says something about the technical differences between the products. Visual Basic is a special case.

Copyright Tim Anderson 2nd July 2005. All rights reserved.

Copyright ©2005 Tim Anderson

Comment posted on 2014-07-19 21:36:13 by: VB6 Programming.
Microsoft never listen, never learn.
They always know best. Even now when they are laying off 18,000 employees they cannot understand that it is their own decisions that have lead to this.
Their decision not to support VB6 programming was wrong back in 2002. It is wrong now.

Why would anyone choose a Microsoft development tool knowing that at anytime it may be abandoned?

Comment posted on 2014-07-11 19:52:25 by: Greg.
VB6 was a great tool for those of us who are not OOP and needed a simple IDE. I have used VB since early 90s to produce client server apps for databases that I created. With investment in 3rd party tools have created very large projects still running today. Every time I think I have time to hit the learning curve for .NET I get bogged down quickly in the IDE with its many project types and methodologies. Why did things get so much harder for guys like me who don't try to promote ourselves as programmers. I am a solutions provider and have to do many things. So how come Microsoft doesn't fill the niche for people that need to get productive quickly with database applications. I think the RAD for .NET now means RADICAL instead of RAPID APPLICATION DEVELOPMENT as it was with VB6.
Comment posted on 2014-06-20 15:47:03 by: Elroy.
It is still hugely upsetting to me that Microsoft won't update VB6. If they came out with a COM based VB7, I would purchase it in a heartbeat, given the following criteria: It compiles all of my VB6 code flawlessly, including all of my API calls. Some of the things I would like to see in a COM based VB7 would be a 64 bit version and full support for the newer AERO forms. Also, the possible creation of METRO apps would also be nice but not essential for me.

Just as an aside, Tim's article speaks of a "highly successful third-party industry in components." Even back in the day, I find this statement dubious. I looked at virtually all the third party components and found them all lacking. Today, I have a few user controls I've written myself (and incorporate into my projects), but I use no third party controls whatsoever. The core VB6 package (including the common controls) is a fantastic environment to get quick, quality, high-level work done.

If I were to ever abandon VB6, I would take a long hard look at something like ChromeOS and abandon Microsoft altogether. With their constant breaking of things, I just feel that I can't let them betray me yet again.

Several of the people commenting have suggested that it's all about money. Personally, I don't think it's about anything other than pure stupidity. Microsoft has always primarily been a software company. To betray the trust of software developers is the worst thing a software company can do. I "hear" the argument that .NET would have never taken off if VB6 wasn't cancelled. But so what. Has .NET gotten them into the world of web programming? Not really. Has .NET helped them to penetrate the tablet and smart-phone market? Not that I see. I have extensive VB6 applications working flawlessly in small and medium networked environments using DAO, ADO, and SQL data manipulation methodologies. Why don't I have a compiler product to bring this VB6 code up to current standards (including 64 bit and latest AERO type form features)? It's shameful.

Comment posted on 2014-06-07 06:58:29 by: Anonymous.
VB was a major success and a disaster to abandon. Its development environment was one of the most productive and easy to use tools on the market. The resistance to migrate from VB6 is still felt.

The solution is to disconnect the language from the underling architecture and rework the runtime infrastructure to use the .net framework.

In my opinion, Microsoft must focus to recapture the harts and minds of developers to compete with Apple and Android. Microsoft use to be a rebel against convention and it was good at it.

Comment posted on 2014-06-04 02:01:05 by: Pavel.
Now, when Paul Yuknewicz statement cleary states, that MS will never make an 64bit version, and the days are numbered, its time to seek for alternatives. I still maintenance many projects in VB6 and after this experience i will never adopt .NET in same range, nor let me fall in similar dead-end single platform vendor lock in the futute i hope at least. Thanks to all, who pushed MS, we did all we could.
Comment posted on 2014-06-03 18:00:33 by: insider One.
dots net will be dead soon, bear bones vb6 will always work.. but we at MS will now adventure with html5.
Comment posted on 2014-05-18 09:02:28 by: Tim.
I can bring an application to the client way faster in VB6 than C# or VB.Net - and I am fluent in all three.

MS does seem to have misread the crowd of VB6 programmers and the line-of-business applications that are supported and enhanced every day.

Funny, it is a money thing: MS wants new languages so people have to update. Clients do not move, well, because the VB^ application goes the job very well and is faster in data retrieval.

MS can make the decision to lose money by not making a VB6 pathway, but it is upto the stockholders to question the MS board's strategy.

Comment posted on 2014-05-09 19:01:21 by: VB6er.
Now, In May 2014, VB6 has just overtaken C# in the Tiobe index of programming language popularity.

That makes Visual Basic 6 Microsoft's most popular language !


Comment posted on 2014-05-04 20:56:53 by: Dennis Johnson.
This article is out of date. At that time, Microsoft thought that Net is the future. Now they show their intention to bring back COM programming. Metro API (WinRT) is based on COM!
Comment posted on 2014-05-04 14:52:42 by: Michael.
I can get a VB6 application into production 2-5 times faster than .Net. VB6 is a solution creation monster!

Yes it does not do everything possible in OOP. So what! With VB6 my apps are created\maintained in record time compared to the other tools I have to use (Python,.Net, Java).

I have a life outside of programming. When I have to work late it is usually because of a non-VB6 project. VB6 got it right. Could we please have a 64-bit version. PLEASE!

Note: If we have a 64-bit version of VB6 I'd rid our environment of other non-VB "solutions".

Comment posted on 2014-05-04 05:47:12 by: VB6 programming.
There is little reason to migrate from VB6.

VB6 runs on Windows 7 and 8.x and has Microsoft "It just works" until 2023.

There is a call for an updated VB programming language at


Comment posted on 2014-03-24 14:31:35 by: Abdul Malik.
I agree with you in arguments you made while this is for sure that Microsoft have to meet their corporate requirement for profitable purposes. I also don't think that the Microsoft may not have the ability to continue upgrading the Visual Basic 6 within its initial programming structure...! I am using VB6 since 1998 and wish that Microsoft may have plans for Visual Basic with old programming environment!
Comment posted on 2014-02-13 13:55:36 by: Robert Zijl.
Off course VB6 still rocks. You just don't throw away thousands of lines of code. There are many systems written in VB6 that are still maintained until this very day. I maintain one of them (PayMaster Rocks!!) - I have always managed to succesfully code every task at hand, no matter how complex.
Comment posted on 2014-02-06 14:02:18 by: DaveJS.
I am truly amazed and gratified to have stumbled across this web page.
I thought that after all is time I was probably only one of a handful of people still programming in VB6. What a delight to see that so many share my love of this piece of software.
I have looked at most versions of VB.Net express - after all free software does have its attractions to a pensioner! - but it seems to me that all we are being offered is Visual C without the crazy brackets (braces?) and semi-colons all over the place. Other than that the syntax is so very C like and very unlike VB6.
I used to use VB6 at work, mainly as a test front end when developing embeded electronic devices. However, these days I only use VB6 as a hobbist to control my model railway. The outstanding feature as far as I am concerned is the Control Array which, as far as I can find, has been totally abandoned in VB.Net as it doesn't fit in with OOP rules.
So, MS I won't be buying your new OS versions but will stick to XP and the beautiful VB6!

Comment posted on 2014-01-23 02:23:34 by: Vb6er.
You can vote for an updated VB6 at:

Comment posted on 2014-01-13 23:36:25 by: David Marshall.
MS killed VB6 because they knew .NET would crush Java (which it did) and so they had to make VB .NET compatible.
Anyone who has bet on .NET will lose out in 5 to 10 years as, by then, MS will have invented something new to sell and made .NET obsolete.
Plus ca change...

Comment posted on 2013-09-20 18:00:12 by: Chuck.
Here in 2013 I can still get an idea from proof of concept to production faster in VB6 than .net (and yes I am versed in .NET).

Would it really kill MS to create a 64-bit version? With just minimal feature changes\fixes VB6 could continue to be the go to development environment for those that see the value in what it has to offer.

Comment posted on 2013-06-30 03:48:37 by: Abraham Petit.
From my perspective, i think that vb.net Will die as a product much before than vb6
Comment posted on 2013-03-27 14:06:52 by: Xavier.
Since no one mentioned it yet in this OLD forum.... VB express fixes a lot of the problems seen in VB.net.

Much easier to transition from VB6 to VB Express than pure VB.net.

Good job from Microsoft in my opinion.

Comment posted on 2013-02-05 01:29:45 by: Vlad.
Borland C Builder (v6.0) was the best, most productive RAD environment for WIN32 platform, ever.
Comment posted on 2012-11-28 06:59:32 by: LAXMAN.
Hi folks,
Microsoft is dropping all .NET/Silverlight and everything for javascript/HTML5.Microsoft is smart...to lose a battle to win a war! www.webprogr.com

Comment posted on 2012-11-15 01:03:02 by: Mike.
I think that it should have created a more transitional approach. I've been taught how to program in BASIC (DOS version), FORTRAN, C . I graduated college and taught myself how to program VB 6, along with other languages. I was able to transition easier from the DOS version of BASIC to VB 6 then from 6 to VB 2005.

Several of the features could have been wrapped better.

Switching from:



FileOpen(1, Filename, OpenMode.Binary, OpenAccess.ReadWrite, OpenShare.LockReadWrite)

was a big step. This was one of the reasons I dragged my feat at learning the new language.

Although I also understand they had to make a big jump to meet a big obstical. I still program some in VB 6, although I can't remember the last program I wrote in it. More often I write in a newer VB.

Comment posted on 2012-10-27 01:45:51 by: Phil Tirino, CPA.
After trying to stay up with MS, having gone to an attempt at .net reluctantly and concerned about code security, I have dumped my MS Vista and returned entirely to XP where the VS6 Dev works well and VB6 can be resurrected.There was no reason to destroy VB6 other than to destroy the proliferation of applications oriented developers and return the business to the techy section wher the focus is on nitt picking technicalities instead of problem solving applications. I still have to believe that MS made a hugely bad business decision and has made far less profit on .Net desktop applications than it could have earned had it kept VB6 alive. It is never too late to revive it MS. There was never any reason to assume the two systems could not be supported and sold as independant products. They are not mutually exclusive. Mike Chici and Ohio Sci were the first to get shafted by MS, then Apple and Windows, and now that they dominate the base, they can bait and switch to their hearts content. I have two words for you MS.


Comment posted on 2012-08-06 18:58:39 by: Tired.
Thank you Microshaft! I'm tired of you only concerned about chasing the mighty dollar. I hope you soon go bankrupt. I wrote many millions of lines of code in VB6.0 for many private and public entities. Dumping VB6.0 and only supporting .Net has killed my career. Although all my programming was successfully, companies felt the need to upgrade due to contracts, pressure, and influence from marketing. About six years ago I refused any new programming engagements using any Microshaft products. Although I still supported previous jobs. However, the smooth migration tools never worked for obvious reasons. So, it appeared to be my fault. At this point, I give up. Microshaft, as well as the entire United States for that matter, is corrupt and greedy. Our resources have been squandered and our future is bleak. Greed has taken over. However, we are becoming the Socialist States of America. Irresponsibility is being rewarded by the US government. Take from the haves and give to the have nots. Maybe corporations will shift focus back to their customer’s REAL wants and needs.
Comment posted on 2012-07-28 11:24:48 by: Dan.
Why get ride of Vb6 they could keep selling it and update it a little or no cost. dotnet they couldn't sell it and having trouble giving it away.. I moved to Apple now in 2012 MS is a dead company. No Dotnet in Windows'8
Comment posted on 2012-05-03 11:24:36 by: Michael.
What a load of apologist BS this article is.
Microsoft could have made VB backwards compatible, leaving the language syntax the way it was, while adding additional functionality to work within their “modern” architectural rules. Lets be honest here, we are not talking about incompatible bits of hardware, this is software. Any piece of software can be patched to work with any other piece of software, its all machine code underneath. Syntax could have been named anything, they chose to make it an entirely different language on purpose. In reality, whats the difference between “printf”, “print”, or “writeline” other then its what some programmer decided to name the command in the underlying code? Seriously, was it that big of a deal to add new properties to familiar controls, and rework the underlying code to be compatible with their new architecture?

This was all about the money....

There's no profit in Microsoft making things backwards compatible, and having to expend programming hours in making their old products continue to function. There IS money in making everyone else have to buy new software, take new classes, get re-certified, and buy all the books. You say, “.NET isn't compatible with COM”, when these are really nothing more then architectural rules that Microsoft set to begin with... And they never fail to change these rules every 10 years or so. There is NO reason why they could not have written all new code, placed it behind the same syntax, and driven a similar set of tools in a fashion that was familiar to programmers, other then they wanted to generate more profit by selling all new software and training.

Comment posted on 2012-01-11 23:32:00 by: anonyme.
Microsoft has created .Net only for concurrencing Java. COM is highly superior : As it is only an ABI, like DLLs, it is independant from any runtime or language.

VB6 was and still the best RAD language for WIN32 platform. .Net is a bad joke what will sink with Java. Then, maybe D will be the solution.

Comment posted on 2011-12-20 10:28:49 by: Andrew.
Microsoft has go to a wrong way to abandonment VB 6. Since VB.Net and VB 6 are two distinct languages. VB.Net is not compatible to VB 6. It’s a nightmare to VB 6 programmer to use this stupid language. The language syntax of VB.Net is much more like C# or Java than VB 6, Quick Basic or BASIC. The conversion wizard is broken which cannot convert the code completely. Almost all the old VB 6 code need to be rewrite again. The syntax is C#, C or Java like such as:
Try, Catch, Return x, #Imports, a = 2.
Many old features are no longer supported such as
Gosub, Varptr, Strptr, ArrPtr.
This language make the things more and more complicated. The syntax is very very long. The type restriction making jobs to be more complex. In VB6, there is no problem when converting byte array to string, in VB.Net, it’s an error when you try to do that. Such stupid error increase the unnecessary work to do for the conversion. It’s no longer RAD after VB6 changed to VB.Net. There is no advantages to compare with VC , Borland C Builder, Delphi.

Comment posted on 2011-12-08 20:52:38 by: Nunya Bitness.
I still use VB6 daily. Supporting an enterprise app with over 135 separate pieces & parts..(DLL & OCX), not counting the Main app with over 150 forms in it alone. Along with being the tail-end of 11 years of piss-poor programmers, going behind and cleaning code and trying to resolve performance issues. Yeah VB6 is a wonderful language... Thanks Bill.

I think IBM should have kept their license to GWBasic, and developed it to something to run under OS/2 warp, instead of trying to make a deal with a shyster.. IBM got screwed along with the rest of us. And Billy boy became the richest man in the world.. WTF?. Nice reward for being a thief..

Comment posted on 2011-11-17 21:47:12 by: Mark.
In 2007-2008, I was working for a medical agency on their in-house admin software, built in VB6. Clearly, many of the people who had worked on it before me were not qualified developers, and barely understood what they were doing. Some of the coding was laughably incompetant (for example, many forms held all their data in hidden textbox controls instead of variables). I doubt such awful software could have been written in any language but classic VB, which was popular precisely because it enabled people without any skill or training to hack together a windows application. When I hear people crying about how VB.Net is too difficult, I begin to wonder if these are the same kind of people who wrote that awful software, and my advice to you is that if VB.Net is too difficult for you to use, then you aren't cut out to be a software developer and should consider a different career.
Comment posted on 2011-10-01 10:44:36 by: osama alhasan.
vb6 is easier than vb.net
for example:
am using ADO and DAO in my database tables but can't find any DAO tools to update my project.
and new ADO is very very difficult.
what to do???!!!

Comment posted on 2011-07-26 21:56:58 by: Bilal Gharib.
Hi again. A button on the screen, when clicked, its font turns bold.

In VB 6 you write:

Command1.FontBold = True

Can you figure out what to write in VB.NET? Here it is:

Button1.Font = New Font(Button1.Font, FontStyle.Bold)

I have got a tough time to find out how to do it in VB.NET

Frankly, what do you think is easier?!

Comment posted on 2011-07-26 21:53:22 by: Bilal Gharib.
Simple Program. A circle on the screen could be moved by the four arrow keys. It is very clear that such task is much easier to accomplish in VB 6. You have to write at least three line codes to draw a fixed circle in VB.NET, while you can draw it just like as "Paint" in VB 6. Execuse me, but it is ridiculous to say that VB.NET is easier.
Comment posted on 2011-06-16 03:17:21 by: guccisneakers.
Only wanna state that this is extremely helpful, Thanks for taking your time to write this.
Comment posted on 2011-04-03 16:37:04 by: Andy F.
You need to look at the overall bigger picture... I have been in the business over 30 years and seen lots of great development systems go by the boards. While techies argue this point and that, few ever think about the basics - deliver solid software to end-users. In that, now-dead systems like dBase, FoxPro, Clipper, Databus, and many others served users well. But it is all tied to Microsoft controlling its "worlds". When I got into this business there were about 50 good systems - now there are essentially 3 - C#, VB.NET and Java. Is LESS better? No - because its simply a fact that not everyone is developing huge web-based apps - there are thousands of small businesses that just need quick, small apps. VB6 served its role in that way, as did Access for that matter - but what got really lost is there is no more RAD (Rapid Application Development) cause we lost those languages and systems. This is good? No. While techies argue COM versus .NET and VB6 versus VB.NET the real point gets lost: End-users pay more, wait more time, and get more buggy and complex apps. Thats progress the way Microsoft likes it - completely backwards.

Comment posted on 2011-01-07 12:55:46 by: Ignace.
It took me 2 years to rewrite a VB6 program in VB.Net (35.000 lines of code) (VS 2005, 2008). But it was worth the effort. VB.Net is far superior to VB6. VB6 is dead, go for VB.Net!
Comment posted on 2011-01-04 13:41:28 by: Margaret.
I'm using Vb6 for 2 years now, and I'm struggling with VB.Net, I can't rewrite my Vb6 code over to VB.Net, and I searched the internet...

can anyone pls help me? a website where everything is explained or a book for that matter!!

I have to learn VB.Net this year, because my work needs vb.net coding in our system

pls can anyone help me???

Comment posted on 2011-01-04 13:25:31 by: Roy.
After working with the Commodore PET in high school, I was somewhat hooked on programming and took out a loan to purchase a $2400 IBM clone (512K RAM, 20 MB HDD). I got into GWBASIC and BASICA and, eventually, Visual Basic 3. At that point, there was no turning back. I eventually did nearly everything possible with VB6 (except control pacemakers and the such).

I am in management now and do not need to have 'first-hand' development skills, but I will always appreciate the relatively powerful capabilities available to me through that seemingly amateur appdev packages. I remember the fussing that used to go on by C/C and Java programmers that VBers were not real programmers. While perhaps the OO structures were not entirely in place, a disciplined programmer could almost always get done what needed to get done.

Between the $2400 PC and VB6 (and the college education I did part-time ;-)), the foundation for my career was laid.

Yes, I did learn OO, Oracle appdev and administration, Java, and have done self-study on PHP, Python, and other Web-scripting languages -- just enough to get by -- but VB4 and VB6 seemed to be just what the doctor ordered.

Comment posted on 2010-12-18 16:13:12 by: Paul M.
Just looking at the first comment in 2006 (bottom of the page by Bill) made me write this. Obviously he is the real sucker because VB6 has/had become very popular for obvious reasons. I first picked it up in the year 2000 and wrote my first fully fledged application while teaching myself in 9 months. It was brilliant at the time and it got the job done... that's right it worked, yes I did hit many brick walls but I got it all sorted eventually to a fully functional product with a simple database backend.

Now I am back into working a new personal project and am asking myself do I go back to VB or pickup .Net ...

Comment posted on 2010-12-04 13:41:44 by: Mohamed Hassan.
i would like to have a visual basic.net book
Comment posted on 2010-10-29 05:25:17 by: Goofy.
Yes, we must keep up with technology. However, when M$ abandoned VB 6 they abandoned a RAD which had a specific niche. VB.NET is no RAD. The real world needs RADs, as well as high powered languages. Perhaps Microsoft Small Basic will be the new RAD for .NET (in time)? See http://smallbasic.com/. It will be interesting to see what unfolds.

Comment posted on 2010-10-11 06:17:32 by: Arun vasanth.
Hi guys,

We always should go with the latest technology in IT,We should think about the operating system compatibility.Now dotnet 2008 feels same as VB IDE and it is our duty to migrate from vb to dotnet.

The unhandled exception in VB is handled in Dotnet.

The Dotnet framework will take care of COM.

So guys get ready to meet challenges in dotnet

with regards,
Arun vasanth

Comment posted on 2010-09-21 11:38:51 by: Problems.NET.
Dot Net Framework crashes and the application dies or behaves weird. PosDotNet is supposed to handle OPOS but it doesn't work as well as the OPOS drivers. DotNet doest not have FTP components that can manage remote port number other than 21, VB has. If dot net was so perfect in the first place (year 2006 - refers to a specific comment) why was there a need for a new framework 4.0 today? OOPS! we forgot to add this in for the developers, let's release a new framework. damn.
Comment posted on 2010-07-20 06:14:34 by: glen.
The biggest problem with .NEt is that it can't be protected from pirates. Obfuscation is a joke, — there are one-click de-obfuscators that work perfectly. But hackers continually say in their forums that VB6 apps are the hardest of all to crack.
Comment posted on 2010-07-20 06:10:57 by: glen.
It's surprising that no one has mentioned that the successor to classic VB6 syntax exists, since some years, and is continually updated. Moreover, it even works on Linux/Apple as well as windows. It's: 'REALbasic'. Look it up, its newest versions work very well.
Comment posted on 2010-07-14 22:51:27 by: Denz.
VB6 was and for a little longer great for some projects. .NET is not a replacement but an alternative. What if I dont want to write a bloaty .net app with .net requirements?

I actually LIKE VB.NET and C# 2005 & 2010 (2003 was rubbish). But it does not allow all that I got from VB6. Now for native support, I need to turn to C really. That will teach me to use a MS proprietary development environment.

Comment posted on 2010-07-05 14:56:04 by: David R.
I feel pretty strongly about BASIC, as I grew up with it, and I wrote a 1500 word essay on my feelings for an against .NET, only to realize their is a 500 word limit, which in turn made me realize that I didn't really say anything with what I typed. To sum up what I said, I understand what is going on and why it needs to be done, I just think Microsoft could have spent a little more time trying to implement .NET on top of the existing Visual Basic, instead of just adding BASIC keywords to C#. I've been coding since I was very young, and in turn had to learn lower level languages and assembly to do what I wanted on the very underpowered computer my family had as a kid. My family is kind of old fashioned and has no use for a computer, so when I was younger my parents gave me a Commodore they got from a friend thinking it was some kind of Nintendo. I remember being incredibly excited when I got some old IBM running DOS because the couple hundred kilobytes of memory broadened my horizons so much, even though most of my friends at the time had computers running windows 95 (I'm 23). I still use the old QuickBASIC PDS as a hobbyist, and I've done things with that back when it was made probably couldn't even be fathomed (with just a little bit of help from ASM, and external libraries in C or Pascal. My point is that BASIC is not a toy language, it's a smart language. It's string handling features make it a great language on their own. Some hacker types think it's cool to write 5 lines of code to remove leading and trailing whitespace in C , when they could do it in one with BASIC, but when your writing code to pay the bills, no one cares that you can do it, they just care that it's done. And done fast. This is where BASIC excels. Visual BASIC is the best in RAD, and I think it still will be for sometime. I honestly haven't coded in a .NET language yet, and I probably won't for sometime as I don't do a lot of internet stuff in my field, but I feel that this transition could result in a lot of lost time and money if it's not done right, and it looks like Microsoft is once again doing things the way they do it best, clunky and irrational. I'm still taking the time to learn the language, because as goes Microsoft goes the industry as far as consumer software goes, but from what I can tell, we're all wasting our time learning C# with BASIC keywords. I think they should have came out with a VB7, announced it was going to be the final version and that C# was going to be the new standard for the rapid development of applications on Windows, and gave developers some time to adapt.
Comment posted on 2010-05-17 21:06:02 by: Tom Herndon.
I have a very successful side business (pull in about 30% more than my day job does), and my main products are written in VB6. Most of my users *LOVE* the fact that I can turn on a dime and correctly implement and test new features in an unbelievably short amount of time. VB6 was just made for this. May be a toy language, but it can whip the crap out of a "real" language from drawing board to production code. And I know what I am talking about, I work with 3 other languages for my day job, and have to dabble in 2 others.

Comment posted on 2010-04-09 21:22:59 by: JB.
I find many C programmers to be idiots, it takes a fact based person to learn syntax necessary for C, the VB guy can be creative while the C guy struggles to make sure his syntax is correct
Comment posted on 2010-04-09 21:20:02 by: Kbob.

I work in healthcare, and I have been working with many different types of languages for many years, i started developing as a young adult in the 90's with VB4, and then on to VB6 and then into the .NET World with the first release candidate and never looked back.

If you are a solid programmer, it really doesn't matter what language you utilize, it's about solving a business problem, sure biz objects are easier to create in .NET, however, that doesn't mean you cannot create an equivelent in VB6, you simply make your own collection classes by and large. What is important is the developers mentality and logic and creativity. The language does not make the progremmer, the programmer makes the language. I and many out there have been using C# nowadays, as well as vb.net, it's the unsaid standard in development.

To be honest, there are 4 main languages and IDE's in use today that I use almost all equally, they are VB.NET, C#, VB6 and VC , and damnit, it's 2010, Visual Studio has been almost dead for 8 years now. Business will not do away with apps that work and serve their functions, when that fails, they will get rid of them. I have seen one too many hospitals keep Win95 or Win98 machines up and running just to run old billing applicaitons, why? BECAUSE IT WORKS

As for you C guys bashing on the VB guys, WTF, a good programmer is defined by his ability to solve a business problem and translate that into code. Where in that definition does it say C# is smarter than any other language?

Comment posted on 2010-04-03 13:00:27 by: passenger.
I remember first using basic language on Zx spectrum in 1980. Then there was qbasic integrated on first DOS and Windows systems. Afterwards there was the miracle: Quick Basic 4.5 and 6.0 Pro with their complilers enabling nice exe(cutes) programms and keeping code compatibility 100%

Afterwards with the Windows era Visual Basic came on top. First it seemed stupid, as stupid where the Windows 3.1 at that time. But afterwards it was great. The basis of Basic Language was almost the same all that era.

Now what? Just crap "NET" progs for "technicians" and thousand of lines of code developed all past years from million of "simple" users around the globe just went straight to garbage while windows are still on the run.

You see, I can understand passing from qbasic for dos system to Visual basic for Windows system. But quiting now Visual Basic, why and for what?

I believe Microsoft ought to make Visual Basic 7 and 8 and 9 ecc with compiling capabilities on 32bit and 64bit systems.

Thanks GOD, and again, thanks GOD, some fellows developed this Dark Basic langauge for those who love basic and real 3D world graphics.
That should have been done my Microsoft instead years ago.
But who lost his brains, so Microsoft was to use them for it's own sake?


Comment posted on 2010-03-17 17:18:56 by: QatQat.
I have been a VB/ASP(VBscript) programmer and loved both. I have abandoned Visual Basic/ASP for Java/PHP when VB.NET came out as it was too much of a challenge to learn it and be productive in a short period.
Having said so, in the last 2 years I have had a need for intense SOA/WebServices use in my apps and I have rediscovered VB.NET. I have built windows forms very fast end easily, not the same for asp.net.
Using visual studio for web programming with the code-behing approach is clunky and you have no control over the page layout. VBscript was faster to code and more intuivive.

Generally my opinion on vb.net is the following: It is indeed powerful but, considering the complexity, compared to VB6, and considering that you have to learn a new programming technology from scratch anyway, why not use JAVA? java is complex but it is truly multiplatform, well documented, versatile, in a few words, a better and more complete environment. On top of it, IDEs are plenty and free as well. I have also found Visual Studio.NET compiler to really suck at times and to be much slower than VB6's one.


Comment posted on 2010-03-14 11:32:50 by: Frank van der Linden (NL).
Some 15 years ago, I had to choose between Apple and Microsoft, so I bought VB1. It was just in time, for I had found an algoritm in plant pattern generation (phyllotaxis), and I was programming in BASIC. The V in VB1 was important for me.
With the succeeding VB's, my program 'Apex' in www.phaselab.nl grew up to version 19.02 (february in it's 19th year) now.
At the first release of VB.NET I was confident and I bought it nearly instantly. But the migration from VB6 was clearly an impossible task. So I loose my money by my confidence.
'Apex' in itself is 3D. It's a pity that I cannot transfer in .NET, and use 3D hardware support.

Comment posted on 2010-02-27 05:56:22 by: Robert.
I still use Visual Basic 6 too. I also develop some stuff in C but somehow Im familiar with Vb6 and for me it still a perfect RAD tool. I will not move to .NET for various reasons. Maybe I stick with C and AutoIT for small stuff then.
Comment posted on 2010-02-22 18:41:56 by: Graw Hill.
pls can you send me the link to download VB 6.0 exe. I find this programming language easy than others ...

send to mcgrawhill02@yahoo.com

Comment posted on 2010-02-12 09:53:55 by: Jason.
A quote was mad above that VB programmers are basically inexperienced and VB is just a toy, It must have been a C programmer. I make 54K a year not bad for a toy. the code should meet the need, why spend 3 months writing C code when you can produce a VB app in a day - what our slanderous experts dont get is the fact that it all gets converted to machine code at the end of the day and VB actually converts to C in the background as it compiles. I guess I should learn .Net but i dont have the time. Plus I dont like change
Comment posted on 2010-01-31 17:18:10 by: Vinny.

The power of VB6

I wrote a compiler for a specialized language using VB6.

In six months!

Thought of converting to c# or vb.NET. It's a nightmare!

Comment posted on 2010-01-30 21:32:39 by: Elroy.
I hope VB6 lives forever. Now here's a question for you. Microsoft now has established NET applications, and they should no longer fear that it won't be taken seriously, so why don't they release a VB7 (COM based) now? I would certainly buy it. Also, with respect to this COM v NET issue, they seem to have almost deliberately broken so many things that have nothing to do with this: determining your own array bounds, forcing shortcut logic, doing away with fixed length strings, forcing a change in the way the binary operators work, deleting key words such as LSET, etc. Up until VB.NET, Microsoft seemed to "get" upward compatibility, and they just COMPLETELY dropped the ball with VB.NET.
Comment posted on 2010-01-15 07:19:02 by: Mentos.
For what I know in VB6 and VB.net is that .Net is more OOP than VB6. But even their are many changes in .Net VB6 coding still their and with improve features of programming and the IDE of .Net has more Objects and Controls than at VB6 specially the latest version .Net. But I still love coding at VB6 coz it is more simple for small applications.
Comment posted on 2010-01-08 16:26:48 by: Gayath.
i want to convert vb 6 project to vb dot net
Comment posted on 2009-12-27 00:58:42 by: Bee.
Idiots reign.
M$ abandoned VB6 because M$ is lazy and stupid!
VB.NET and C#.NET are essentially the same language so why waste time on VB6 when they can try to force users to adopt a new language under the guise of VB. VB.NET is NOT Visual BASIC. Does everyone remember what BASIC stand for? Look it up. Foisted a new learning curve on many folks who simply did not need it. They could have written VB.NET to be 100% source code compatible if they wanted to. Why not! There more VB6 programmers than all other languages combined. M$ is stupid as usual and NOT thinking about the users but about their own bottom line.

Comment posted on 2009-12-10 20:33:28 by: Luis C.
I feel really pathetic to see that some developers simply make fun of VB. They seem to think they are "macho" when writing code in other languages that require more complexity. It is assumed that the programming should be better with simpler for development. The key is not how difficult the language, but in the intellectual talent of the programmer. In their creativity. Many programmers of languages, which, as they are "male", display poor creativity and ingenuity in their projects. While many other programmers are superior, not because they use C , or NET, perhaps using VB6 or the like. The point is creativity, how useful to the user application, the ingenuity of the process.
VB6 has certainly been a very useful tool for programmers muchism intellectually superior to those of C and NET.
It is unfortunate that Microsoft appears to be silent on giving a personal explanation and direct. The forums that attempt to explain the migration of VB6 to NET seems that they are "playing" why Microsoft did that. I think that Microsoft should give a press conference in 2002, largely explaining their reasons, taking into account the harm in the name of progeso caused many companies that paid their software for years VB6 or earlier.
The Microsoft should come forward and not simply leave the matter to public performance.

Comment posted on 2009-12-08 14:57:01 by: gary.
VB is and was a 'toy' language. The only thing it ever succeeded in acheiving is allowing a whole host of people with no experience to buy a copy and overnight call themselves 'developers'. Then queue a whole raft of badly written, absolutely appaling UIs (having not learnt any conventions) to be bestowed upon a poor unsuspecting worldwide IT community.

Add to this the fact the IDE itself was slow, buggy and M$ even whilst creating the operating system and knowing all the common control dlls decided to wrap extended controls as OCXs causing an absolute nightmare of versioning and collisions of several VB apps being installed on a single machine.

I think M$ has released some stonking software over the years, VB was never one of them.


Comment posted on 2009-11-20 04:33:48 by: sjb.
I've been developing (and making a living) in VB since 1998, starting with VB3 - what a great product! VB also prepared me for VBA which I've also used over the years with Access, Excel and Outlook. I did use VB.Net for about six months, but found it to be a completely different, and difficult language. Not only do you have to contend with different versions of the .Net software, but with different versions of the .Net Framework - what a nightmare. And the Framework has quite a huge footprint to boot. Oh, and what about the many layers of intellisense with .Net? My gosh, how far down do I have to drill to simply set a color property?! Currently I'm finishing up a project in VB6 which, when wrapped up with its supporting files for installation, including a database, is under 3MB - now that's what I like. I hope to continue using VB6 until I retire, and then on into retirement for personal projects. In fact, I think I'll put my copy of VB6 in my safe deposit box; it's that valuable.
Comment posted on 2009-11-11 13:22:39 by: Mystro.
Looks like this is the latest VB6 Service pack
Visual Studio SP6

BTW charlie27 the best app for mp3 music collections that shows album art has got to be EJukebox

Comment posted on 2009-11-11 10:24:10 by: bestwindowscompiler.
Visual Basic 6 Service Pack 5 lets you compile to native code!
Microsoft would be so dumb to stop 32 bit vb6 exe from running on Win8. Windows apps should work forever. They should call it something other than Windows if they are going to kill perfectly good apps based on the Windows api.

Comment posted on 2009-10-21 10:33:11 by: Chris.
Nice article, and just what I was looking for as I compile a reasoned argument between VB6 and VB.NET. Plenty on the web on the side of "we love VB6 and never want to change", not so many on this side. Very useful.
Comment posted on 2009-07-29 15:21:35 by: vishwanath.
Change is imminent, its a way of life, its evolution. People need to learn and unlearn, Change shall take place whether thou shall like it or not.
Comment posted on 2009-07-27 11:00:38 by: private investigators.
Hello mate, I want to thank you for this nice blog. Would you mind telling me some secrets for a succesful blog ? Which could attract some visitors than it normally does. Please come visit my site <a href="http://www.patrolsecurityguard.com">security company</a> when you got time.
Comment posted on 2009-07-15 20:06:23 by: Matt.
I'll bet I'll come back to this thread in 2050 and it'll still have recent comments with one guy telling the other he's an a$$hole. =)
Comment posted on 2009-07-15 04:49:33 by: WILLIAM.
To Bill who posted 2006-02-08 09:47:48.

Bill, you are so full of shit, I KNOW your eyes are turning brown if not already brown. You pious SOB, explain to everyone how you knew so much back in the day! VB6's "apparent simplicity" had nothing on your NARROW MIND. You DUMB JUNIOR HIGH SOB, it's losers like you that cause many people to question developers. Although, I'm sure you are NOT a developer. Get a life asshole.

Comment posted on 2009-06-22 09:38:03 by: DGB.
I read your article and comments, but I still don't understand why Microsoft had to end with VB 6.0. Microsoft could make a VB.Net version without stop VB 7.0.
I write code with VB 6.0 (from 9 years) and VB.NET (from 2 years) also!
Maybe I'm idiot but why "much difficult" is better than "much easy"?
I make a webbrowser applications in VB6.0 (I used right now). I created a lot of features, options, restrictions .... I implemented security and speed (IE 7). The clients was very happy, no complain from nobody! Ok!
After 1 year I wanted to write the same browser applications in VB.NET. Was a nightmare and I can't implement everything that exists in VB 6.0 version! I believe I can make a progress with .NET language but I was wrong.
Now I make applications in both language, and VB 6.0 continue to make a good job.
And how many VB.NET versions? 1000, 2000, 3000? Sorry but I'm a pragmatic guy. If I spend a lot of time to learn continuously new programming languages, when I write new applications? It's not very efficient for a programmer, right? And, sorry, but I'm very interested about efficiency! That's all for me!
I'm not interested to learn 40 programming language to become some guru, I don't care about that! I'm interested just to write code for living! It's so simple!
Another problem is compatibility between applications code related to different version of VB.NET!
Anyway, a simple question remain: why hard is much better than easy in terms of efficiency?

Sorry for grammar mistakes!

Comment posted on 2009-05-18 09:25:48 by: Sad Vb6 Programmer.
It is very sad to know that VB6 will end after Windows 7. I am a VB6 programmer and use it for almost 9 years. It such a
stupid decision Microsoft has to dump VB6 to .NET. I believe millions of VB communities out there will be really upset and disappointed by the action taken by Big Bullies MS.

Comment posted on 2009-02-20 12:54:16 by: Thomas.
If you searching for an alternative Visual Basic like programming language this could be interesting for you: http://www.jabaco.org - Visual Basic for the Java Virtual Machine

Comment posted on 2009-02-18 18:12:37 by: Facepalm.
Very useful files search engine. http://Indexoffiles.com is a search engine designed to search files in various file sharing and uploading sites.
Comment posted on 2009-01-30 12:50:31 by: lito.
you are all correct. or maybe we are all wrong. from qbasic to its visual version . . . i was 33(?) y/0 then now i'm 58, am i to vanish. i spent all my leisure learning VB (dabbling). there is a middle road that MS could have taken for us VB lovers and .net passionates.
Comment posted on 2009-01-30 05:31:12 by: Childrens Behavior Problems.
Great job,
I think you did a great job by writing an article on this topic. I found this stuff very useful for me and I learned a lot from this. Thanks for sharing this with others.

Comment posted on 2009-01-25 20:48:16 by: Massimo.
Some company should work on a new SOFTWARE/COMPILER based on the logic and syntax of VB 6.0. they will make milions quickly !!!!

Comment posted on 2008-11-26 16:38:03 by: Anthony Leotta.
VB 7.0

The VB community had high hopes for VB 7.0. 7.0 was supposed to improve team development, source code control
integration, multi-threading, and a long list of annoyances.

VB.NET is a different language from VB 6.0. I am still waiting for 7.0 because I want a NATIVE COMPILED, ON-THE-METAL EXECUTABLE. I am not interested in JIT Compiled or Hosted Applications...I want what I want...and I want lean mean executables that run on the metal.

When I want .NET...and I have written alot of .NET..I will use .NET. But I still want Visual Basic 7.0 damn it.

I invested a huge portion of my life developing VB applications that used DLLs or OCX controls that I wrote in C .

I wrote applications that deployed all across the world and have been in use for 10 years or more.

I want my VB 7.0! I want all the bugs in VB 6.0 fixed and
I want better integration of versioned OCX controls. DLL Hell is a fixable problem and you don't need .NET to fix it.
The VB IDE could handle version upgrades using clever filename increments and a better COM manifest standard.

I want my VB 7.0! GRRRRRR!

Now I will get back to coding C#... ***sigh***

Comment posted on 2008-09-28 14:44:44 by: stephen.
I still have VB6 out there in a commercial world (external clients - ca nmany poster here say the same?) earning money where dot net still cant in 2008.

We considered using dotnet to augment our core C app. (c developer base is aging), and tweaked it to report on the state of the dotnet runtimes on the 25000 UK desktops it is on.

40% did not have dotnet 2.0.

Comment posted on 2008-09-08 08:51:14 by: billion.
.NET is good. but I have to agree with Solomon. .NET apps are way too easy to be decompiled by anyone. Too easy that your apps become open-source. People will surely make use of this .NET weakness.
Comment posted on 2008-08-22 03:56:16 by: Solomon.
Obviously no one has ever tried decompiling a .NET application .. it is soooooo easy to decompile it (a simple search in google decompile .NET shows it all) that only a fool would develop his application in .NET only to have all competitor's stealing his code ... when you deploy a .NET application you are putting your company's future at the mercy of its competitors ... talk about leveling the field for the lazy to compete with those who invest their life blood and time into building an application ... and of course only the naive would view all people as ethical ... an application from VB6 will give your company more security against its lazy competitors
Comment posted on 2008-07-28 16:33:27 by: Tomas.
My favorite megaupload search engine is megauploadfiles.com it’s the most powerful an easy to use. megauploadfiles.com has incredible speed of searching rapidshare links in the internet.
Comment posted on 2008-07-18 02:48:14 by: caligula.
But I agree with Gordy. MS wants to dictate the future of the web... and it's pure bullshit. The web will evolve according to the needs of people.. and MS be damned.
Comment posted on 2008-07-18 01:59:00 by: caligula.
This dialogue seems totally pointless. Every comment assumes that every programmer has the same objective. Are you all a pack of white-shirted IT corporate morons who sit in a cubicle staring a god-damn monitor 8 hours a day? Working for the corporate monsters? Jesus.. how pathetic. If you are creative, you can play just as interesting music with a washboard as you can with a piano. Don't you think a creative programmer can develop just as useful applications in VB 6 as they can in .NET?
You people are pathetic.

Comment posted on 2008-07-17 21:08:46 by: John.
To all you VB6 attachments.
You were never real programmers in the 1st place.
.Net is the best thing that could have happened to the IT industry and the reasons speak for them self when you think like a real programmer and go look at what you can do with it.

So stop moaning and start doing B.A or some other boring job.

Comment posted on 2008-07-05 17:32:55 by: Scott M..
After 6 versions and 6 service packs for the 6th version, Microsoft didn't "abandon" anything.

In the software world you either adapt or become irrelevant. VB 6 was becomming irrelevant as Java and the web began to grow up around it.

It's really that simple.

What we have now is a modern, fully OO, and mature programming language that can compete at every level with any of the other OO languages out there. We have this available on a development platform that provides an infinite amout of additional features and performance to the programmer/user. Yet, there are those who complain that VB .NET is harder than VB 6. Duh?! That's because we are no longer working in a simplistic programming environment.

Comment posted on 2008-04-07 12:08:30 by: Srinath Sharma.
I am a great fan of Visual Basic 6.0 and it is very sad that microsoft has discontinued its development for the Visual basic 6. Rather Microsoft would have improved VB6 to VB7 with all the features of vb6 added with more functionalites.

Microsoft will loss its charm and they will have to pay for it. Microsoft have already started lossing its market and now they will shrink like TITANIC.
I request Microsoft " Bill Gates " for bringing back Viausl basic 6 to regains its charm and beauty of coding.

Srinath Sharma

Comment posted on 2008-01-28 11:27:15 by: Jack.
Programming capabilities in VB6 or VB.net or any other language is more the capability of the programmer than the programming tools. Good programmers can write good code in any language. However, writing a good application often depends on how fast the OS can process the data. Any good programmer can tell you how fast he can read 100,000 or more records. I am finding with the new VISTA OS that reading and writing a lot of records is up to 3 times slower. I have written the code in VB6, VB.net and C - - Microsoft tells me that I need to rewrite and optimize my code. The code in VB6 is 3 lines long - - it runs 3 times faster on my Professional XP as it does on my VISTA test machine. I am willing to send the code to anyone that is interested.
Because of this my main VB6 program that I support loads with in VISTA 3 minutes, compared to loading in 22 seconds on XP. A lot of companies are faced with this issue with no solution. Just try reading 1,000,000 records (sequential or random) in VISTA compared to XP. I'm sure you will get the same results. I have details on the basic cause for those that would like to email me.

Comment posted on 2008-01-28 11:07:19 by: Jack.
The simple truth is VB.net is a lot harder than VB6 - - Ending VB6 will cause a lot of programmers to loose their ability to make simple to complex programs. Writing code to read and write data to files is very complicated in VB.net, where in VB6 you can with one or two lines of code read, write, append files in both sequential and random files. Try converting a sequential file to a random file in VB.net and you will loose your mind, especially when you want to read the random file and you can't use lset commands.
By the way I've earned over $200,000 for the last 10 years writing VB6 code. I won't give it up.

Comment posted on 2008-01-15 00:40:22 by: Ken.
VB6 = Covered Wagon
VB.Net 2003 = Volkswagon
VB.Net 2005 = Corvette
VB.Net 2008 = Porshe

VB.Net 2011 = ?
c'mon get with the program

Comment posted on 2007-12-24 06:30:53 by: Steve B..
In VB6 I could use the Rich Text Box Control to make a simple help screen and use MS-Word to create the text. I tried to use the Rich Text Box Control in VB .Net. It did not work at all. So much for VB .Net being better.

Also since the new VB .Net syntax is so similar to C#, what is the point in learning VB .Net? It has been made redundant since it is close to C#. And since C# is so close to Java, why go with Mico$oft at all, Why waste the time. Mico$oft will just come out with a new version later and you will have to change again.

Remember it is not a bug, it is marketing feature.

Final Note, Micro$oft will not create a VB7, to do so would mean they made a mistake. Just like Coke Classic.

Blessed Are They That Expect Nothing! For They Shall Not Be Disappointed.

The old is not necessarily outdated and the new is not necessarily better. Admiral Hyman G. Rickover - Father of the Nuclear navy

Comment posted on 2007-12-21 07:46:38 by: Ross.
To correct a something:

"Hmmm, given they did exactly that by shipping C and C# in the same box, this would seem to be a totally baseless argument at best. At worst, it's condescension of a very ugly sort. "Pity the fools," huh?"

C and C# are very VERY different animals. C# is very similar to Java, but somewhat more powerful in that it has pointers and method pointers (delegates.) It's basically a cross between Java and C (structurally, not syntactically.) Syntactically, it is almost exactly the same as Java. C is not object oriented at all. It is a much lower level language. C is neither structurally nor syntactically similar to C#, except just the names of the loop structures, the line terminator, the block delimiter, and the comment delimiters.

Overall, I would have to agree with most of the article and the comment of Larry Smith. Personally, I learned to program in VB5, but today I highly prefer C# over VB6. VB6 was useful for RAD, but (in addition to being based on what is now an outdated architecture) it encouraged some pretty bad programming practices. Sure, there are a lot of people who wrote good VB6 code, but there are also a lot that wrote really bad VB6 code. C# (as well as Java) are much better about enforcing good programming practices.

My personal preferences for now are C# for GUI applications, C or C# for servers or other more complex applications, and classic ASP (VBS) for web stuff. ASP.NET does seem to have several advantages over classic ASP (especially the ability to use non-sandboxed programming languages and the .NET framework,) but I really hate automatically generated code, especially automatically generated code that also generates a couple of dozen XML configuration files. Way too much overhead for my taste.

As for the comments on having to install the .NET framework to run VB.NET (or other .NET code,) almost all Windows installs already have the .NET framework installed. The Framework is pushed out by Windows update whenever a new version is released or a service pack or other update is released. If you keep your Windows install up-to-date, you should already have an up-to-date install of the .NET Framework.

Finally, as has been said by several other people, you should not ever just know one language. Different languages suit different problems. You should be familiar with several different programming languages of different types, if you want to be a good software engineer. For example, while it may be technically possible to write a web server in VB6, it would be the most convoluted mess of hacks you've ever seen and it would likely be horribly inefficient (especially due to VB6's lack of control over threading.) However, if you were writing a simple graphical text editor or some other simple GUI application, you could write a perfectly fine solution to it in VB6 (or C# or Java) in about 1/100 of the time it would take to write it in C (if not less.) While the C solution would probably run more efficiently, the difference would likely not be noticable at all to the user and the C#/VB6/Java version would probably be far more manageable.

Comment posted on 2007-12-13 05:36:52 by: ceh8c.
It is a shame that MS did not continue the VB6 line. If you're a dev on VB6 and you're forced to upgrade, many Vb6 devs 1st have to learn OOP... since the complexity of OOP in VB.NET and C# and Java is equivalent, the world moves in any direction (away from MS). .Net is also poorly integrated with Office and other COM applications, compared with VB6. Finally, the .NET runtime is a ball-and-chain. Try downloading the New York Times Reader. The .NET runtime takes 15-20 mins alone to install on most machines (after a ~20MB download); huge problem when you want to ship a light 3MB app. MS screwed up. OOP is a brilliant tool for larger scale software engineering but unnecessary in the RAD market, as evidenced by the overwhelming success of VB in the 90's. Read the account sometime of Microsoft's internal use of .NET in Longhorn (all the .NET code eventually had to be removed prior to Vista rebranding and launch and was rewritten in C ). Tragic.
Comment posted on 2007-12-05 10:45:38 by: Nissar.
I have quite a few VB6 applications still going strong and no intentions of porting it to .NET. I am quite aware that MS will never come up with a new version for VB6 - perhaps not even an SP for it. Who cares as long it works.
Comment posted on 2007-11-28 02:24:53 by: alan .
I too am stuck using visual 6.0 and would love to switch to .net language. But I tried to convert the project files using the .net conversion tool and good luck it dosen't work. I guess the world too would like to get rid of serial ports as well but there still being used. Just like credit cards where the world says embossing on card is dead and so is Magstripes but just open your wallet and see whats inside. Not everything runs on the network.
Comment posted on 2007-11-24 16:18:46 by: Mayflower.
VB6 offered cirect control over the Windows API without a framework. Windows native. That was what was so great about it. The .NET framework can be a hassle at some times, and the only way to develop Windows Native easily and quickly is with VB6. If COM could be re-invented, along with VB6, the world could be a better place.
Comment posted on 2007-11-19 05:20:01 by: Gordy.
You don't make billions of dollars by standing still. Microsoft hasn't released anything since 2003 that interests me - and I was a Microsoft fanatic for 20 years.
VB6, Windows XP, Office 2003 & SQL 7 formed the apex of Microsoft's creative talents. Everything since has been marketing and revenue based and almost completely useless for my purposes. I'm an Aerospace Engineer and I'm looking at leaving MS when they start breaking my code that's been running for decades. If I've got to re-write it, it won't be in .Net. It's sad really, but I'm not interested anymore...

Comment posted on 2007-11-12 20:58:58 by: Dany R.
I don't think it was stupid to use VB6, even though some people think that way here. I think they are stupid to think that way.

VB was the most use language in world and probably still is because of a huge number projects in 90s and early 2000.

In no way anyone should bet their career in ONE technology. It goes for C or Java too. I worked with VB6 but I also learned Java and .NET I can build web apps in ASP, Flex Ruby on Rails etc.

VB was good if you take advantage of its force. Coding simplicity. That gave you a lot more time to design and architect the application properly. Unfortunatly, a lot of people went straight to coding because it was simple. BIG mistake. That one think which created a lot of mess in many VB based apps.

What Microsoft should have done? Well they still could have make VB.net, but intead in re-inventing everything, they could have made a better effort to keep more of what VB6 was. You could still add all object oriented support by adding a few keywords and couple of things here and there. I feel that they've done more than that in VB.net.

I cannot say I am against it. I just think they went to other way to make sure everybody know that VB.net is a "real" language.

Comment posted on 2007-11-04 16:40:28 by: VBC Cam.
Jesus, when I read this article about VB I thought 'Suckers', because although I'm a BASIC man by heart, I've always written tricky-things like Windows Socket support in Visual C# and then linked the DLL I wrote in VC# to VB. This tatic has been in the family since 1991, when my uncle used C# to write Quick Libraries for VBDOS - He kept the source and found it was also compatible with VC 1.0, and so on...
Comment posted on 2007-10-27 17:56:04 by: MikeB.
Interesting array of opinions. I really wish that Microsoft at least had the aforementioned VB 7, but, oh well. Anyway- they may not have VB in .NET, but they sure as heck have Java, just not in name. C# seems AWFULLY similiar to java, in all but the libraries used (instead of java libraries, it has .NET), and change a few keywords, and BAM! C#. I suppose microsoft was partway through J .NET and was forced to withdraw it because of the Sun lawsuit. Now, why throw out all that fresh code?....
Comment posted on 2007-08-18 10:39:48 by: Phil.
I believe all this object-oriented nerd clutter is simply an MS marketing ploy. VB6 was too easy. They had to make it complicated to sell it to the OO-obsessives along with certification etc. Now I read that prefixing variables with type identifiers is discouraged in .NET as the preferred method is to hover a mouse over the variables! What if I want to print it out and read it in the bath??? Anybody got a waterproof, paper-reading mouse? You have to ask, "in 2007, why is programming more complicated than it was 10 years ago?" The answer is "money"...
Comment posted on 2007-07-09 02:45:01 by: Victor Ng.
Visual Basic is not a stupidity programming language as someone out there commented. Guys, we are talking about BASIC here, a simple, easy to use programming language, do we still know the meaning of this acronym? Are we still applying it? That's why it was called BASIC because it has to be "BEGINNERS ALL PURPOSE SYMBOLIC INSTRUCTION CODE". Now if you want it to be like a C-language you don't have to call it BASIC anymore. I hope all those arrogant comments would understand this.
Comment posted on 2007-06-19 19:09:38 by: Dan.
Tony, I still use Hungarian notation. Intellisense is nice but I don't like having to hover the mouse over the screen one variable at a time to see what their type is. It's a lot faster to use a naming convention that tells you on first sight.
Comment posted on 2007-06-19 17:08:24 by: TonyP.
I don't think anyone is trying to be snobbish. I think some of you are having a hard time accepting reality. I use to be a classic ASP (VBScript) programmer. I am thankful I made the switch when I did. I went from classic ASP to VB.Net 1.1 and then to C# 2.0. Moving from VB 6.0 to VB.Net is not hard at all. You just going to have to drop some bad habits.

For example, in VB 6.0 you did this

Dim blnValid As Boolean
blnValid = CBool(somevar)

in VB.Net or C#, you do this

Dim valid As Boolean
valid = Convert.ToBoolean(somevar)

Convert is part of the .Net frameword. You code to the framework and not the language. Notice I didn't use bln on the variable. Hungarian notation is discourage in the .Net world. Why? When you hover the mouse over the variable, it will tell you it's declaration. In this case, it will say

Dim valid As Boolean

The intellisense in .Net is far superior and will help you become more productive as a programmer.

Comment posted on 2007-06-16 08:08:36 by: Timothy Kondos.
Simple minds >>>

> Want an easy code for a small program you want to see it windows poped? Try Visual C or Visual Basic 6. The most painless way. :)
/// Example ///
A simple engineering calculator or a Phone Book manager

> Want an easy code for a high quality program you want to see it windows poped? Try .NET studio or ASPI.NET. The professional way. :)
/// Example ///
A database monster searcher

Comment posted on 2007-05-29 07:15:48 by: James Baxter.
Sure there are some minor differences between
VB6 and VB.net but tons of your VB experience
will still be the same and is still useful.

Any VB6 programmer who whines that it so difficult
to switch to VB.Net perhaps should consider a career
change instead.

Comment posted on 2007-05-24 09:21:45 by: Madhav.
Terrific article.

When we look at search statistics, Access and VB still command sizeable search traffic.

Visual Basic searhces are more comparable to Python.

According to a survey by computerworld, Visual basic is used by 62% of developers surveryed.

And we do keep selling our books from our sister concern Vkinfotek, Visual Basic books along with VB 2005 and SQL books.

Comment posted on 2006-10-06 07:12:12 by: Gary.
I want to buy a copy of vb6 pro with the hope of selling some software. Do es anyone know where I could buy a second-hand original or cheap new?
e-mail supplied

Comment posted on 2006-09-30 02:39:38 by: Anonymous.
I wrote all of the programs listed at www.nationalbridgeinventory.com in VB, including one which provides detailed data on every public bridge in the country, and another which provides graphical structural analysis of bridge-truck interactions. I purchased .NET a few years ago, but never had the time, need or inclination to learn a new programming language. They should continue to support VB for the many people like me, who need a simple language for everyday tasks.
Comment posted on 2006-09-30 02:28:53 by: White Tornado.
I'm not a programmer, just a lowly civil engineer. I've been programming in Basic since the days of DOS (20 years) and started VB programming with version 3. I'm very sorry to see the end of VB, as it was a language where non-professional programmers could quickly write very useful programs. I still make extensive use of VB5 in my professional work, including reasonably involved bridge engineering applications.
Comment posted on 2006-09-04 09:36:45 by: Triss.
Bill, what a stupid comment. Grow up.
Comment posted on 2006-06-12 02:20:39 by: Edgar Rodriguez.
Conclusion: Borland has better products, and ready for .NET and the worst sales department, and Microsoft hasn't the best products but has the best sales department in the world...

Keep in mind that Anders Hejlsberg was taken from Borland just the time he built Delphi and he put all he knew from the VCL into MFC and .NET...

Comment posted on 2006-06-07 00:29:04 by: Dave Atkin.
All very well to extoll the virtues of a new operating system or language but can anybody give a quick consise list of all the new things I will be able to do with .NET that I can't do now? Forget the pretty interfaces etc. The other point is that a lot of real people still use Windows 98SE how many will stay with Windows XP. Quite a lot I am sure as there is no real advantage in sending Microsoft money to gain nothing in return.
Comment posted on 2006-06-04 16:52:18 by: Tyrone Lee.
"It was clear from the beginning that VB6 was a poorly designed beast masked by its apparent simplicity. It wasn't simple, it was a complete mess under the hood."

But then again, so is Windows.. VB was a great language for rapid application development on an already inferior OS. The fact that the OS had memory leaks, limitted memory access etc.. has nothing to do with the way VB could create quick applications.

VB.NET is the worst language I've ever seen. It's OOP over kill. Commercial developers must also remember, the code written in .NET uses more objects than ever. Using objects does not constitute "copyrightable" code. So the code you generate is NOT something to you copyright & sell.

Latest versions of Visual Studio Magazine are already starting to "back-pedal" on the notion that .NET isn't powerful enough for *real* developers. The bottom line is, increase your skillset across a wide variety of languages and platforms.

VB, C/C ,& Java.. You should be able to program to native code languages, not be stuck in a slow BYTE COMPILED language with a 24 MB runtime. (Horrific!)


Comment posted on 2006-04-21 09:58:51 by: Andrew Mayo.
Monstrous hacks, eh?. So you want to convert 4 bytes to an int or extract the low order byte. Well, how about this?

Option Explicit
Private Type ints4
byte1 As Byte
byte2 As Byte
byte3 As Byte
byte4 As Byte
End Type

Private Type int32
value As Long
End Type

Private Sub Command1_Click()
Dim ints As ints4
Dim longval As int32

ints.byte1 = 1
ints.byte2 = 2
ints.byte3 = 3
ints.byte4 = 4

LSet longval = ints
MsgBox Hex$(longval.value)
'or the other way round
longval.value = RGB(&H20, &H30, &H40)
LSet ints = longval
MsgBox Hex$(ints.byte1)
End Sub

Of course, you can't do that in .NET. LSET wasn't ported. Draw your own conclusions from that!.

Comment posted on 2006-04-08 10:32:19 by: Tim Anderson.
Re. command line compiler, sorry I wasn't clear. You can command-line compile with VB6 by running vb6.exe with arguments. It differs from the .NET vbc.exe compiler in several ways:

- vb6.exe is also the executable for the IDE, whereas vbc.exe is independent of the IDE

- vbc.ex is a free download, whereas vb6.exe is part of a paid-for product.

- the .NET Framework SDK has all the documentation you need to write vb.net applications without installing Visual Studio, whereas as far as I know the format of things like .frm and .vbp is not documented (though you can probably figure it out)

One of the consequences is that alternative IDEs exist for vb.net (aside from Visual Studio), whereas as far as I know there are none for VB5 or VB6.

Comment posted on 2006-04-08 08:27:55 by: bob.
"VB .NET has a command-line compiler"

...and this differs from VB5/VB6 in what way??

Comment posted on 2006-04-05 19:13:08 by: Karl E. Peterson.
"Or [Microsoft] could have done both VB7 and VB.NET. Confusion would reign."

Hmmm, given they did exactly that by shipping C and C# in the same box, this would seem to be a totally baseless argument at best. At worst, it's condescension of a very ugly sort. "Pity the fools," huh?

Citing Verity Snob as someone with a clue should have been reason enough to kill your credibilty, I suppose, but I doubt many followed that link. This nonsense is over the top.


Comment posted on 2006-04-02 09:11:01 by: Marco van de Voort.

You make an excellent case for having a different tools vendor than OS vendor.

The problem with them being the same is that you don't have a tools vendor. The tools line is much lower in income than the OS line, and will always suffer in strategy decisions.
... and so does your ability to maintain legacy apps.

Comment posted on 2006-03-30 10:01:03 by: Jim Irwin.
I am beginning studies in web development and my college is still teaching VB6 (along with C , java, etc.). One of the biggest problems with converting from VB6 to .Net is the cost of buying new licenses for your development suites--this can be quite hard for small start-up companies like mine.
Comment posted on 2006-03-22 20:45:49 by: Larry Smith.
Interesting and well written article. Overall, it's not so hard to make the switch to C#. I think that expressing code in C# is much cleaner and easier than in VB. I used VB for 6 years, and always cringed a little inside whenever I had to use a line extension character for a long statement.

Having made the jump to C# over 2 years ago now, I find it's actually difficult to "think" in VB terms anymore. Don't fear the change, just get in the water and swim.

Comment posted on 2006-03-16 21:59:42 by: AC.
below please do not type the [] for the test.cs or test.vb. They are just to show the start of some code.
Comment posted on 2006-03-16 21:57:22 by: AC.
VB .NET is not hard to switch to. If you are scared that this language will be frozen than consider this. Very simmaler code can be used in VB .NET and C#.

Here is an example

VB .NET (2.0)
Public Sub Main(String[] args)
' Write Hello

' Write the first argument to the console
End Sub

C# (2.0)
public void Main(string[] args)
// Write Hello

// Write the first argument to the console

Very close. In fact the only difference is // is the C# comments instead of ', lines end in ; in C#, casing, and void is C# lingo for Sub.

Download the .NET Framework 2.0 SDK. Use the prompt to compile. For VB .NET type vbc test.vb and C# csc test.cs. The result will be the same. This is a simple example and huge projects may have huge differences. An example is in VB6 CStr(67) would convert 67 to a string, in VB .NET you would use System.Convert.ToString(67). This is for the Object Orented features.

Comment posted on 2006-02-17 17:04:25 by: Steve.
I agree with Bill's comment. I have dumped alot of energy into learning vb6, and now it is dumped. So now what...buy vb.net professional?.......I think I'm better off learning Java or C . VB6 was simple.....and now I'm gonna pay!
Comment posted on 2006-02-14 05:47:07 by: hh.
VB was the best language and very very nice for SIMPLE applications.Even microsoft initially had not thought that it would be so popular .

Comment posted on 2006-02-09 02:08:27 by: Tony.
I continue to used Visual Basic to implement a number of things in Windows. It is a great development tool for COM as stated in the article above. However, I complement my applications with ones written in Visual C 6.0. I have not migrated to the .NET platform (although I have used it just to experience it). My primary reason for not migrating yet is that I develop most of my applications using the MFC and ATL frameworks which have continued to be supported even in the latest versions of the Visual C products. I have heard that the updates are nice but I have yet to find something that I cannot code in C 6.0.
Comment posted on 2006-02-08 09:47:48 by: Bill.
You'll always pay for your folly.
Developers who jumped on the VB/COM bandwagon and bet their future career on VB6 made the wrong choice. It was clear from the beginning that VB6 was a poorly designed beast masked by its apparent simplicity. It wasn't simple, it was a complete mess under the hood. Just that most VB6 lovers (or should I say suckers) were just not smart enough to realize this, and now they are gonna pay for their stupidity.

You are welcome to comment on this page. For your guidance, HTML is not supported and URLs will be displayed as plain text. Add your comment here:

Your name: 

Your email (optional - will not be displayed or made public):

Type this code:    

Your comment