Bring back Classic Visual Basic, an improved version of VB6
The silent majority of VB6 users did not ask for changes that came with .NET
We request Microsoft brings back classic Visual Basic as COM development is back with Windows 8.
David Platt wrote an excellent article about why classic VB still thrives:
We have read all of the comments on this thread and I’d like to thank you for providing your constructive feedback on this issue. Instead of merely repeating our support and migration guidance that has been laid out on http://msdn.com/vbrun, I’d like to address some of your specific comments here.
To play back the feedback themes we’re hearing:
- VB6 is awesome
- VB6 needs to be brought forward and maintained: in a new release or OSS
VB6 was and still is without a doubt awesome. VB6 made developers incredibly productive building a breadth of applications and as a result we have a wealth of applications and passionate developers to this day in 2014. One way I see our mission in developer tools is to empower developers to solve problems. This includes both today’s problems AND the problems of tomorrow. VB6, as you all have stated repeatedly in this thread, is an excellent tool for solving the problems of its day. We also stand behind our decision starting in 2002 to meet the current demands of our developers and the industry with .NET. For the scenarios VB6 set out to do, we see VB6 being “complete”. We feel good about VB6 being able to continue maintaining their applications for the past 15 years. Current needs ranging from distributed applications and services, to web applications and services, to devices, to new architectures and languages, required fundamental changes to the whole stack. We looked at how we could accommodate these needs through incremental changes to VB6 while maintaining its essence, and that was not possible.
To address the modern needs we would need to go far beyond updating the language. We have to remember that VB6 is not just a language. VB6 is a language, a runtime, a platform library, a tool/IDE, and an ecosystem tightly packaged together in a way that made all of them work well together. We’ve worked with many customers on migration from VB6 to .NET and found that while yes, there are language changes, the dominating factor in migration difficulties isn’t the language differences. Even open sourcing the language/runtime wouldn’t solve the fact that VB6 was thought for a different set of problems, and the fact that its strength came from the end-to-end solution provided by all these five pieces working together. Take a change like 64bit, the complete runtime, tools and ecosystem chain would need to be retooled.
So, moving forward what can we do? Where we have been able to help move forward is in our stance around support and interoperability. The VB6 runtime it is still a component of the Windows operating system and is a component shipped in Windows 8.1. It will be supported at least through 2024. This ensures your apps and components continue to run as you incrementally move forward to .NET. The support policy is here: http://msdn.microsoft.com/en-us/vstudio/ms788708. There are numerous interop strategies that we developed and evolved to enable incremental migration as you upgrade your skills, described here: http://msdn.com/vbrun.
In summary, VB6 was awesome. We agree. We don’t expect or demand anyone to throw away their code or rewrite from any of our technologies unless it makes business sense for them to do so. We have to innovate to enable our customers to innovate. It is not a viable option to create a next version of VB6. We stand by our decision to make VB.NET and the .NET Framework. We think they are awesome too. It is not feasible to open source VB6 tools chain and ecosystem. The VB6 runtime was last shipped in Windows 8.1 and will be supported for the lifetime of Windows 8.1. Support and interop are great tools to move forward incrementally.
I hope you feel we’ve listened to your feedback and that I’ve explained things well enough that you understand our decision.
Group Program Manager
Microsoft Visual Studio Cloud Tools
Please continue to support VB6 programming. It is much better than VBdotNet.
"I have a confession.. I tried to leave VB6 and it did not work out. Spent 2 months using the latest delphi, and don't get me wrong it has some really cool features. But nothing compares to VB6 ease of workflow and power. "
Good to see you back :)
Yes there was bias from C# fanbois too, but I guess that was to be expected.
I possibly didn't see as much bias from companies that you did. Many initially wanted VB.Net, but once they realized there wasn't a simple migrate from their existing VB6 apps to VB.Net this became less important (OK I had to explain to them it wasn't just an upgrade, but a rewrite).
Many chose not to rewrite, those that did realized they could change languages to C# or Java, or move to a web app.
Rick Jones commented
I wasn't talking about bias from the VB.net crowd. There was a lot more of that from the C# mob than them. It was bias against VB 6 developers from the companies I interviewed with. They just assumed that you couldn't write good code and did all your work by cut and paste. They'd sooner hire somebody just out school that learned VB.net as their first language than experienced VB 6 developer who'd learned it.
"VB.NET, which nobody uses, is hated by all right-thinking people, and probably smells bad is at #8. VB6 is at #14. Draw your own conclusion."
To put that another way, VB.Net is 0.231 percentage points more popular than VB6. A negligible difference.
"The bias against VB 6 was so bad it dragged down VB.net with it even thought it was as good as C# and in some ways better."
You are right. There was (and to some extent still is) a virulently anti-VB6 faction among VB.Netters. You can see some of their posts here in this thread (thankfully not so much recently).
And yes, their bias also dragged down VB.Net. With all the infighting it isn't surprising many developers moved to C#, and even more moved to non-Microsoft languages.
Rick Jones commented
I remember those days all right. The bias against VB 6 was so bad it dragged down VB.net with it even thought it was as good as C# and in some ways better. I finally switched to C# and removed all mention of any version of Visual Basic from my resume. After that I started to get more job offers for more money. I remember reading that C# books outsold VB books by 3 to 1 and thinking that I wasn't the only dealing with this.
@Classic VB6 Programming
“The number of developers using .Net is, and has always been, much less than the number of VB6 developers at the height of its popularity.”
The current number of .NET developers is estimated to be about 8 million. Oracle estimates Java at about 9 million. That beats the 6 million classic VB had at its height of popularity.
“VB.Net was always C# with a different name and a different accent.”
Having coded extensively in both languages I have to disagree. I would say that VB.NET is “a” Visual Basic but it’s not “the” Visual Basic. It does feel very BASIC-like to me even when I’m switching between it and VB6.
“The majority of VB6 developers didn't move to .Net, and of those that did many chose C#.”
If you were working for a company that switched to .NET and you didn’t want to learn it you would be fired, let go, dismissed, encouraged to pursue new opportunities elsewhere, kicked to the curb, etc., etc. In other words, replaced with someone who would learn. I saw it happen over and over.
“The existing customer base. Most of the 6 million VB6 developers. But they weren't given the chance. They certainly didn't go for VB.Net, even when offered it free of charge.”
Obviously not since the Community Edition wasn’t around until 2014. But they weren’t given a chance because Microsoft wasn’t going to ask them first. No, they first talked to the management in charge of development at the companies where the majority of these developers worked. When the people who sign the purchase orders for development tools want one thing and the rank and file they hired want something else who do you think is going to get their way? Especially when that rank and file is easily replaced “bus drivers” as David Platt puts it. Saying the “existing customer base” would have bought it is wrong because the majority part of the “existing customer base” for VB6 was those companies. If they weren’t interested in an updated VB6 then where was the market for it?
“The win-win would have been C# (competing with Java as successfully as it does today) and an updated VB6 as a "simpler" development language, with possibly more developers than C# has, targeting a different market.”
The problem with this is that there was no market for “simpler” development languages or the developers who wanted it. At one time anybody who could drag and drop controls on a form and write some connecting code had a license to print money. But by 2003, if you couldn’t deal with at least VB.NET you weren’t wanted anymore. Over and over I heard hiring managers and clients tell me that they weren’t hiring “that type of developer” anymore. The VB gold rush was over. It was unfair to tar all VB developers with the same brush but that was the attitude back then.
“Face it. VB.Net was and is a failure.”
I did quite well teaching a “failure” to companies in my area. Many of the students I taught VB6 to ended up with the insurance companies and highly recommended me. I wasn’t planning to do it but the money was just too good to turn down. VB.NET was attractive to the insurance industry because of its superior (at the time) interop capabilities.
“and still rates highly in the Tiobe index.”
VB.NET, which nobody uses, is hated by all right-thinking people, and probably smells bad is at #8. VB6 is at #14. Draw your own conclusion.
>> and still rates highly in the Tiobe index.
Just amazing how high VB6 rates over many languages that are still actively being developed.
THINK ABOUT THAT! That is some really amazing stuff I tell ya.
VB6 deserves to be in the hands of a custodian that will honor the past, present and future industry impact by contributing modest development to such a unique gem in the software world.
>> "Microsoft gained in C# a (worthy) competitor to Java, but lost the bulk of their developers in doing so.
>>>> No, that’s another persistent and much-loved VB myth but that’s not what happened."
Do you think it is a myth that C# is not a worthy competitor to Java? ;)
No, of course not. C# , though never as popular as Java, can certainly be regarded as a success.
The number of developers using .Net is, and has always been, much less than the number of VB6 developers at the height of its popularity. The majority of VB6 developers didn't move to .Net, and of those that did many chose C#.
VB.Net was always C# with a different name and a different accent. VB.Net failed because it couldn't attract VB6 developers. If you can't bring your existing customer base with you, you fail. VB.Net was the 'New Coke' of programming languages.
>> "Have you ever read the Visual Studio Community Edition license terms?"
Irrelevant. The failure to persuade VB6 developers to move to VB.Net was nothing to do with license terms. Even when supplied free, VB.Net wasn't successful.
It wasn't the license terms that caused VB.Net to fail, it was the product itself. It tried to address a tiny market - developers who wanted the features that Java or C# offered who also didn't want VB6 compatibility.
>> "An updated VB6 wouldn’t have been a win-win of any kind. Who would have bought it?"
The existing customer base. Most of the 6 million VB6 developers. But they weren't given the chance. They certainly didn't go for VB.Net, even when offered it free of charge.
The win-win would have been C# (competing with Java as successfully as it does today) and an updated VB6 as a "simpler" development language, with possibly more developers than C# has, targeting a different market.
VB.Net failed because it didn't address either the Java market or the VB6 market. It was squeezed from both ends - developers looking at Java moved to C#, developers wanting an updated VB6 refused to move to VB.Net.
Face it. VB.Net was and is a failure.
VB6 programming, 15+ years after it was abandoned, still is widely used, still has to be (however reluctantly) supported by Microsoft (now in Windows 10 and Windows Server 2016), and still rates highly in the Tiobe index.
@Classic VB6 Programming
"Microsoft gained in C# a (worthy) competitor to Java, but lost the bulk of their developers in doing so."
No, that’s another persistent and much-loved VB myth but that’s not what happened. Have you ever read the Visual Studio Community Edition license terms? If you haven’t here they are:
As you will notice, individual developers and small shops get what amounts to Visual Studio Professional for free. They can use it to develop and sell any application they want with no restrictions whereas the bigger companies have to use the paid version. Microsoft allows this because they’re losing very little money on it. Most developers have always worked for medium sized or larger companies.
As such, they don’t get to pick their tools. If the company you were working for decided to go with .NET or Java that’s what you going to learn. If you were not willing or able to you’d be let go and replaced with someone who would. I saw that happen plenty of times when I was teaching VB.NET. The ones who didn’t upgrade their skills for the new job market got to chase an ever dwindling supply of VB6 jobs until there were none left. The only developers Microsoft “lost” were the ones that went to Java.
An updated VB6 wouldn’t have been a win-win of any kind. Who would have bought it? The companies that went to Java? They left to get away from COM and more of the same wasn’t going to lure them back. Ditto for the companies that settled on VB.NET or C#. Sure, some of the individuals and small shops wanted it but they didn’t constitute a profitable market let alone a break-even one. Lack of demand is the main reason Microsoft has turned a deaf ear to all the pleading as well as why no other language vendor has brought a similar product to market.
"Microsoft now admit there are less than 200,000 VB.Net users."
Link please. I can’t find this anywhere.
Tiobe make some interesting points about programming language popularity.
"Nothing changed in the top 3 of the TIOBE index for more than 15 years. The big three programming languages Java, C, C++ are still where they were in 2001: at position 1, 2 and 3. C# and Python were believed to become the next big programming languages, but they didn't make it (yet). C# is not a top 3 language because its adoption in the non-Windows world is still low. Python on the other hand is dynamically typed, which is a blocker for most large and/or critical software systems to use it. Having said that, the gap between the big three and the rest is closing quickly. But the candidates for the top 3 are losing market share as well, so it is unknown what is going to happen. "
Sometimes I cannot believe the foresight and innovation that was put into VB6.
You make a good case for why C# should have been developed.
But your arguments don't apply to Visual Basic.
It is now clear to (almost) all that the arguments made at the time - that C# should be positioned to compete with Java, and that (the new) VB should be positioned to retain existing VB6 users - was correct.
Microsoft gained in C# a (worthy) competitor to Java, but lost the bulk of their developers in doing so. An updated classic VB instead of VB.Net would have been a win-win for Microsoft.
Microsoft now admit there are less than 200,000 VB.Net users. I doubt there have ever been many more.
VB6 support from Microsoft is as follows:
The Visual Basic team is committed to "It Just Works" compatibility for Visual Basic 6.0 applications on the following supported Windows operating systems:
- Windows Vista
- Windows Server 2008 including R2
- Windows 7
- Windows 8 and Windows 8.1
- Windows Server 2012 including R2
- Windows 10
- Windows Server 2016
The Visual Basic team’s goal is that Visual Basic 6.0 applications continue to run on supported Windows versions.
As detailed in this document, the core Visual Basic 6.0 runtime will be supported for the full lifetime of supported Windows versions, which is five years of mainstream support followed by five years of extended support
The VB6 runtime will ship and will be supported in Windows 10 for the lifetime of the OS (that is until 2025).
The VB6 runtime will ship and will be supported in Windows Server 2016 for the lifetime of the OS (that is until 2027).
The VB6 programming IDE installs on Windows 7 and Windows 10 http://nuke.vbcorner.net/
>>It's a moot point anyway. Because Visual Basic shares code with Office that precludes it from ever being open source
If a company wants to do something - they find a way to do it.
Of course companies are in business to make money. There is also a bigger picture than pure Machiavellism. Not all businesses are mature enough to see it.
" As for using it on an unsupported OS every company I know of that needs to use the VB6 IDE runs it on a virtual XP machine. That’s what I do."
It is better to run VB6 directly on Windows. Not on a VM.
It runs good on Windows 7, Windows 8 and Windows 10.
XP is dead OS now. No point developing on XP to then run the app on Win 7 or 10.
Peter Pierse commented
Yes - 17 years on and still working away with VB6. Spent a lot of time on VS.Net but just hate its unnecessary clutter, etc. VB6 is still so coll!
>>It's a moot point anyway. Because Visual Basic shares code with Office that precludes it from ever being open sourced.
You seem to be desperately trying to find reasons VB6 cannot be open sourced.
First you say VB6 can't be open sourced because it has code from a third-party.
Now you say VB6 can't be open sourced because it has code from Microsoft!
Sorry, I only know about Desaware and that's because I heard Dan Appleman mention it 15 years ago. I don't know who else might have licensed code to Microsoft.
It's a moot point anyway. Because Visual Basic shares code with Office that precludes it from ever being open sourced.