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
Johnny OL commented
.Net was always just a clone of Java. And despite Microsoft's money and marketing .Net was never as successful as Java. Add to that Microsoft's failure in mobile phones and .Net never had a chance.
Now it is just a failing legacy product.
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)
In 2000 Microsoft claimed 6.1 million (and forecast an increase to 6.9 million) coders were using Visual Basic (VB6 and earlier), making (they claimed) VB the most widely used programming language in the world. Microsoft even claimed that there were more lines of code written in VB6 than in Cobol.
In a spectacular marketing failure, Microsoft lost much of this market.
"In a number of important ways, .Net is a failure.
Think back a decade or so ago. As you may recall, .Net was supposed to be much more than just the next version of Windows DNA or COM+ or COM. It was supposed to destroy Java, extend the Windows platform, and secure the Microsoft monopoly for another decade or two."
"Unfortunately, .Net also cannibalized Microsoft's most successful corporate IT development environment, Visual Basic. Look at Indeed's Job Trends, Tiobe, and so on, and you'll notice that .Net's rise is all about Visual Basic's decline. There isn't a lot of correlation between .Net trends and Java's bumps and bends."
Richard Collier commented
>> The idea that new code is better than old is patently absurd. Old code has been used. It has been tested. Lots of bugs have been found, and they’ve been fixed.
There’s nothing wrong with it. It doesn’t acquire bugs just by sitting
around on your hard drive.
What you say seems obvious, but you still get Microsoft fanbois telling you to rewrite all your working software!
Richard Collier commented
Microsoft can't drop VB6 support and neither can we. And we're in dire need of an updated IDE and tools to do our jobs. Since VB.Net has never been popular and Lightswitch has tanked why don't Microsoft just give up and bring back Classic Visual Basic?
Johnny OL commented
Microsoft did their knee-jerk reaction thing and shipped a garbage-collected Java/JVM clone.
As a sop to the existing VB6 developers, they gave us Visual Basic.NET which was just a stupid cousin to C#.
As David Platt said "Do these guys really have nothing better to do than lambaste someone else’s choice of development tools?"
The 'religious' fervor of those who don't use use the VB6 programming language is always amusing. You can understand why those who have their employment or business dependent on VB6 should take the trouble to post, you can understand why those who choose to use VB6 would post. But what goes through the heads of those who (often repeatedly and at length) post about a language they don't actually use ?
I am for the Internet to rebuild so that no one can blow anonymous any paid lobbying spells.
Recently we have the fake account Joe Bolton.
In a real democracy, someone who does not care about one topic would just keep going and let others do their thing.
Instead, he tries to spread fear and acts as the savior of humanity.
Why is someone doing this?
Except one gets paid for it
In the near future a meaningless posting will come from him or a new FaktAccount only so that his text is in the forum above.
Can not you find these people and publish the identity?
@VB6 programming just got a big boost from Microsoft
Between 1997 and 2001 Java gained enormous ground as an enterprise language. Microsoft was afraid of losing enterprise developers to Java, not just C++ ones. And what was Microsoft’s #1 enterprise language? Visual Basic. You can see that in the language usage surveys at the time. But I was there and saw it with my own eyes.
At the company I worked for then it was decided that all future development was going to done in Java. That meant that I had to tell my team “Guess what, we’re all learning Java!” My team, like all of them, was a mix of “fighter pilots” and “bus drivers” as David Platt puts it. We all used VB because it was faster and cheaper than C++ which was only used when we had to. The pilots had no problem with learning it but the bus drivers revolted. They only knew VB and didn’t want to learn anything else. Heck, most of them weren’t that knowledgeable about it. Try to discuss using polymorphism with them and they had no idea what it was even though it had been in the language since version 4. Most of them had been hired when anybody who could spell “Visual Basic” could get a coding job. They soon found out that standards were changing as they were let go for no longer meeting the company’s requirements.
Some found jobs as VB developers before their last day but plenty were still looking and saying how hard it was to find a new position. The VB job market was starting its decline even then as companies became reluctant to hire people who only had VB on their resume. These are the developers that Microsoft “lost”. Not because they moved to Delphi or some other language but because the job market changed under them and they couldn’t or wouldn’t keep up. You don’t get to choose your language when you work for a company. You use what they’ve standardized on or you don’t work there. If you can’t or won’t learn new skills you get replaced.
Visual Studio .Net came out in early 2002, not 2003, and it was quite usable. I used it and so did many others. One of them was Dan Appleman, author of many superb books on programming. He liked it so much he used VB.Net to write one of his company’s products and described how hard it was to go back to VB6. The only “improvements” added to the VB2005 language was the silly My namespace (My.Computer, My.Registry, My.Little.Pony) and bringing back default instances of forms.
Yes, VB.Net did have some popularity which could be seen in the surveys back then. Some of them had VB as high as 50%. These were by industry publications, not Microsoft so they reflect the reality of the times and not Microsoft marketing. You may not want to believe it but, as I said, I was there.
A company that does not permanently listen to the wishes of its customers will perish. I'm sure. Are there enough examples in the world?
Despite a succession of post-VB6 products (VB.NET, C#, LightSwitch, etc), the ease and simplicity of VB6 programming has fostered a large installed base of applications.
The continuing popularity of VB6 presents Microsoft with a conundrum. On the one hand it represents a platform that it considers superseded by newer Microsoft products. On the other its continued usage, 20 years after the last version, indicates a successful product well-received by the marketplace. Microsoft is missing an opportunity by not resuming full support and updating VB6.
Show some evidence there was a 'stampede' from VB5/6 to Java in your timescale. Certainly it is true that Microsoft became scared they would lose developers to Java. But that is later than you are talking about. In your timescale, Microsoft were offering their licensed Java language J++.
If anything Microsoft were more concerned they would lose C++ customers to Java, that's why they licensed Java.
VB6 didn't start to lose users in any volume until it became clear that there wasn't an upgrade (say 2001-2003). At that point VB6 users had to decide where to go. The big (early) movement was more to Delphi than Java (Delphi being closer in concept to VB6). It was Microsoft's failure to provide a backwards compatible VB7 that forced users to move away from VB6. Yes some Microsoft fanbois moved to VB.Net but it was never really popular.
As many of us said at the time (and has become clear with hindsight) Microsoft's best approach would have been to offer J++ and an updated VB6.
When they legally/morally messed up with J++ their second best option would have been C# and an updated VB6.
Instead they chose the worst option C# and VB.Net.
So Microsoft were offering a Java clone (C#) without (for the first few years) Java's reliability, productivity or security.
And a VB6 replacement that was incompatible with VB6, as well as lacking Java's reliability, productivity or security.
And there was a gap between Microsoft losing the J++ court case in 2001 and .Net becoming available(and usable) in 2003-2005.
No wonder Microsoft lost a huge number of developers.
I take issue with your claim that VB.Net "did have reasonable popularity until 2008". The initial releases of VB.Net (VB2002, VB2003) were virtually unusable. It wasn't until VB2005 that there was a workable product. Microsoft claimed at the time that VB.Net was as popular as C# but it was never true.
OK, in 1997 companies were moving from VB5 to Java. But VB6 did nothing to slow down the stampede. In fact, over the next few years it accelerated. Why did this happen? Why did Microsoft feel compelled to first license Java and then clone it? If VB was "everybody's favorite" language why was there a stampede at all?
Before Java your choices were VB or C++. VB provided faster development with fewer bugs (lower costs) whereas using C++ could be like wrestling grizzly bears on a daily basis and I should know since I did it for years. But VB has some serious limitations so when Java came along and promised the power of C++ minus the bears is it any wonder there was a stampede? Simply put, Java was seen as the future of development and Microsoft's tools as the past. Microsoft was between a rock and a hard place. They didn't have many choices and a VB7 wasn't one of them.
Before you declare C++ as more popular than C# I suggest you count the number of jobs for each language.
I'm no fan of VB.Net but it did have reasonable popularity until 2008. After that it took a nose dive.
VB6 wasn't launched until 1998, so obviously companies weren't moving from VB6 to Java in 1997.
And Microsoft had their own version of Java (J++) at the time, so you can't really claim that Java was better than anything Microsoft had. If anything, J++ was better (on Windows) than Java.
But because Microsoft didn't comply with the Java licensing requirements, Microsoft had to abandon J++ in 2001 (and pay Java's owner $20million).
Some of J++ continued for a while as J#
C# was then developed as Microsoft's answer to Java (famously C# is the only programming language designed by lawyers, as the nearest clone of Java legally possible).
C# was intended to be Microsoft's Java killer, but never came close to the popularity of Java - or of VB6.
And don't forget that what you describe as 'painful C++' is still very popular today. Microsoft say that Microsoft C++ is their second most popular language by far. And all versions of C++ together are more popular than C#.
So C# didn't replace either Java or C++.
You can certainly argue that C# slowed the stampede to Java. But the abandonment of VB6 caused many VB6 users to move to Java.
Microsoft say that around 1 in 3 VB6 (of a claimed 6million +) users moved to non-Microsoft languages.
VB.Net was made available at around the same time as C# (though it was 2005 before it was really usable) but this was incompatible with VB6 and therefore missed its target of being a VB6 replacement. VB.Net has always had a much smaller number of users than C# (or than VB6 had in its prime, and possible still today).
The reality is Microsoft messed up. They got J++ wrong, C# was a reasonable attempt, VB.Net was misguided.
How backwards compatible is Java with VB6? It's not compatible in the slightest but that didn't stop companies from switching to it in huge numbers. Backwards compatibility isn't as important as you think.
Business software these days is written in Java or C#. Those are the skills in demand by employers. You certainly don't see them looking for VB6 developers. The only VB6 development going on is maintenance work on old programs that will never be updated with new features.
Microsoft only supports the VB6 runtime on Windows 10. The IDE is not and will not be supported. You wouldn't have requests here on User Voice asking for it if they did.
Face it, Basic is dead. VB6 isn't coming back and VB.Net is only being maintained until Microsoft can figure out how to drop it.
VB6 Programming commented
There is still a huge amount of VB6 programming in use. And that will continue until and unless a successor to VB6 is developed.
VB.Net was never that successor, simply because it was not backwards compatible with VB6.
That's why Microsoft still support VB6 on Windows 10 and Windows Server 2016.
BTW, all the developers who decided to "remain with VB6" lost their jobs. I had to fire several myself. There's no place in the industry for "bus drivers" with limited skills these days.