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
Microsoft's support statement for VB6 programming is here...
Support Statement for Visual Basic 6.0 on Windows
- Note: The support policy below has been updated with Windows 10 version 1709 support information.
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 Server 2016
Windows Server 2012 including R2
Windows Server 2008 including R2
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 at least 2025).
The VB6 runtime will ship and will be supported in Windows Server 2016 for the lifetime of the OS (that is until at least 2027).
The latest release of the utility to install the VB6 programming IDE on Windows 7 and Windows 10 is here...
Visual Studio 6.0 Installer wizard v.5.0
This release has been tested on Windows 10 v1803
"So .NET could have been a step into the 21st century. It could have been, but it wasn't. Technically, .NET was fine. The virtual machine infrastructure was pretty sound, the performance was reasonable, and C# was an adequate (if not exactly ground-breaking) language. But the library—the .NET "API" used for such diverse tasks as writing files, reading data from databases, sending information over a network, parsing XML, or creating a GUI—the library is another story altogether.
The library is extremely bad. It is simplistic and inflexible and in many ways quite limited."
No, I haven't seen that but I will pass it on. I don't know if it will change any minds though.
" If a company has some business-critical custom application written in Visual Basic 6, that company isn't going to roll out Linux to its desktops; it's trapped on Windows."
"These programs are a key part of the platform lock-in that Microsoft craves. "
".NET could have been a step into the 21st century. It could have been, but it wasn't.
The library is extremely bad. It is simplistic and inflexible and in many ways quite limited."
Have you seen this?
>> UWP apps (where U means Universal, and Universal is defined as Windows 10 only).
:) :) :)
Yes, I've seen it, they've seen it, and it makes no difference as far their management is concerned. VB6 left extended support in 2008 so that is that. End of discussion.
Hey Microsoft awesome job on VB6! Open Source it if you are not going to evolve it to 64-bit.
Have you seen the Microsoft VB6 support statement...
What I'm trying to do is update my applications to a supported language. These charities are subject to HIPAA and it's been ruled that programs created with unsupported development tools are, ipso facto, unsupported as well and therefore insecure. They must be updated or replaced.
They have to be desktop apps because the people I deal with have no control over their web or database servers, only their local PCs. Adding something to the servers is not going to happen. I've already asked about that.
In an ideal world Microsoft would release a *real* VB7 that was compatible with VB6 and I'd use it but we all know that's not going to happen. So I'm looking for the least worst option.
Just to clarify what NS Basic and B4X do...
B4X programming has a collection of (VB6-like) languages, B4A for Android, B4i for iOS and B4J for Java (so Windows, Mac, and Linux). You develop separate apps for each of those platforms, though much of the code is interchangeable between the B4X languages.
B4X apps are native apps, not web apps which has some advantages, but means developing apps for each platform.
VB6 apps can (because they are Win32 apps) be added to the Windows Store as UWP apps (where U means Universal, and Universal is defined as Windows 10 only).
VB6 apps will run on Windows 10 without needing to be put in the Windows Store.
The VB6 programming IDE also installs and runs on Windows 10.
So what are you trying to achieve?
Are you wanting to make your apps look more modern and have them run on Windows 10?
And are you saying you already have a database on the (Windows) server?
And if so, do the applications already work on an older release of Windows (which release?) and use the database?
Well thanks, but that's not what I had in mind. I was looking for some way to up date some applications I wrote for local charities. Doing all that just to wind up with a web app is not what I'd call a large degree of compatibility. These need to be desktop applications and talk to a database without installing anything else on the server.
Maybe I should just hold my nose and take another ***** at learning VB.Net.
There is a large degree of compatibility.
With NS Basic you can create Forms and give them the same names as your VB6 forms.
Then add controls to the forms, giving each control the same name as in your VB6 project.(NS Basic has equivalent controls to most VB6 controls).
Then copy and paste your VB6 code into the NS Basic app.
But remember, NS Basic is for Web or Mobile apps.
You are running in a browser, so some things aren't allowed. For example you can't read or write to an Access or SQL Server database.
(This is standard for web apps, they are 'sandboxed' and don't allow access to the device's filesystem).
You can use SQLite databases on mobile devices.
The Cordova/PhoneGap plugin allows more access to the device's filesystem.
If you need to access a database on a server, you can't do so directly. You need to have an app running on the server and you communicate with that app using AJAX. The server app could be written in PHP, or ASP.Net, or node.js.
Are you saying that B4X and NS Basic are compatible with VB6? Or that I can import my VB6 projects into them with no or few changes?
I'm looking at their web pages now and don't see a thing about VB6. Please explain.
Isn't it interesting to compare the current positions of Microsoft .Net with Microsoft VB6.
Traditional (legacy) .Net Framework is for Windows desktop/server development only.
VB6 programming is just the same - Windows desktop/server development only.
Xamarin/Mono + .Netcore offer .Net on other hardware - mobiles and desktop.
VB6 has the B4x programming environment for this, with the ability to use VB code for Android, iOS, desktops (Linux, Mac, Windows) and even Raspberry Pi and Arduino.
.Net may offer WebAssembly using Mono+HTML/JS +Bootstrap to provide client-side web apps, though not for mobile.
VB6 has the NS Basic programming environment for client-side web apps, and also for hybrid mobile apps on iOS and Android.
There are a lot of similarities between 'extended' .Net and 'extended' VB6.
The main differences are that B4x and NS Basic have been around several years, are well tested and widely used - while Microsoft are just starting with their offerings.
"The news for server side C# developers, seeking a platform to support their careers has been poor in recent years."
"For server side .NET, many have a nagging feeling that there, the jobs are drying up and there are fewer new projects. "
"What is more worrying is the trend line. For Tiobe the popularity of C# peaked in 2012 , has been in decline ever since, and has declined by half from its peak. On the backend this news is worrying, as it suggests that for ASP.NET projects, C# is close to becoming a legacy platform."
The collapse of the .net ecosystem
The golden age of the Microsoft developer ecosystem is behind us and so could be your career. The Microsoft developer ecosystem is experiencing plummeting employment opportunities and declining community interest.
The following article on the decline of C# was written a couple of years ago. Then C# was the 4th most popular language in both Tiobe and StackOverflow surveys.
Now C# has fallen to 5th place in Tiobe and crashed to 8th place in StackOverflow.
Time to abandon .Net and move to everyone's favorite VB6.
VB6 programming just keeps rollin' along. :)
"I have a big problem with people who have a big problem with other developers’ choices. Why do you care what someone else uses? Are you a Puritan as H.L. Mencken describes them: someone who lies awake at night with the haunting fear that someone, somewhere, may be happy?"