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
You know, I'm completely agree with an open source version but i'd prefer an updated version by MS. but asking for a new version is just goose chase! so I'll go with Open Source.
Whats keeping you MS? we're waiting!
eric au commented
Microsoft, if you do not understand how stupid about killing vb6 with vb.net, this analogy will make it clear about it. Think about one of your many many genius officer now suggest to kill office by replacing with office.net, which will not backward support the billions of office document files out there in the world, so that the whole world are forced to buy your new office.net ...
Haha, what do you think the actual result will be turned out?!
So, give us back the VB7 we are longing for!
The structure of VB6 should be modified like vb.net and all tools of .net framework and c++ should be added in but in native mod to develop extremely high level application with it
eric au commented
If there is a new version of VB6, not only Visual Basic 6 thrives, Microsoft thrives too!
BASIC: Beginners Are Shafted It's Complicated
The new visual basic is everything except basic
No doubt skills have been lost. But don't forget VBA is almost identical to VB6 and is still part of Microsoft Office.
And there is now a VBA7 - which adds 64bit support.
From what you describe, I find it a bit surprising that you "don't get" .NET.
You appear to be quite a seasoned programmer with lots of experience.
I think that, although VB.NET and VB6 share a similar name, the similarities end right there.
Programming in .NET requires a different mindset that, to me, is more logical and a lot more powerful.
Well, I think that's the whole problem: perhaps you are trying to "see" .NET with VB6 eyes (if that makes any sense).
Although both are supposed to be object oriented languages, VB.NET takes it to a how new level, while VB6 only scratches the surface.
I understand that VB6 embraces the whole "rapid application development" environment a lot better than its .NET languages counterparts, but that's a tradeoff I'm quite happy to live with...
My recommendation is that you give it a second chance; but this time, try to see VB.NET (or, perhaps, c#) with completely new eyes. Assume nothing.
I guarantee you that once you get the hang of it, you'll be asking yourself why you didn't switch sooner. Trust me. The same thing happened to me.
When .NET 1.0 was released I had the exact same feelings as you. But by the time version 2.0 was released, it changed everything.
I still need to maintain many VB6 applications and I just get depressed whenever I have to travel back in time to work on them ;)
One thing those hoping for a VB7 must consider is the fact that the MS employees with the VB6 experience have almost certainly moved on.
I doubt MS would have said, OK we are wrapping up VB6, all you guys can sit in that room over there just in case we decide to bring it back later.
More likely they've moved on to other things like the .Net team, and would not even want to move back.
I'm guessing the code is pretty tangled and mega-complicated. Who would be smart enough to pick it up and run with it now?
As for TIOBE, it looks possible PYTHON will overtake C#.
Maybe MS could create a new Visual Studio, that supports other languages?
Maybe even VB6?
Many thanks @Xavier for your courteous and constructive reply.
I think there is a very interesting point to be made here if Microsoft is listening -- there are very different types of developer, ranging from batch scripters through spreadsheet users, right through to Java on Sparc servers then driver SDK mastery. ASM isn't on that scale as it is a different tool that I use when VB6 runs out of power (and I use C++ similarly). Those at the left end of that spectrum (me included) produce customer interfacing apps as packaged, finished, documented tools for operators and users. Those at the other end of the spectrum make the tools and drivers for people like me, or work on banking system server farms.
You are IMHO a very advanced programmer and possess skills which I do not, with an eye to the lower level, deeper stuff. I have a relatively poor memory for details, and I don't like development platforms that require massive amounts of knowledge. I have a very logical mind that works well from a small data set. VB6 and ASM (which is also by nature reduced instruction set) just do it for me. Others who memorise things well take to C++ and, it would seem, to dotnet. I don't want to be learning and researching my whole life, I want to learn a little and apply my logic immediately. When I buy the kind of tools that you make so very well, I'm buying research time that I don't have.
My quick CV .. transport timetable Information system software is the main one -- 100s of terminals, many thousand displays, guiding probably a million people a day. My other VB6 apps -- IIS, VoIP, Office s/w (DB & publisher, calendar), OCR, 3D designer, etc.
My software is more of a giant interactive spreadsheet -- it's very high level. It's all about making computers work for people. May apps process strings with thousands of exceptions, and need to interface what it's doing to operators. My skill set is being able to sit in meetings, analyse and design software, interpret what people want and need and deliver it -- Very quickly. It's also being able to introduce fixes overnight, and deploy on PCs that get locked away in dusty cupboards for years on end.
It's also about choosing the right development package that has access to "under the Hood" when inevitably some image/voice processing or other is required. I don't know what other people call it but I think of it as onion layer development. I want the high end stuff to have nothing to do with the low-end stuff. I don't want to be able to access the low-end stuff easily. I want clearly defined layers. To me, VB6 was perfect at providing the outer onion layer.
I get VB6. I don't get dotnet. In VB6, someone says they need a menu for something completely different, and I just do it. I like how the IDE is instant... If it needs to be streamlined, I can try it with changing values, recompile several times a minute. I like how i can close VB6 completely and reopen it again in approximately 3 seconds, even with several MB of source code. Of course VB6 runtimes are tiny and that also makes it easy to replace a PC, deploy to hundreds of PCs, or send sample applications to people who have no idea what a dotnet framework is (using INNO installer, as the VS6 packager has been badly deprecated and certainly doesn't work now).
I'm a hardware developer by training, and have a few assembly packages for my drivers, including an extremely simple operating system. I just started to use VB6 when other developers were letting me down. It was intuitive and powerful all at the same time. I quickly learned the fundamental disciplines of procedural layout and error trapping etc, and then I was out there in boardrooms selling stuff, and later as a development manager writing very quick applications for others to fill in the blanks.
But, in conclusion, I know there are people making blindingly good packages with other development platforms, and I simply consider dotnet to be something else. They are just different packages for different intellects providing different types of solution. For me, replacing VB6 with dotnet is a bit like going to an accountant, taking away his Excel spreadsheet and giving him SAP.
Dear L Ofaday,
To answer your main question regarding what is it that I do:
I code. I write programs for a living… and 80% of all the programs I’ve written are in VB6.
For example (and I’m assuming we’re of a similar age, otherwise you won’t event understand the purpose of most of them):
- The first (ever) program to ease the process of maintaining your GeoCities web site (2Geo).
- The first (ever) program to combat PopUps (PopUp Killer): http://software.xfx.net/utilities/popupkiller/
- The first (ever) ActiveX component to provide access and control to the Windows Mixer API (MixerPro): http://software.xfx.net/activex/mxp/index.php
- The first (ever) ActiveX control that allowed developers to monitor and, beautifully display, the audio being monitored through any mixer source (DXVUMeter): http://software.xfx.net/activex/dxvu/index.htm
- The first (ever) keyword-based search engine for Windows (KeyLaunch):
Here’s a nice article about this never-released version of KeyLaunch, which as a bonus, includes a live interview with me and Mr. Leo Laporte: http://whenimbored.xfx.net/2012/10/keylaunch-3-0-or-the-awesomeness-that-never-got-released/
…should I continue? Because I can…
Anyway, all those programs/libraries were developed by me alone, in VB6.
At the time, considering I’ve always been “quite fluent” in other languages, I felt just like you; as VB6 allowed me to rapidly and quite easily implement anything that came to my mind.
But things changed by the time Microsoft released version 2.0 of the .NET framework.
I won’t go into any details (as I feel I’ve already answered your question) but take DXVUMeter, for example… one of the most complex programs I’ve ever coded.
At one point, both the VB6 and .NET versions were equably similar (of course, this has considerably changed in the past few years), but their similarity was limited to just the functionality the library itself provided.
The way some stuff is done in that control is just, well… orgasmic in .NET, while in VB6, is just well, a PITA!
If you are interested, I could give some more “detailed” and “precise” examples, but trust me: coding in .NET is almost as good as having ***.
Markus Melk commented
My company still maintains, develops and sells applications written in VB6. Customers are pleased with our work, they appreciate very much how easy our apps integrate with their Windows environment, often ranging from XP workstations up to Win8/64 notebooks (esp. thanks to reg-free COM - one thing that MS should consider to implement in a native way for a possible VB7 release ;-). No hassle with "oh, you need .net 4.x framework, please take a good hour to install it".
MS would get back so much trust if they would redo their mistake to abandon the most beloved language of the world! Please, Mr. Ballmer, you are one of the guys from the old MS days, back when MS was a proud maker and maintainer of "the Basic" language itself. A big part of MS' success story is actually rooted in BASIC. Please, give it a try and bring the VB-thrill back to us! As first step, it would be enough to do some very minor fixes in the IDE for smoother use in Win7/8. And YES, I would pay +5000 Dollars for a new box titled VB7 (or VB6.1, whatsoever ;-)
Is there any MS response to this request whatsoever? after all these years a new version or an open source is welcome. is that too much to ask.
Microsofts betrayal will not go unpunished but recently i feel like we vb6 devs are getting punished for that.
I'd prefer Microsoft to bring out a new release of VB6. But if they are not going to do that, they should make it open source.
It is interesting to see that this idea is still listed in 'Hot Ideas' even though it relates to a product Microsoft abandoned years ago. And it has more comments than the other Hot Ideas and the second highest votes. (Second to Silverlight, also abandoned by Microsoft).
And despite the idea being accidentally declined.
Maybe "The silent majority of VB6 users" aren't that silent after all.
I can't sign the http://classicvb.org/petition/ either, for the same reason.
But even though I can't vote, I want VB6 to continue, preferably with an enhanced version - a real VB7.
Bring back classic Visual Basic - we have VB6 applications to support.
Excellent... you never know, one day they may get the message. I saw one comment saying that VB.net was beautiful, extremely powerful.
What planet are these people from? Honestly, it is neither of these things and I simply question whether or not these people ever worked with visual studio six & VB6.
I politely and respectfully invite / challenge people to list the good and great dotnet applications that have come out of the dotnet community... I want to see if I recognize any.
Hint - vb6 made me a millionaire .. and you?
@Xavier, I'd respectfully be very interested to know what you do. I'm yet to find a mainstream use of dotnet. (I'm yet to find a Microsoft app that uses it). I'm sure there is one and I simply ask so I can understand.
I'm a classic vs6 programmer and I pioneered some software that was mainly VB6 with a little under the hood tinkering from C++. I turned over a few million out of it.
Is dotnet the holy grail of "wants" for such programmers? I hired programmers to add to my core package, and they kept telling me the virtues of C++, so I gave them free reign and yet for all their undoubtedly impressive acknowledge, they struggled to come up with basic (pardon the pun) GUIs. It was only when I insisted they stick to boring old VB6 that they started being productive.
I don't know how VB6 could be described as inelegant as you infer by comparison -- it was a simple, beautiful, clean, fast tool. It could be used by idiots to produce horrible hacks, or you could introduce management, add-ons for code control, discipline about the use of run-time only error trapping, and end up with some unbelievably solid run-time programs.
So you will understand if I ask.. What do you do?