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
Mike Chambers commented
PLEASE bring it back. With just a few improvements, it can be a very viable language in 2013 and beyond. Most notably, give us the option of unsigned integer variables!
There is a reason many hundreds of thousands, if not more, programmers still use VB6 for some uses. It's simple to write all sorts of useful utilities. It isn't the language of choice for heavy applications, say emulators... but it's a great option for so many tasks.
I've mostly moved on to C and assembly, but I still find myself going back to VB6 on at least a monthly basis for quick GUI programs.
here is a link to some software I wrote part time in less than 4 months...www.nextkast.com I know its written in VB6 and would so much better in .net, Oh PLEASE.. It automates my dance music station 24/7 with 100% up time. I guess vb6 is worthless NOT!!!! oh here is the link to the station is automates www.saDanceRadio.com
Markus Melk commented
Ok, now that the most important arguments to continue VB6 are on the floor - isn't it time for someone at Microsoft to respond tot this thread? Personally, I don't expect from Microsoft that they change their mind on this subject (even if I still dream of ;-), but at least we deserve a respectful statement here!
Most of my customers don't care about what language I use, as long as my products fit their needs. The fact that they are written with VB6 might be a point for my competitors, except for the fact that many of them use VFP or any other tool as obsolete as VB6 itself.
The truth is that business applications, which are the most common products of VB6, need several years to mature, defining maturity as correctness, robustness, fault tolerance, ease of adaptation to changing general requirements and to implement particular requirements.
That is why languages like COBOL, RPG and "C" itself did live that long (even RPG is alive and kicking in thousands of shops).
The MS's stance towards VB is a sign of stupidity which beats my understanding. Previous to every release of a new OS, since Vista, they announce the end of support for VB6 runtime (and in fact it is absent from the first community releases), just to drop it back in shortly before release. Get an abend in VB6, report the pronlem to Microsoft, and you get a suggestion to upgrade to Net; get an abend with any other outdated program, and the only reply is the usual "thanks, we'll check your problem".
The problem is not the customers. but frigging MS's officials bashing the tool and our products. That attitude is absolutely on the borderline of criminal intention.
Lofaday - 0AV com - new IDE abandoned commented
@Xavier.. Sorry, I was away. See the other forum (Bring back Classic Visual Basic.. http://tinyurl.com/m6mkdmv ) -- that forum has "taken off" averaging a comment a day. In particular, they agree we VB6ers do not want it to somehow replace VB.net, we just need back VB6. It's as different as chalk and cheese -- both have the same first letters. Maybe it is a mindset thing, but I can't change it and I'm far from alone.
All I really want MS to do is to endorse it and sell it again -- instead, by saying it's obsolete, they are impeding my skills, my company and my career. I have acres of code that can't be upgraded. I've spent $100K on salaries trying to upgrade, and our apps just do not work as well or at all. The next step would be to rewrite from scratch by employing VB.net experts (preferably with no track record in VB6), but we will end up with something different meaning my client will expect us to commit to a new product approval process, months of testing, etc. It's a product that took a decade to evolve so spending another decade is not a viable business plan (what if they simply don't want it?).
Also, now that I know that Microsoft are capable of obsoleting something as important as VB6, only a madman would give Microsoft a chance to ruin his career twice in the same lifetime by investing years of experience into VB.Net (which is already showing signs of continuity slips.. Silverlight gone, VB.Net not in other promised platforms, take up slow). Before I can go back to bed with MS, they must restore VB6 even if only to prove to me they will Never do anything like that ever again.
For what it's worth, we did rewrite some of our applications and we wrote a code converter (much better than what Microsoft bundled) which allows us to write in VB6 and deploy in VB6 or VB.net -- and guess what? Nobody wants the VB.net version. They are no longer interested. Even the consultants are now confused -- whereas they used to insist we kept up, now they just turn a blind eye (because, for example, they have many thousands of PCs stuck in XP ... that's another story, but related to the same inconsistencies).
So my company is blighted in that we can't sell the company or its IPRs while ever it's based on code which Microsoft gaily tells the world is obsolete. If I'd written it in Cobol, Fortran or Pascal, that would not have happened. Indeed, Microsoft and its crackers inconsistency policy (eg: office ribbon bar, Xbox styled front end on W8) have themselves become a liability -- consultants eyes light up when I tell them I'm using Linux for certain things now. Most of the development community used to be either VB or C++ but has now fragmented and gone to the four winds. Microsoft have simply lost their way and lost their enviable pivotal position in the OS market. All I can do is implore them to at least start their journey back to that place by re-engaging their abandoned original client base.
Finally, re my earlier entry below, I still say VB6 was and is a better, faster, more intuitive development tool, often maligned as a beginner's tool, but one that is spectacularly powerful in the hands of professionals, often delivering benchmarks on the same page as C++ when properly written. Ref mention of powerbasic, pure, real, etc -- all good, but no good commercially if not backed by a major corporation, pref a respected OS builder.
The 3 things I hope Microsoft learn are consistency, continuity, consideration. If you want to be on a no-ads vb6 news feed, please email me as in my username.
Lofaday - 0AV com - new IDE abandoned commented
Well, I can't leave "deserves to die" at the top.. I am sure most appreciate this is a very serious debate (for me at least)... My business has decades of man hours invested in VB6 which currently has no value as a product portfolio, merely because MS say it's obsolete (despite still using it in part for VBA in MS-Office etc). If VB6 were endorsed by MS instead of maligned (ie: do you hear other classic languages such as Cobol, Pascal, Fortran, etc branded as dead?), then my investment would be much revived along with my partnership with MS. If it were also put back on sale, either as is or upgraded, all the better. As many here attest, we can't move on for a variety of reasons -- VB.Net is nothing like VB6, but also we find VB6 still outperforms both during development and when deployed. In short, I need something solid, simple, endorsed by MS, directly deployed on MS-Windows (not on a huge framework that sits on top) and I want it to leverage the cleverness of other deeper development suites -- not mimic them. And if it's not too much to ask, I want MS to right this astonishing betrayal of it's closest clientele by giving us back the future it took with something 100% compatible with VB6. I for one could then generate 1000s of OS sales for MS. In case MS also obsoletes this excellent forum (for which I thank them), e-mail me for a no-ads vb6 news feed -- at my username.
Enner Pérez commented
Is not a bad idea. But, maybe, VB6 deserves to die. ='(
No please add it in!
I see the petition at:
still isn't working.
It displays the message "Unable to save your details. Please ensure all required fields are filled in." even when all fields are filled in.
Does anyone have any contact details for the petition organisers ?
@Leonardo. Yes, what many VB.Net programmers don't seem to realise is that we are not arguing for VB6 instead of VB.Net but as well as.
Let those who want to use VB.Net use it and let those of us who want to use (an updated) VB6 use that.
As you say, Microsoft shouldn't have removed VB6 without a proper replacement.
VB6 was the most productive language MS created; it’s re-support would send a much needed message that MS cares about productivity and it’s users.(but after Vista, Win8, the ruin of Access’s menus and a hundred other preposterous acts this is clearly a forlorn hope. I’ve since gone on to PHP, MYSQL and Linux for servers; lucky me I had the foresight to see .NET, Silverlight & the rest for the **** they are early on. And I’ll tell you folks that same foresight says MS won’t change it’s ways till they’re in the same spot Blackberry is now. There’s nothing here but wasted time.)
They might argue, and not with a total lack of reason, that in most modern organizations tha ability to adapt to changing conditions is more important than program performance.
Programmers are most productive in whatever language they know best.
VB.Net is a finest language, but it is not compatible with VB6, therefore it is not a replacement for VB6. They shouldn't have removed VB6 without providing a proper replacement, i.e. a tool able to receive VB6 projects and produce code at least as correct and efficient as what VB6 compiler produces. And that "migration assistant" is a sad joke.
I don't know of any official and independent studies that would back my claim, but, speaking from personal experience among friends who started working with VB6, I'd say 70-75% are extremely pleased having moved to VB.NET.
The other 30-25% have moved to c#, mainly because of the overwhelming community support that exists for it and, up to some point, they aren't "that different".
I still believe the problem is a matter of mindset.
You cannot "move" to VB.NET expecting to work then way you did with VB6.
The same would apply if you moved to RealBASIC (or whatever name it has now), or PowerBASIC or any other old or modern BASIC-flavored language.
May I jump in here hard on the side of L. Ofaday: VB6 is a fine tool that allows for tremendous productivity; . NET is, to me, a nightmare I long since abandoned. Why MS can’s see this in the number of users who have fled it’s language offerings is odd.
@Winston, Yes it's interesting how the move to .Net increased productivity (at least with C#, less successfully with VB.net) but at a reduction in performance. With VB6 we had (& still have) both the productivity of a RAD and the performance of C.
It is interesting too that Microsoft haven't responded to this thread.
@Steve, Great video link, thanks for sharing... I loved how in the video he avoided the period of VB6 success. In essence vb6 ads the speed of development that .net promises and the native compilation and efficiency of c++.
I hope Microsoft at least gives a reply to this idea SOON, or at least acknowledge the issue and opens a public dialog so we can move forward with this.
An interesting video from the excellent Herb Sutter about the importance of performance in programming languages, particularly the move back from C# to C and C++.
Herb refers to the 'lost decade' when the importance of application performance was largely forgotten in the move to managed languages. And how this is now being re-discovered with a move back to C and C++.
Of course VB6 developers never forgot about performance, but it is nice to see others recognising this too.
Yes I think we can both agree VB6 could handle errors "well enough" and error handling is not a reason to downgrade to .Net :D
In the article linked to in the OP David Platt complains about On Error Resume Next, but actually I find that to be a useful technique in certain circumstances and I don't think it was ever meant to be used in the way he suggested... i.e. if we get a REAL error at runtime just ignore it.
One use is if you execute something and it fails and it simply doesn't matter if it fails or not you can just carry on and deal with it using one line of code... On error resume next. I like VB6 and I like on error resume next. I don't mind Goto either, with labels... not a problem for me at all... just a JUMP statement isn't it... all this crying about gotos boo hoo...
someone needs to provide a peer reviewed study, rigourous mathematical proof or comprehensive field reports to persuade me of anything not just some half assed rhetoric "opinion" i.e. hot air BS or the one who gets the last word in wins.
I never argue... you are either right or wrong, and if no-one can prove it either way it's a waste of time talking
I see this vote considers that Microsoft is losing the war for developers.
Not surprising considering how they have treated VB6 and Silverlight developers.
If Microsoft aren't willing to continue with VB6 and Silverlight they should make them open source.
There's no way to properly nest code in this messages.
C, in fact, had a worst error handling mechanism: most of the library functions just failed and returned garbage without any warning, so if you don't check and validate the return values, you are lost.
In VB6, every error, be it an overflow, a division by zero, a missing file, a wrong index, a bad argument, and so on and on, raises an error.
I use local error checking if there is a chance that the condition might be fixed within the procedure, otherwise, I just let the error bubble up to wherever the error handling might be (or the program breaks with a scary warning, which is a fair punishment for such a careless coding).
I don't consider myself careless, but if I can use a mechanism that allows me to write code without caring about exceptions (because I know that the segment I am working with is protected by a higher level error handler) then I go for it.
Any way, let's just agree to disagree. We are on the same team :-)