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
>> On the Tiobe index VB.NET is #6, up from #8 the same time last year.
It is amazing VBdotNet is so high on Tiobe. Nobody uses it now.
I want to add something please. I have not had a VB6 application crash in production in over 5 years. I imagine before that one has. Gentlemen, not one crash in 5 years.
I believe and use SDLC and good coding practices as appropriate for the environment as I believe it is the developer and not the language that plays the biggest role.
In case you missed all my other posts, I also use and write books on enterprise scale development languages. Python to SQLPlus. I love learning new languages!
...I still find VB6 a great tool in my toolbox.
>> VB6 is #13
A gazillion year old non-updated language is still #13?
Do you know how many languages and other dev environments that beats. When you look at ALL the data points, this VB6 thing had and still has some juice.
Yes by all means there is a place for C# and Java. Yay for SDLC, ITIL and the slog of getting well tested micro code updates into production.
For those that just want to create home apps, scientists, experimenters, small business owners, solo developers; nothing can get Windows GUI app from an idea into production faster that VB6.
Some would rather spend more time using an app than writing it. ...and when they write it why shouldn't it be easy and fun! ;-)
Grant Swinger commented
@Classic VB6 Programming
>No, it needed to be updated. But not 'replaced'. Replacement meant developers and their >employers had to incur the costs of re-skilling just because Microsoft got panicked by Java.
Companies that were prepared to jump ship to Java if Microsoft didn’t come up with something better than C++/MFC, VB6 or COM weren’t worried about re-skilling costs. What concerned them was the total cost of software development and maintenance. Microsoft had an increasingly bad reputation in that area and more of the same wasn’t going to cut it.
>And replacement meant you had to rewrite all your VB6 software…
If it was designed correctly in the first place and didn’t use any third-party controls there is no reason to rewrite any software. I have VB6 programs written over 15 years ago that are still running. All they needed was few bug fixes here and there. Now if the design was poor to begin with or your needs have changed and the application needs a major overhaul you’re looking at a rewrite but that’s hardly Microsoft’s fault. BTW, all those “VB6” jobs are for companies that are doing just that and need developers with experience in both classic VB and .NET.
>Not so. You can do multi-threading in VB6 now
I should have said “easier threading support” because that’s what I meant. For somebody like me with a C++ background threading wasn’t a problem. I wrote a lot of VB5 code that used it (and it all broke in VB6) but for most VB developers threading was just too hard. Hence the persistent requests at VB conferences for threading support.
>Certainly a handful of developers, feeling they were looked down on by C developers, wanted a >VB version of C, but this was not the wish of the majority of the 6 million VB developers.
If it was “a handful of developers” then what were companies like “Fidelity, John Hancock,
Prudential, Wells Fargo, Schwab” and others doing at those VB focus groups? Do you seriously think that Microsoft spent the money to develop VB.NET because a “handful of developers” wanted it?
> What VB6 developers did ask for was:
> - To use existing VB6 applications without extensive conversion
> - To support the existing core VB6/VBA language and syntax
> - To compile existing projects and produce identical results
The major part of the market for Microsoft development tools has always been the corporate one and they didn’t care about any of those things. Backwards compatibility means little if you’re prepared to abandon Microsoft tools altogether. Syntax means even less. Sure, very small operations and individual developers wanted those things but Microsoft, like any other company, is going to care about their most profitable customers first and then see what they can do for the others.
> In 2009 Microsoft said VB.Net usage was disappointing.
In 2010 they thought there was roughly equal adoption: https://blogs.msdn.microsoft.com/scottwil/2010/03/09/vb-and-c-coevolution/
Some questioned that but I saw plenty of surveys from the time that ranged from 30% to 45 % usage for VB.NET. I doubt that Microsoft was spending the money on the coevolution strategy just for sentimental reasons. The company has shown no mercy before to products that don’t perform. If they were investing in VB it's because they had a reason to.
> Now they indicate usage could be less than 200,000 developers.
On the Tiobe index VB.NET is #6, up from #8 the same time last year. VB6 is #13. If VB.NET only has 200,000 users at this position then how many users does VB6 have? If 200,000 is not a justification for VB.NET then how is less than that any reason to bring back VB6?
You fail to address the issue of code protection because you know VB6.Net fails miserably in that area. How important is code protection? Enough to make me and thousands I am sure, of other entrepreneurs go elsewhere for a RAD dev system only to come back to legacy VB. Who ever is running your business end of the shop has blown a huge revenue producer that were it returned to it's full development support status would immediately be revived. We won't talk about the bad will you have created by dropping the dev end and trying to bury legacy 6. Do you not understand that thousands of developers are more than satisfied with legacy VB, and thousands of new users to come would be also?
Phil Tirino, CPA
I'll add, I use C and Java in instances where I have to. I use VB6 because I want to!
If a company cannot distinguish a HUGE market in that sentence they are not measuring all the data points.
>> It widened the developer base of Windows applications with tools that were easier and more fun to use than the typical offerings of the day.
What does that today with MS products? Perhaps only VB6 to a degree.
Creating apps in VB6 is fun and creative. I cant say the same for any of the variants of C or even Java.
VB6 programming is the best commented
The original "classic" Visual Basic was a revolutionary language arguably responsible for the success of Windows, analyst Rob Sanfilippo, of Directions on Microsoft, said. "It widened the developer base of Windows applications with tools that were easier and more fun to use than the typical offerings of the day, but those tools were still powerful," he said. "A massive community was formed around that original VB, and some of it still thrives today, 18 years after the last version of VB classic was released."
"VB.Net has seen some success, but it is typically shadowed by that of C#, the poster-child language of the .Net Framework," said Sanfilippo. VB.Net was first met with disappointment from the VB developer base as it drifted from tenets of VB classic, he said. "VB.Net has gone through varying design philosophies in its 15 years of existence: originally it strayed from C# parity, then it went through several years of staying in sync, but now the team claims it will stray again. VB.Net has a following, but it will never match that of C#."
Classic VB6 Programming commented
>> "It’s not that VB6 had to be replaced specifically by .NET, it just had to be replaced."
No, it needed to be updated. But not 'replaced'. Replacement meant developers and their employers had to incur the costs of re-skilling just because Microsoft got panicked by Java.
And replacement meant you had to rewrite all your VB6 software, those who did that threw away all the accumulated knowledge, all the bug fixes, all the programming knowledge built up over years, and wasted huge amounts of money - all just to write code that already existed. That's why so little VB6 software was migrated.
>> "Much requested features like inheritance and threading support required a complete rewrite. There was simply no way around this."
Not so. You can do multi-threading in VB6 now, one way is to add a third-party dll. If others can do this, Microsoft could have.
Inheritance certainly isn't a 'must-have'. Even today there is a debate over inheritance and it is often misused and overused.
To say there was "no way around this" is misleading. Microsoft chose not to find a way.
There was no justification for VB.Net. Certainly a handful of developers, feeling they were looked down on by C developers, wanted a VB version of C, but this was not the wish of the majority of the 6 million VB developers.
What VB6 developers did ask for was:
- To use existing VB6 applications without extensive conversion
- To support the existing core VB6/VBA language and syntax
- To compile existing projects and produce identical results
VB.Net gave us none of this, which is why take up of VB.Net was so small.
An updated VB6 would have been backward-compatible, C# with a VB accent never could be, despite Microsoft's mealy-mouthed claims about a goal to make VB7 backward-compatible.
The only corner Microsoft painted themselves into was to insist on using C# as the basis of VB.Net.
Corporate customers don't use VB.Net on any great scale. Use of VB.Net has always been minor, with a relatively small number of developers.
In 2009 Microsoft said VB.Net usage was disappointing. Now they indicate usage could be less than 200,000 developers. You say usage has declined over the last 7 years. When was the highpoint of VB.Net usage? In 2010?
There never was a justification for VB.Net. It could never be commercially justified. It was never as popular as VB6.
Grant Swinger commented
@Classic VB6 Programming
It’s not that VB6 had to be replaced specifically by .NET, it just had to be replaced. VB6 shared the VBA language and part of its development environment with Office which limited what you could add to it. Much requested features like inheritance and threading support required a complete rewrite. There was simply no way around this.
There was indeed a justification for VB.NET. There were companies that wanted an enterprise BASIC without the COM baggage Classic VB had. COM was proving itself unsuitable (and a major pain to deal with) for writing multi-tier applications and they wanted something better. Backwards compatibility with VB6 was not an issue with them. Even though what corporate customers want is more important than what everybody else wants Microsoft did try to accommodate everyone. The initial plan was to make VB7 backwards compatible.
Have you read this? http://classicvb.net/vfred/archives/VBPJ-StorageInterview.pdf (page 7)
The goal at that time was to make VB7 backward-compatible; that is, even the forms
were to be backward-compatible. Yuval Neeman came into the group and said, “Guys,
this is looking a lot harder than we thought, so we’re thinking of having two
compatibility options: non-compatible and kind-of compatible.”
In other words, an updated, backwards compatible VB6 was not going to happen. Microsoft had painted themselves and VB users into a corner and there were no pain-free options for getting out of it. Since the corporate customers didn’t want a “kind-of compatible” VB we got VB.NET. It was making the best of a bad situation.
I think you are greatly underestimating VB.NET usage. It’s declined a great deal over the last 7 years or so but I still it being used in plenty of places. One of the “VB6 jobs” that was posted earlier was for a VB Architect with 10 years of VB.NET experience. You can find work writing VB.NET. If there were as few VB.NET users as you think Microsoft would have just dropped the language altogether.
The majority of people I have run into are the actual inventor / business owner. You guys are right, there are very few vb6 jobs, but there are many, many small companies with products written in vb6. I created just a side project vb6 app 4 years ago, completed in about 6 months, and is now one of my two sources of income.
Microsoft's Satya Nadella says "It's crazy to abandon what you built and crazy to not let what you build work on other platforms"
So why doesn't Paul Yuknewicz obey that for VB6 programming?
Here is another data source for comparison
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).
And the VB6 programming IDE installs on Windows 7 and Windows 10 too.
The Codist commented
You obviously didn't bother to take a close look at those "VB6" jobs you posted. Every last one of them requires .Net knowledge and skills.
Every. Last. One. Seriously, are you really that ignorant of the job market?
But if you think VB6 is hot stuff in the job market go ahead post a bunch of real VB6 jobs. Ones where they require VB6 and nothing else. Ones where you can walk in the door, say "I know nothing about .Net" and get hired.
Classic VB6 Programming commented
>> "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."
Microsoft do say that, but even that implies a larger figure than is actually the case. The real number of developers is probably no more (based on Microsoft's own figures) than 200,000
Choosing a different language all depends upon your requirements, but I would suggest VB.Net wouldn't be a wise move. In fact many of the 'old' established languages are declining. Java and C#, though both declining, are still huge as is C++.
Go is worth looking at, as is Swift (for Apple developers).
Please, you know ****:
"Those jobs went away long ago."
That means that you are a troll indeed !
Oh, you are that troll ... aha ! ok
"I said earlier I would rather sleep under a bridge than learn .net"
:))))))))))))))))) ME TOOOOOOOOOOOOOOOOO !