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
"I said earlier I would rather sleep under a bridge than learn .net"
:))))))))))))))))) ME TOOOOOOOOOOOOOOOOO !
Your first paragraph very much follows Microsoft's 'line'. That they needed to compete with Java. Well, yes OK. But where do you get the magical leap from needing to compete with Java to abandoning VB6? As I said, offering C#/.Net was a reasonable idea (though severely flawed in that it was still a Windows-only product).
But how do you reach the conclusion that classic VB needed to be replaced by .Net ?
Surely the 'corporations' that were considering defecting to Java would have wanted (and subsequently this proved correct) a 'C' language rather than VB.
There was no justification for both C# and VB.Net - to use your phrase "The market isn’t big enough to justify a separate product" - and clearly C# was the product the market wanted. VB.Net should never have been developed.
What Microsoft achieved by abandoning VB6 was just to force more developers to choose between C# and Java (or some other languages), many developers moved to Java. Few moved to VB.Net.
As I said in my previous post, Microsoft would have done better to have offered both C# and an updated VB6. This would have widened the market to include both those who wanted a 'superior ecosystem' and those who wanted a RAD.
Remember 1 in 3 VB6 developers remained with the abandoned VB6, how much more successful would an updated VB6 have been?
Take up of VB.Net was negligible (and remains so today) though for many years Microsoft told us there were a similar number of C# and VB.Net users. Now they have finally admitted VB.Net usage is tiny. There was never any justification for VB.Net.
>> "In general, the first product to market that solves a problem wins and .NET wasn’t first. Doubling down on VB would not have prevented this. Instead, it would have turned the exodus into a stampede."
First to market can be an advantage, but not always. Word wasn't the first WP, Excel wasn't the first spreadsheet, SQL Server wasn't the first database - but they are pre-eminent today.
You ignore my point that Microsoft should have launched C# AND updated VB6. I wasn't suggesting an updated VB6 instead of C#, but as well as.This would have cost less than developing VB.Net and been far more successful.
>> "The simplicity of VB6 would also have been missing. Microsoft would have spent a lot of money on a commercial failure.". They did. It is called VB.Net.
>> "Well, it was never as popular as C# but I certainly made a nice sum from teaching VB.NET to the companies in my area."
Congratulations, I'm (genuinely) happy that you made money from VB.Net. I doubt Microsoft ever did.
But my point wasn't that VB.Net was never as popular as C# (it certainly wasn't) but that VB.Net never approached the popularity of VB6, even years after VB6 had been abandoned.
Just looking back to the earlier comments... January 25, 2013 02:10 "We need to get 12,000 votes" Look up: 12,000 votes...
Somewhere amidst the 7.6 thousand comments I said earlier I would rather sleep under a bridge than learn .net, well I have to say my circumstances have changed and said bridge is not a option anymore, so I was looking into learning VB.net but found no official Microsoft endorsed certifications for VB.net, none at all...and this goes back several years as well as far as I can tell. How odd!
Then I saw this link
As of february 2017 VB.net is only being used by "hundreds of thousands"? That is a big surprise, I never suspected it would be that low.
@Classic VB6 Programming
>Had Microsoft provided a compatible language, most of the user base would have adopted it.
Actually, no. Discussions about this always assume that VB users were one big family, from the large corporations down to individual developers, all happily using VB and not wanting to use anything else. That’s miles from the truth. The corporations were using it because it was cheaper and less painful to deal with than C++/MFC which was the only other option Microsoft had. When Java came along and promised the power of C++ without the pain along with an ecosystem that was superior to COM for enterprise development it’s no wonder they began defecting in increasing numbers. They were more than willing to dump backwards compatibility to have a more powerful language than classic VB and a better ecosystem. It took .NET to finally stem the tide but by then Java had a big head start that it’s never relinquished. In general, the first product to market that solves a problem wins and .NET wasn’t first. Doubling down on VB would not have prevented this. Instead, it would have turned the exodus into a stampede.
As for everybody else they get what the corporate users get only with less features (i.e. Professional instead of Enterprise). If they like it, fine. If not, too bad. The market isn’t big enough to justify a separate product. Even if Microsoft had been willing to do this they wouldn’t have liked the end result. VB6 was the end of the line. To add full object orientation, threading support, delegates and other nice things to VB would have required a ground-up rewrite. The end result would have been at best only partially backwards compatible and VB6 users seem to be vehement in their demands for 100% compatibility. The simplicity of VB6 would also have been missing. Microsoft would have spent a lot of money on a commercial failure. This is why you don’t see other companies rushing in to scoop up the allegedly huge market Microsoft abandoned. It’s not a huge market and the product they want can’t be made.
>It seems the numbers are so tiny the development of VB.Net could never have been be justified.
Well, it was never as popular as C# but I certainly made a nice sum from teaching VB.NET to the companies in my area.
>It's possible that, even today, there are more VB6 developers than there are VB.Net developers.
That depends on what you mean by “developers”. If it’s somebody using VB6 for anything that could well be true. If you mean professional VB6 developers then no. Those jobs went away long ago.
>> "By the time VB6 came out Microsoft was already seeing their business customers defect to Java. Is it any wonder that the first versions of .NET were pretty much Java clones when the market was heading in that direction? It made no sense to double down on VB6."
Certainly Java was growing. So it wasn't a bad idea that Microsoft also offered Java, which they did with J++ (under license from Sun, the then owner of Java). But, being Microsoft, they made a version of Java that wasn't quite Java-compatible. Sun initiated litigation, effectively killing J++ (and Microsoft had to pay Sun $20million).
Microsoft then launched .Net (as the nearest clone of Java they could legally do). C# was developed as the primary language for .Net.(C# is almost an imitation of Java).
So far nothing that a VB6 developer would take issue with.
The issue for Visual Basic developers is that Microsoft also developed a basic-like language for .Net (VB.Net). Most VB6 developers were expecting an updated VB6, instead they got an incompatible language.
This incompatibility was a major business/marketing failure by Microsoft. Developers may argue the technical pros and cons of the two languages, but the business issue was that Microsoft didn't take forward their developer base (VB6 was Microsoft's most popular language at the time). Microsoft stated (years later) that the uptake of VB.Net had been disappointing, only one in 3 VB6 developers moved to .Net (and many of those to C#). A similar number moved to non-Microsoft languages (including Java).
To lose so many developers was a Microsoft failure. If you can't take most of your customer base with you you are doing something wrong.
Your statement "It made no sense to double down on VB6" is clearly wrong. Had Microsoft provided a compatible language, most of the user base would have adopted it. Instead Microsoft lost a huge part of their developer base. An updated VB6 would have prevented that.
You correctly state that Microsoft were "seeing their business customers defect to Java". Yet their 'solution' just encouraged further defections.
.Net has, of course, been reasonably successful (though it never reached the levels of success that Java has). C# provided a good competitor to Java.
But, as many said at the time, Microsoft would have done better to have offered both C# and an updated VB6 (therefore widening their market) rather than offering VB.Net which was very much in the same market as C#.
On the subject of developer numbers, Microsoft have recently (tacitly) admitted they exaggerated the number of VB.Net users over the years. It seems the numbers are so tiny the development of VB.Net could never have been be justified.
It's possible that, even today, there are more VB6 developers than there are VB.Net developers.
Oh yes, it is true. I was there and saw it happen. I've been in this business well over 30 years. How else do you think Java made it to #1 position?
No, I do not mean a "perfect codebase". I mean an old codebase, written in C++, and heavily modified and patched over the years. Do the math. Even if you start with VB4, which was when they introduced classes to VB, it's still over 20 years old and written well before many best practices had been established.
You don't seem to be a professional. Maybe you should learn some more before bad-mouthing Microsoft management and developers.
I can see your point on non-tangible ROI. Ideally, you want to keep all your customers happy. But that's always done in expectation of real ROI down the road. Unfortunately for fans of VB6, what it would cost to bring it back far exceeds what Microsoft could expect to get for doing so.
"If you could dream up an idea for an application, no quicker way to realize it than VB6 for all these years now."
TRUE, and it is perfect for science in all areas !
>> old codebase
I write code in Rust and Python to VB6. Whatever makes the most sense given the environment.
VB6 however is not just code. It is\was an ideology that spanned novice to senior programmers. If you could dream up an idea for an application, no quicker way to realize it than VB6 for all these years now.
In fact I can say with certainty that poor intellectual quality of MS managers and programmers is to blame. Old codebase ? WTF that eaven means !!!!!!!!!!!! Let me remind you that VB6 works on all Windows versions first ! So, what old codebase do you even talk about ?
"By the time VB6 came out Microsoft was already seeing their business"
not true ! and someone has to be responsible for this very very bad decision at that time !
"It takes lots of time to get to grips with an old codebase. "
What is that? An old codebase ? You mean a perfect codebase inaccessible to the minds of today MS programmers ... that is what you mean !
>> I see that the famous Apple Reality Distortion Field
Wow did you take that out of context! @Grant lets just agree to disagree on the topic of ROI. I can tell you are not a fresh idealist college recruit like some that bash VB6 here. You are a pretty smart guy I think.
Peers work best when they appreciate rather than judge each other I think. :-)
@Classic VB6 Programming
What I meant was that Microsoft wasn’t guaranteeing to keep producing new versions of Visual Basic just because you bought the current one from them. Nothing obligated them to keep producing new versions of it any more than Apple is obligated to keep making iPod Nanos just because some people like them.
Things change. By the time VB6 came out Microsoft was already seeing their business customers defect to Java. Is it any wonder that the first versions of .NET were pretty much Java clones when the market was heading in that direction? It made no sense to double down on VB6.
I’ve contributed to several open source projects over the years so I have a good idea how it works. Neither am I opposed to seeing VB6 open sourced because I’d like to look through the code myself. What I’m saying is that the rainbows and unicorns vision of open source I see around here doesn’t exist. To hear people around here tell it there’d be a new 64-bit version of VB6 within weeks of Microsoft releasing the code to be followed by rapid stream of improvement all the while keeping 100% backwards compatibility. Then the whole world would dump .NET and happily embrace the new VB.
It’s not going to happen. It takes lots of time to get to grips with an old codebase. It takes much longer when you can only work in your free time and you’re short of people. And every open source project that doesn’t have a corporate backer is short of people. Virtually all the people capable of doing this are not going to have the time to do it unless they can make it their full-time job. It doesn’t matter how much they love VB6. If their job isn’t working on VB6 it won’t happen.
>User numbers (of developers) is always interesting, but difficult to determine.
Exactly, and Microsoft can’t tell how many VB6 users there are any more than we can. That can only be known through sales of licenses and a few other means. VB6 usage is effectively not trackable.
What they do know is what their customers are asking for and so far it doesn’t seem to be VB6.
I see that the famous Apple Reality Distortion Field is still working fine. Apple has the best PR people in the business although I don’t see why they keep them around when all the groupies and media are so eager to do the work for free.
To be blunt, the idea that Apple is a “people before profits” company is ludicrous. Just ask the Americans whose jobs they outsourced to cheaper foreign countries. Or the Chinese who work in their sweatshop factories. (The ones who were driven to suicide there are not available for comment.) Apple had to be shamed into doing something about that and then did the very least they could get away with.
They stand up to the US government over breaking an iPhone because it costs them nothing. But when the Chinese government wants VPN apps out of the Store and real money is on the line then their principle changes from “people before profits” to “anything for a buck”.
Microsoft may have their eye on the bottom line all the time but at least they’re not pious hypocrites about it.
>> "There's nothing about them continuing to support the product forever regardless of how few people are using it."
And yet they do seem to be supporting the product 'forever'.
Despite telling us since Windows XP "VB6 will not be supported in the next release of Windows" they always do support it on each new version of Windows.. So now VB6 is supported on Windows 10 (until at least 2025), and support on Windows Server 2016 was recently added (until 2027).
Presumably the ROI Microsoft see is not losing the (often large) customers who still use VB6 applications.
But even this support is mean-minded. MS support the VB6 runtime. They test the VB6 programming IDE on new releases of Windows - but even though it is tested they don't 'support' it. They check the IDE works correctly, but they don't support it - where is the ROI in that ?
>> "You need developers with a strong grasp of the inner workings of VB6 itself, the runtime and COM. People like that don't work for free "
Actually, many do work 'for free'. That's kind of what Open Source is about. There have been many enhancements to VB6 provided by the VB6 community. This could be taken much further if VB6 were open sourced.
And why then would you be opposed to VB6 being open sourced, either doing so would be successful (for VB6 developers), or it would fail (proving you right). What do you have to lose either way ?
'The Codist' below has estimated there are under half a million VB6 developers. Others put the figure higher. With those sort of numbers, there is room for some (relatively low cost) investment by Microsoft - such as updating VB6 to the same standard as VBA7, or open sourcing VB6.
Even just a free download would be something (the download exists, but you need an MSDN subscription.
User numbers (of developers) is always interesting, but difficult to determine. Microsoft probably have reasonable figures, but often refuse to divulge them because of "commercial confidentiality". Though what could be commercially confidential about the number of VB6 developers nowadays ? More likely Microsoft are covering their own embarrassment.
>> You've certainly got an odd view of how ROI works.
Do I? Maybe it depends on who is doing the counting.
NPR hosted a show yesterday that compared Apple management and Microsoft's. Point after point MS was worried about the bottom line asking about the profit margin for product X while Apple's main focus was all about "how many people did we help?". Are their lives better now than before we introduced product X.
I guess it comes down to the culture of the company. The vision. There are many takes on ROI my friend. As many as there are businesses. :-)
>This is a responsibility born of countless users investing in it. In them!
That can't be right. I just looked in all the VB6 boxes I have on the shelf and didn't see a single stock certificate. I did find the license agreement and as far as I can see Microsoft has held up their end of the deal. There's nothing about them continuing to support the product forever regardless of how few people are using it. I don't do that for my software so I don't see why Microsoft should be required to do it for theirs.
You've certainly got an odd view of how ROI works. I can assure you it is not held by any business that wants to stay in business.
You're also overestimating what open sourcing VB6 would accomplish. Virtually all the people who want a new VB6 wouldn't be able to do a thing with the code. You need developers with a strong grasp of the inner workings of VB6 itself, the runtime and COM. People like that don't work for free and many wouldn't want to work on it for any price. Unless you have a plan to pay them nothing would get done.
Python is at the little finger of Visual Basic 6.0 ! And now, python is one of the most used scripting languages !
Let us be fair ! Microsoft does not have the minds to put Visual Basic 6.0 back ! Realy ! They don't have the people to do that. This is my impression and this is the impression of many other too !
From all of us the impresion is that Visual Basic 6.0 should be by default on Windows. That is the smart move ! But, Microsoft does not have the smart programmers on programming languages to do that ! Sad !
Microsoft Developer commented
Time for Microsoft to show it doesn't just abandon its developers.
They have abandoned many products, and will abandon many more.
Time to bring back the VB6 programming language, or open source it.
Microsoft, try to regain some trust in the developer community.
That can be measured in different ways. As I said earlier:
"Meanwhile they have created the legacy of one of the worlds easiest and most powerful software development tools in VB6. This is a responsibility born of countless users investing in it. In them!
Events dont make entities they reveal them. Who they are that is. Years from now is Microsoft going to be known as a THE greed based techno-giant of the era or the one that lead in innovation and treated their most committed users respectfully.
Its not too late. Microsoft give VB6 back to the community that built it or make the minimal investment to sustain it!"
I wonder if that kind of ROI has better legs than just padding this quarters income statement. ;-)