Save Ferris! I mean, VB6!

A few days ago Scoble emailed me with the heads up on his post talking about the MVP revolt spurred on, in part, by the fact that VB 6.0 mainstream support is ending this month. Then life intervened and I’m just now getting some time to get back to the whole brouhaha. In the meantime, this has roiled through at least a few corners of the blogsphere. I’d throw in a couple of gratuituous links, but if you read any number of .NET or VB blogs, you’re going to have seen them. Well, OK, two entries that stand out in my mind were those of Dan Appleman and Scott Swigart. There were plenty others that I although thought were good, but one man can only link so much. The petition itself can be found here.

I should start off with the statement that I have a great amount of sympathy for people who have not yet made the move off of VB6 and who would very much like to see support extended even further than it already has. I know that support can be a real issue and is something that people worry about. Beyond that, though, I can’t really say anything because I’m not even remotely involved or included in decisions about things like product support. I, along with the rest of you, will be interested to see what kind of response the outcry elicits.

As for the petition itself, it asks for two main things: 1. That we develop new versions of “unmanaged VB”, and 2. That we integrate those new versions of “unmanaged VB” into the Visual Studio shell.

To start with the second point first, to those who think we should integrate VB6 into the current Visual Studio shell, I can only offer the perspective of a developer who’s worked in both codebases: best of luck. In VB6, all of the pieces of the puzzle (compiler, debugger, forms package, runtime, etc.) were designed to work solely with each other and were tightly bound together. In Visual Studio, all of the pieces of the puzzle were designed to work with mutiple clients and were loosely bound together. Thus, the architectures are totally different and, in many ways, incompatible. Heck, we spent four years getting VB .NET integrated into the Visual Studio shell and we were writing it from scratch (and therefore could design a compatible architecture)! Trying to extract some of the pieces of VB6 and fit them into an architecture that was not designed to couple with them as tightly as their previous home would be a huge undertaking.

And when I talk about a “huge undertaking,” I’m not talking huge in terms of fungible stuff like money or people. I’m talking huge in terms of non-fungible stuff like time. No matter how much money or how many people we threw at the problem, it would still be a significant amount of time before anything could be produced. I’m talking, like, years. So, now we’re talking about having something in, what, 2007? 2008? At best? Ten years after the previous version of “unmanaged VB” shipped? I’m not really sure how that’s going to make much of a difference to the issues that people are confronting today.

Now, obviously, we could still satisfy the first request by shipping a new version of VB6 that wasn’t integrated into the Visual Studio shell, and that would take a lot less time. At this point, though, I don’t believe that even that would really buy people that much. Leaving aside the question of the desirability of a separate-but-sort-of-equal development envrionment, Microsoft has stated very clearly (pace Richard) that managed code is the direction that our company’s components and APIs are headed. As such, fostering new development (as opposed to extending support for existing development) in “unmanaged VB” doesn’t just postpone the inevitable, it makes it worse. It encourages people to keep writing a lot more code that, somewhere down the road, they’re going to have to port to .NET. It’s alleviating pain in the short term only to cause greater pain the long term, something that I don’t think it would be responsible for us to do. (One part of the petition that did mystify me a bit was the request to “Ease […] migration of unmanaged VB/VBA code to VB.NET.” Does anyone think that we haven’t been working on that?)

So, while I can be sympathetic to where the petitioners are coming from, I can’t ultimately support their stated goals. Obviously, we continue to have work around helping people make the transition from COM to .NET at their own pace and helping them be clear on the advantages of doing so. VB 2005 is going to help a lot here, I think, and we continue to work on even more things for the road beyond. In the end, I think that’s the best thing we can do.

85 thoughts on “Save Ferris! I mean, VB6!

  1. Pingback:

  2. Pingback:

  3. Pingback: Rockford Lhotka

  4. Pingback: Frans Bouma's blog

  5. Brian Tosch

    The obvious solution is for MSFT to open source VB6 and let the community maintain it as they see fit. This mitigates one of the largest risks in adopting a closed source proprietary dev platform – that the vendor may simply decide to no longer support/improve it. It should quiet objectors as they get to work untangling what I’m sure is not a pristine source tree – especially since you’d probably strip all the comments out in the process.

  6. David Totzke

    Correct me if I am wrong, but isn’t Visual Basic written in C++ ? I even recall some time ago that one of the accusations against the VB team was that they weren’t dog fooding it and as such not as much care was taken to avoid bugs.

    So, assuming that I am right about VB6 being written in C++, what good would releasing the code base do the VB6 developers? Where are you going to find really good C++ developers to work for FREE and help you continue to develop something they will never use?

    I’ll bet that the test matrix for VB6 is massive. Support for all of the current, and if you extend your philosophy, non-current operating systems and for all of the various different components that are out there in the wild. As Paul said, this is a huge, tighly coupled codebase.

    Then again, maybe I’m wrong.


  7. Ninputer

    Keep confidence on VB.NET! I love it. Please just focusing on how to improve VB in the managed world. Think why VB6 are so welcome, VB6 can make lots of things easier than C++. But VB.NET doesn’t appear much eaier or better than C# in .NET world. The VBers are feeling less superiority complex than before. So the only way is to improve VB, makes it more powerful, more dynamic, more lovely, do not have to type more than C#. VB will be successful if you choose a right way.

  8. Pingback: p u b l i c v o i d . d k

  9. Juan David Gomez

    Dear Paul,

    Please don’t listen to those fools; they are a bunch of losers trying to get by the easy way.

    I know a lot of “Classic VB” developers who are very happy with VB.NET, for instance you can read all the rave (and I know you have) about default instances back at

    That’s a bunch of VB folks saying “Hey we finally have a Powerful, Clean and Object Oriented version of VB, please don’t let us go back to the “toy language” times when C++ and Java dudes called us “programming queers”.

    I know you did a great work on VB 2005 so that the folks that haven’t jump in the .NET wagon yet, can easily migrate, I think trying to relive “Classic VB” it’s a great mistake, please keep all the good work focused on evolving VB.NET

    Thanks Paul!!!

  10. Christopher G. Lewis

    The funny thing that people are missing is that VB 6.0 programs can be run in the WinPE enviroment, while a .Net program cannot.

    I certainly don’t do it often, but have had the request of a client to create a small app that runs under WinPE that prompts for a couple of fields, verifies them, and does an action based off of this (prompts for a city/state, then connects to the closest repository server for the rest of an installation script). I’d never want to do something so trival in C++, can’t do it in a WinForm in .Net because .Net is not supported in WinPE. VB 6.0 is the ideal solution for this, until managed code can run in WinPE.

    Am I currently happy with things? Yes. .Net *ROCKS*, whether C# or VB (I do both). It’s lightyears ahead of Vb 6.0, and its the future.

    I certainly don’t expect Microsoft to update VB 6. If anything, I’d only ask for a VB 6.5, with the 6 SP’s rolled in, and some ever so slight updates (like mouse wheel support and code folding).

    Really, I could just do with mouse wheel support πŸ™‚


  11. Don Tillman

    For all of you who are sick of Microsoft and how they are bungling VB, check out RealSoftware’s RealBasic. Edit and run and compile on a Mac for WINDOWS, LINUX and MAC OS!!!!! Forget .Net, move to RealBasic!!!


    Don Tillman

    (not an employee for RealSoftware nor a PR guy for them)

  12. Karl E. Peterson

    So, it sounds like you’re saying that the Visual Studio.NET IDE is <b>so poorly designed</b> that it can’t accomodate a simple language like Classic VB, huh? That’s interesting. Sounds like y’all really wasted your time, already. <shrug>

  13. Jonathan West

    It’s time to debunk a few myths about VB.NET put about by .NET enthusiasts

    1. The changes were necessary for compatibility with the platform.

    Most of the changes were because Microsoft thought it was "improving" the language. Of the changes that broke existing syntax (as opposed to adding new features), only 3 or 4 ever had a convincing technical justification from Microsoft.

    2. VB coders are too dumb to learn a new language

    This is plain silly. Any programmer worth his salt can learn a new language at need.

    3. You can carry on coding in VB6 for as long as you like

    This is more subtle, but equally wrong. If VB6 is never updated, newer platforms will acquire progressively more features which are inaccessible to applications written in VB6. Eventually, VB6 will not be able to run on modern platforms. So the evil day of rewriting may be postponed for a while, but it cannot be put off for ever. Also there’s no telling when an upgrade to Windows will break a third-party OCX. Most VB6 projects make use of at least one.

    4. All changes of platform involve rewriting your applications

    True to some extent, but the change from VB6 to VB.NET went way beyond the necessary changes. You would expect to rewrite code which makes use of platform features that are significantly different from previous platforms. But there should not be any need to rewrite business logic code. To take a trivial example, there is no reason why a Quicksort algorithm should need to be rewritten because you have a new compiler for a language targetting a new platform.

    5. VB6 & VBA coders hate .NET

    As a VBA coder, I’m quite used to dealing with an object hierarchy for accessing what to me are platform features (i.e. features of the application my code makes use of). Extending this to OS functions seems completely sensible to me. I like the concept of the .NET platform. The problems of VB.NET were never the .NET bit, they are the VB bit. .NET is a great idea, it’s just a pity that VB was never added to it.

    6. VB was always to do with COM and so moving from COM meant changing VB

    VB was hosted on COM from VB4/32 onwards. Before that, it sat on a different architecture (with VBX add-ins), but had essentially the same syntax. Visual Basic 1 was an extension of QuickBasic, but still maintained and extended the same overall syntax. There are VB6 applications around that contain business logic code that dates back to before Windows existed.

    7. There is a practical upgrade path

    It’s best to draw a veil over the shortcomings of the migration wizard. In addition, you can’t even copy & paste pure business logic code because of the syntax changes. You end up having to largely rewrite any substantial application from the ground up. Any VB6 code libraries available have to be similarly rewritten. (Remember, there is no faster form of development than being able to re-use existing working code!)

    Paul, don’t you now regret all those syntax changes that you thought improved the language?

  14. David Cornelson

    Is this about VB or is this about its dwindling marketability? I know some guys that refused to learn .NET and they’re now unemployed. I feel bad for them, but I also strongly urged them to adopt .NET and even offered to help them learn it.

    I see no point in continuing development on VB6. I developed systems in VB all the way back to version 1.0 and then wrote ASP websites with application servers using VB6 COM objects. I made the leap to C# in 2001 and have never looked back. It took a few years to learn OO, but learning C# was pretty easy. In the end, I will say for myself that devloping applications in .NET is vastly more efficient than VB6. If you haven’t tried it, you wouldn’t believe it. There are so many abusive hurdles in using VB6 that I’m sort of stunned to see so many MVP’s attaching themselves to this petition.

    Any MVP worth their salt would have helped people migrate in the last 4 years. Any MVP that’s signed this petition has basically thrown the value of their service to the community out the window.

    Move on people. VB6 is dead. As it should be.

  15. M Snyder

    The authors of VB.Net missed the boat. They took and removed all of the advantages of VB and turned it into a pretty much useless language. The thing about VB6 is that you could write code with minimal debugging. .Net kills our production time. You spend hours debugging stupid little errors that you would never get in VB6. And no it is not because I don’t know what I am doing. Instead of VB.Net, you may as well write in c++ or Java. They say the performance is better, it depends on what you are doing. We use small VB6 CGI applications to run our web product. When I migrated these to VB.Net the performance dropped 300%. The applications are slow to load, clumsy, and needlessly complex. It took over and hour and a half to install. As a developer I’m looking for a lightweight, fast, and portable language that can work in p-code on any platform. If I want 20,000 functions I can buy them from a third party. Half the time the built in ‘components’ are full of bugs, lack functionality, or simply incomplete. If Microsoft wanted to do something for VB developers they could write a VB6 runtime for Linux and Mac. I know they designed from the ground up but it just simply doesn’t fit our needs.

    Imagine the billions of dollars that will needlessly be spent because someone at Microsoft could not figure out a way to convert a 1 megabyte DLL to compile existing code exactly. I find it very difficult to believe. It is just one more way for Microsoft to erode its market share. The functions just aren’t that complex! I mean how hard is it to keep the keyword ‘Null’?

    We are currently migrating our apps to Java using Eclipse IDE. Why trust Microsoft again? The adoption is kind of lackluster, they’ll probably kill that too.

  16. Stephen Bullen

    What nobody seems to be thinking about is the future of Office-based development, which currently uses VBA. Very few people writing VBA applications are programmers – they’re business people who use VBA to make their main jobs easier. Sure, their apps are relatively low quality, but they’re also very quick and easy to create, *exist*, *work* and are often now critical to normal business operations. Very few of them ever had a budget to create and certianly won’t get a budget to rewrite.

    Again, the people creating these apps are not professional programmers – their careers are not dependant on learning new programming languages or techniques and discussions about which language or IDE is better or more efficient are totally irrelevant to them.

    These people know and understand VBA and the Office object models and the *only* way to get them on to .NET is to make the transition from VBA as easy as it can possibly be. If there are separate IDEs for VBA and .NET, existing Office developers will simply fire up the VBA IDE and continue to use it and never investigate what .NET can do; when/if the VBA IDE is eventually removed from Office, they’re most likely to stick with the last version that supports their apps.

    If VBA is combined into the VS IDE, all these VBA developers will then be using an IDE that also supports .NET, which these developers may then get more curious about.

    That’s why I support this petition, and why I urge anyone else that cares about Office productivity and future sales of Microsoft Office to do the same.


    Stephen Bullen

  17. Jonathan West

    Hi David

    This is about two main things

    1. VB6 is going off mainstream support without a decent migration path for *existing* VB6 apps. We all know that new apps can be written in any language you want, and there are good arguments in favor of using the most modern language, platform and development environment available. If migration had been made reasonably practical, nobody would be caring much about VB6 by now.

    2. If Microsoft gets into the habit of confusing languages with platforms, and assuming that it’s OK to make radical changes to the syntax of a language whenever it moves to a new platform, even your busines logic code in VB.NET is going to have to be rewritten in order to move to the next platform when Microsoft gets its Next Big Idea. How do you feel about that prospect?

    If you want to prevent this, I suggest you sign the petition and help jolt Microsoft into understanding that its customers put a value of the code they have written, and don’t appreciate that code being reduced in value because of arbitrary and unnecessary decisions by Microsoft. If Microsoft understands this and makes a policy around it, that will benefit you as a VB.NET programmer as much as it will benefit me as a VB6/VBA programmer.

  18. Standard Languages!!!

    Just to add to the debate.

    I have never used VB or VB.NET, however one wonders whether in a few years time due to architecture changes, software marketeers etc we will not be having the same debate about VB.NET C# or any other microsoft product.

    So all those people advocating moving to .NET environment one has to ask the question of MS as to what guarentee will be provided to the future existence of MS "developed/designed" programming languages or philosophies.

    I would advocate using accepted, formally standardised languages for development rather than being tied to the whims of organisations who are only driven by the bucks and force the business community down roads over which they have little control.

  19. Jonathan West

    It’s all very well to say only to use "accepted, formally standardised languages for development", but that still leaves you needing the services of "organisations who are only driven by the bucks" to produce compilers and IDEs for the languages.

    Of course, with the extent of the changes from VB6 to VB.NET, it becomes about as practical to port from VB6 to other languages and therefore to other companies’ development tools. And there are porting tools for the purpose which are comparable to or better than the migration wizard. For instance, there is a VB to Delphi porting tool available from

    I know of at least one company with a ton of commercial VB6 code which is taking this route.

  20. Monte Hansen

    There are things that MS could do, if they wanted to satisfy concerns of its customers assets (VB code that is); but they dont/wont.

    Ive packed my large VB code base and put it on the wall forever more (some really nice stuff that I never completed that isnt worth completing or porting). <b>My protest was to give the finger to VB#</b> and move to Eclipse — the best development environment I’ve seen yet — and yes for java.

    I _really_ love C# as a language, and think they did a good job on the core .net libraries in such a short time. But it doesn’t make me feel any better.

    How many champions can MS afford to lose in the development circle? These are not just developers/customers but that also people that do evangelical work for something that desperately needs momentum. Anyone looked at dice/monster for .net jobs lately; how about compared to java jobs?

    Duh: customers wont adopt .net if the developers dont adopt it. Developers wont adopt it if they are hung out to dry.

    I work for a company with a top ranked IT dept. They were FORCED to dump (aka rewrite) tons of VB code. Forced with that choice they chose java, and I think they chose wisely. Its a shame MS didnt leave much choice.


  21. David Totzke

    M Snyder said:

    "You spend hours debugging stupid little errors that you would never get in VB6. And no it is not because I don’t know what I am doing."

    It’s _precisely_ because you don’t know what you are doing that you are having so much trouble. It takes time to shift your paradigm (somebody had to use that word eventually) and if you are coding in VB.NET with a VB6 mindset, you’re absolutely going to have problems. We all did to some extent.

    Once you move past it however, the productivity enhancements are undeniable. Anyone that says different is absolutley wrong. And that’s from experience, not from any "marketing" crap from MS. Having inheritance alone at your disposal is a monumental benfit. You could fake it before with containment and delegation, but it’s not the same and takes more code. Code that could be buggy.

    Monte Hanson wrote:

    "They were FORCED to dump (aka rewrite) tons of VB code. "

    Forced by who? Not Microsoft. My God man, there are still millions of lines of COBOL running out there. And there’s even a COBOL.NET.

    Longhorn is a very long way off and Microsoft has said that the VB runtime is part of the test matrix for Longhorn and that VB programs will still work. It’s the IDE that will be unsupported but in the almost 10 years I’ve been writing VB code, I’ve never once had to get support from MS for the IDE. Never. So what’s the problem?

    And moving to Java? If a developer can make the intellectual leap to programming in Java, VB.NET would be a breeze. All of the complaints about the changes to VB apply equally to making a move to Java. Perhaps more so.

    Anyone that is advising their clients or employers to dump their existing VB6 code-base and port it to Java or VB.NET or whatever should be sued back to the stone-age for malpractice.

    Dave – Visual Developer.NET MVP

  22. Richard Bethell

    My problem is not the skills, they’re easily transferable to Nor is my problem managed code. We’ve done all our newer apps with neither VB, nor VB.Net, but C#. It is a nice, elegant spin on the classic C syntax.

    My real problem with what Microsoft did to us on VB6, is that we’re left without a migration path forwards. We’ve got huge, huge applications, and I just can’t justify pitching an upgrade to VB.NET to my superiors – I mean listen to the pitch!

    "Well, we need six months to be left alone to upgrade application X to this new platform, so that we still get Microsoft support on it. When we’re done, and have spent $XXX,XXX on it, and XXX person-years, we’re going to have the exact same version as now, but it will be…. um, cool!"

    I’ll get laughed at! The upgrade wizard has to get better, and we need compatibility classes for stuff like the printer object, or people like me just can’t go forward – you haven’t given us enough to take back to our companies, and sell this sort of thing. You’re going to have to do better than tossing in Artinsoft-rented conversion widgets, and make conversion a more fundamental (and better) part of what VB.Net does.

    That’s why VB6 developers still outnumber .NET ones. You just haven’t given us enough – and the threat of support expiring out on us is probably not going to be enough to do it.

  23. Monte Hansen

    Hi David Totzke,

    How big is your Visual Basic library? Mine is pretty big, but it’s a drop in the bucket compared to my employer, and countless other companies who have invested big time in building systems and business logic in VB. Microsoft sold VB as a strategy, and companies bought it. Companies implement strategic decisions years in advance, and now they have to deal with the sunset of a language and support thereof. This means they will maintain it to the extent they can, and ask themselves how long can they hold off from porting it. And this talk about the technicalities of the public support agreement is BS — this is a message to the corporate universe that says you must make the jump, either to .net or to java. Developers may not understand this, but IT executives do.

    This would never happen to Java because Java is bigger than Sun. VB is not bigger than Microsoft. For those about to jump, I salute you.

    Monte Hansen – Visual Basic MVP

  24. Pingback: Panopticon Central

  25. Alex Feinman

    But what exactly prevents you from taking your "tons of exisiting VB code", componentizing it and reusing it via COM interop from the .NET applications? The Windowing/Threading model of VB was ok for Win16 but it long has outlived its usefulness. Nobody says you have to port millions of lines of code (assuming you have it) over night. But if you took your head out of it two years ago, you would be half done by now. It’s not like end-of-support date has been announced this month.

  26. Monte Hansen

    There’s a principal you don’t seem to get, and it has little to do with migration or interop. You are a smart guy Alex, but perhaps the urge to throw out useless smart alex remarks makes you think small minded on this issue. Please keep your insults to yourself.

  27. John Travis

    When I decided to go the Borland Delphi way a lot of people told me I was crazy and that Borland (and Delphi) would not be around in a few years. Well, the years have passed, the VB guys have been left in the cold, the C++ and VB guys are starting to see the joy that I’ve been enjoying for almost 10 years (a Pascal dialect as powerful as C++ and as easy as VB), that compiles and uses the best features available in Win16, Win32, Linux-Intel and .NET (no .NET2.0 or CF feature support *yet*, though.), and has a mature component market that is huge and top-quality. No runtime headaches, no dll hell, no crappy 3rd-party addons, and of course, Delphi was made in Delphi from the start…

    I can still load Delphi 1’s (Win3.1, 16-bit) demo in Delphi 2005 (.NET, Delphi v9) and compile it without a hitch, or develop my code with VB, Delphi Win32 or .NET, C#, and soon C++ personalities.

  28. Conor Delaney

    I decided recently to transfer my skills from VB6. to VB.NET, but now I am having second thoughts. VB.NET is not Visual Basic, by any stretch on the imagination. It is indeed a very powerful language, but the amount of time I need to reskill is unreasonable. Why do I have to change to VB.NET? What was wrong with VB6.0? If there is a problem with VB6.0 why didn’t Microsoft ease the pain by giving Visual Studio .Net away free? I realise that I can’t stay with VB6.0, but where do I go now? Java or Delphi, RealBasic or do I bite the bullet and go with .NET (but how can I ever trust Microsoft again?)/

  29. Pingback: Keith Rull

  30. M Snyder


    It’s finally nice to see someone who shares my opinion. For all it’s worth I’ve sold over $10 million worth of VB6 software. An I’ll tell you what… It’s great stuff and it works. I wish I could say the same for .Net. But I can’t because my customers refuse to install the framework.

  31. John Baughman

    Conor: Just so you know, you don’ t need Visual Studio to learn and create C# and VB.NET apps, jsut a little patience and a bit of tedious winForms work at the DOS prompt level with the .NET SDK (free from Microsoft).

    I made the switch to VB.NET and I have seen an IMPROVEMENT in my coding time and debugging time. The only difference between using VB.NET and VB6 is for small text file manip jobs. For that I have made the switch to WSH. In time, I’ll be able to flip that over to VB.NET too.

    There are some features I would like to see added to VB.NET that C# has (XML commenting is one), and maybe they’ll be in VS2005.

    I’m looking forward to the future with .NET (C++ included!)

    If VB6 is included in VS<whatever>, I won’t even bother to install it if that is an option. How is that helping the cause? It’s like watching TV and an objectionable program comes on. If you don’t like it, change the channel. I personally don’t like VB6. I had to fight my way around the shortcomings that are RESOLVED in VB.NET.

    I’ll step down now…

  32. Pingback: Panopticon Central

  33. Mike Mitchell

    It amazes me that the VB.Netters (note how I avoided a possible play on words there) are still banging on about their remarkable new language that hardly anyone uses and .Net that hardly anyone downloads, while Linux goes from strength to strength. I left programming ages ago, mainly because of what Microsoft did to the VB developer community. Like many here, I will never trust Microsoft again. I firmly believe the company represents a modern form of Stalinism, and ex-VB6 devs are all expected to feel at home in the .Net gulag – with maybe a little "extraordinary rendition" to persuade them, like having their MVP status lampooned. Well, not me, and by what I hear, not a lot of others, either. I was just an ordinary VB developer who made a living, quite a comfortable one, by working with the most fantastic programming product of all time, namely classic Visual Basic. And then Microsoft chucked it in the trash, just like that. From that day on Microsoft became my Saddam, just as the latter did for George ‘Dubya’ Bush.

    Anyway, one day Microsoft will be history and will join all the other once-great companies that screwed their customers over. As I commented years ago, I reckon the decision to take a dump on classic VB developers will stand out as a milestone in Microsoft’s downfall, which cannot be soon enough for my money. Already the EU has forced the company to play fair with the competition by introducing a version of Windows without WMP, something the mighty US justice system singularly failed to manage. Who knows what else the EU could achieve where the Americans on their own turf failed? Perhaps the thousands of businesses in Europe who bought and used classic VB in good faith would have a case. I certainly don’t think the company should be allowed to get away with it, ruining livelihoods, costing companies and individuals dear. What Microsoft did was, as someone else pointed out, unconscionable, and anyone who has lived through the last few years and stays with Microsoft development products needs their head examined.

  34. The dev to be named later

    Write in VB, get obsoleted by the designers who sold you the idea of using a runtime.

    Write in .NET, get your stratospherically high-level code dumped in an hour (if the client bothered to install it). Pray the designers stay enamored until you retire.

    Write in C++, target multiple platforms and never look back.


    I have serious concerns deploying .NET code outside of a server environment. Your proprietary "development system" is not ready for client-side production machines.

    As to _time_ and your reference to a silly release date, my only question is: Where’s your thumb been the last five years? We know your attention has been on CORBA and Java but….

  35. mappin

    Well Isnt The . Net framework supposed to support any language???

    maybe someone will write a vb classic compiler for .NET

    The in the meantime for those of you that wrote code in VB6 and have been left hi and dry you shouldnt me surprised at all.

    When VB went from 16 bit to 32 bit the same thing happend and there was exactly the same problem … with backward compatbility…. or have you all forgotten the VBX -> OCX night mares

    Funny though, it was about that time that Delphi suddenly became hugely popular… because Delphi developers had no such upgrade issues….. (and it was way superior)

    Its pretty sad that MS managed to spread so much FUD that delphi began to fade away….

    Interestingly Borland has just released Delphi for .NET 2005 and with minute adjustments (mostly conditional compiler directives) all the delphi samples recompile in .net pretty much with out fuss….

    So those guys still smart enough to make their own choice and use delphi… can now

    compile to either

    Native win32


    Native Linux (in many cases).

    All from the same source code

    All from the same IDE

    All from the same Components…(delphi components are written in delphi)

    Eat your heart out. πŸ™‚

  36. vbfanatic

    i think anyone who wants to stay with vb6 can… if in time the vb6 becomes obsolete they will be forced to new language or moveing to another compiler thats it point sent

    thos who move to vb.NET will have advantage because they made the move before the obsoletion of vb6.

    Personally for what i use vb6 for is fin i wont go any farther with windows anyway if i ever leave xp it will be to linux. but for those who plan to keep with windows my suggestion is try vb.NET you dont know until you try, if you dont like then go to real basic its that simple case closed

  37. Sideout72

    I read an article from VS Magazine, and a link took me to this blog post.

    I developed an IIS5/ASP/VB6/COM+/SQL2000 application that is running a 1700 person public company. I started 3 years ago with one other person. I’ve created a huge number of tools that allow a very small team to develop software quickly and with few defects. I’ve got no performance issues. How could I recommend that the organization "upgrade"? There are no business reasons for doing so.

    I love MS and their products. However, one issue that irks me is how they pushed Windows DNA so hard, we created a stellar app that controls everything there is to know about their organization using their technology, and now we won’t be able to get support (if needed). Who knows if VB6 will even be supported on Windows 20XX?

    It will cost a lot of money to convert hundreds of thousands of lines of code (ASP and VB), reconstruct a new architecutre, create new code generation tools, etc.

    What a pain.

  38. AlBruAn

    I, for one, don’t understand all the complaints about VB6 not being ported to .NET. To me, that’s akin to complaining about Microsoft not making QuickBasic, with its text-only mode, compatible with Windows. I don’t recall hearing anyone complaining about the difficulty in porting QB code, locked in as it was to the procedural model, to Windows and the event-driven model; nor do I recall hearing complaints about having to rewrite all the QB UI code to run under Windows.

    I read a post from someone who started developing "a huge number of tools" three years ago with VB6; why did they choose to start the development work in VB6 when VS.NET was being released, especially since managed code was the direction in which MS was moving?

    When Microsoft released VS.NET three years ago, I rushed out and bought myself a copy of the Enterprise Edition because I didn’t want to be left in the dust. I wasn’t about to rely on my employer, a Fortune 50 company, to keep my technical skills up to date because that isn’t/wasn’t their responsibility. As it turned out, I’m glad I took the direction I did; less than six months later, I landed a new job programming in VB.NET and C# immediately after having lost my job with the Fortune 50 company in a major reorganization.

  39. Jim

    How’s this for a comprimise? Release a new version of VB6 by itself just the way it is with a handful of minor differences:

    – SP6 integrated.

    – Code Advisor integrated

    – Option Explicit On by default

    – Option Obsolete Off. This would disable support for some legacy features such as GoSub and DefInt.

    The point behind the last three idea is that this would help VB6 developers to get their code more .NET-ready while still in VB6.

  40. Francois B

    I am all for change and progress but I work for a company and not the company for me. I cannot financially provide justification for rewriting an application that is working. A lot of programmers are missing the point. The economies of most countries are taking strain. Directors and managers are getting sick and tired of Microsoft’s strong arm tactics. I have been told if we rewrite then we move to another development platform. We were led to believe that Microsoft total cost of ownership is lower than open source. When considering that you have to rewrite code the picture changes a lot. I have been a staunch supporter of Microsoft and its products for some 12 years but guys you are selling us down the river. Provide us an upgrade path and we will follow otherwise you force our managers to make decisions which make financial sense. PS – Code is written for users not for programmers.

  41. Sideout72

    AlBruAn – Most business will not move to the first-run of a technology. You are correct – VS.Net was just recently released at the time (November 2001 was our implementation time) and with all the issues with regard to security patches and the like with IIS5, it is hard to get an organization to take a chance on IIS6/.Net/etc which did not go through enough real-world attacks, etc.

    The decision was made because not all the "best practices" for developing .Net software were created yet, and (as in many first-run Microsoft products) there was risk that it was not bug free and more secure.

    Moving our code in pieces is possible (ASP, VB6 in COM+, SQL2000), there is too much risk for the company to do so.

  42. Conor Delaney

    Look, VB6.0 and Quick basic are as different from each as VB6.0 and VB.NET. It is one thing to upgrade code from one iteration of VB to another (ie. VB4 –> VB6) it is a completely different to be left with an abandoned language while the provider of that language sails of into the sunset with their new golden child….. Since my last post I have learned and at the moment it reminds of a cross between Betamax and an exotic British Sports Car….technically brilliant, but needlessly complicated. The argument for moving to Linux(ie. one or those languages) or Delphi or Realbasic can be summed up in one word…consistency. So what if Microsoft have created a technically brilliant language/java clone, I don’t care, all I care about is that I can still make a living out off that knowledge about VB/Database and Windows API that I have accrued over all these years. It didn’t come cheap, it took alot hours of study and experimentation. What will we do with all our code libraries…recode to VB.Net? At our own expense? Or is Microsoft going to compensate us for our time and re-skilling. VB.Net won’t sell itself you know.

  43. Dick Beninya

    This is so simple. What is a company but it’s customers. (nothing) What are MS customers needing? The ability to convert VB6 code to .net. Has MS given them this. Not . So What is the choice. Convert to .net or somthing else. Why convert to .net when you could convert to another companies product and be assured that they won’t leave you high and dry. It cost $ to convert so if you have to you must choose the most efficent converion is this an MS product(.net) I think not if 5 years down the road you will have to do it again. MS has lost sight of what matters. The customer (The Developer and there customers). They are arogent. The think that what they say goes, and that is clearly not the case. Just as IBM had to find out the hard way your custmer is everything. Any company, including MS is three years away from total collaps. IF MS continues to dis there customers they will fail. This is not about what is the best programming language or environment. This is about buisiness. Its about $. MS is not providing value for its current customers. That is a fact. Deal With It.

  44. Peter Pierse

    I wonder how many of the contributors that support the move to are actually self-employed or run their own business.

    I have made a very good living using every version of basic from GW-Basic forward but noe I’m in trouble.

    I think VB.Net makes a very good contribution to the evolution of programming. The problem is that to switch our apllications to it will simply break our small company.

    A better migration is not an unreasonable request.

  45. Corey Downie

    I’ve been working for a small company for just over a year now right out of college, and we have been working with both VB6 and .NET. I am _loving_ .NET, but i can see how some people may be stuck in the VB6 grove.

    My question is this. If microsoft made you a fancy point and click tool to convert all your old VB6 code to .NET, where would that leave us the programmers. How many people right now are working writing new updated versions of old software, and how many of those people would have no job if there was a tool any IT worker could use to convert your old work.

    And why, just because support is ending does your old software need to be converted. If you old software is as great as you claim it to be, it should be finished, and not need support. Dont fix what isnt broken man.

  46. John Littleton

    Man! Did I stumble into something, or what?!

    I’ve been a VB developer for quite a few years now, went through all of the C++ vs. VB flame wars, and now we have VB’ers flaming VB’ers. Sheeesh!

    Seriously, I sort of felt abandoned at first when MS announced that VB.NET would not be compatible with VB 6. Like any developer worth his/her weight in salt, I just played with the first releases of .NET while continuing to code in VB 6.

    When I did make the change to VB.NET I couldn’t believe that I hadn’t done it sooner. I know all the arguments about existing code bases, and re-writes, etc. but we’re doing things in VB.NET now that just weren’t feasible in VB 6. We still have some people working with/supporting VB 6 apps. We have also built some libraries in VB.NET that weren’t possible with VB 6, and have created COM wrappers so that we can use those components to upgrade the old VB 6 apps with additional functionality until such time that we can do the port. In other words, we currently have the best of both worlds, and are preparing for the future. I just don’t get all of this.

    For those that have become complacent and adverse to change – that attitude will be your downfall – not the change in language.

  47. Mike S.

    If GM can make 75 models of automobiles every 4 years I think Microsoft can swing making two versions of VB. Let us decide which version we want to use. One version does not suit all. Many of us have tailored VB6 to suit our needs. Doing this all over again and finding all the little hacks, tweeks, and bugs in .Net is a real p.i.a. Why can’t a p-code application have a runtime that gets updated??? is it too much to ask?


  48. Guru

    Read about what all others said. But before i say anything, something about me. Been developing since 12 years.. started with basic, c, cobol, foxpro, vb3 – vb6 and now .Net. After acquiring very superior skills in vb6 (years or exp) now its absolete.

    Ask me what im doing till now -> Developing applications for customer. Which in most cases automates their business process.

    I agree .Net is a much better approach than VB6. But to run .Net, you need the framework installed. You cannot compile it to a native code. Its pathetically slow and resource intensive. Now i need a fast system with min 512 MB Ram!!! Ok fine, we will upgrade it. But what are the benefits? and how much $ and time you burn in the process. Think over.

    When companies upgrade, they will upgrade when their process changes or the company grows. So MS should support their OS or language until there are any users using it. They should not stop their support.

    Its like when i upgraded from Win2k To XP, there was no visible advantage in my day to day life. But just burn 400$ and give it to MS and another 500$ to upgrade my system!

    most of my clients wonder, as the hardware capabilities increase, Java and delphi run faster, but MS products consistently appear to be slower than the previous versions. I have hard time asking them to upgrade their hardware as the MS releases newer versions.

    Just dont look at a programmer’s perspective. Look at the value for your money, you will realise what other people are telling about migrating apps to .Net. Its not just about the skills, but about the upgrade of the entire infrastructure to .Net, inspite of not have any upgrades in their business process.

    If i was a manager, i would take this opportunity to dump MS and go for java or delphi, where i will have higher value for $ spent.

  49. Anthony

    I don’t think there is any question that .NET is very nice, and if I didn’t have YEARS investeded into millions of lines of VB Classic code written, it wouldn’t be an issue.

    As a VB 4/5/6 developer, and someone who’s company has a lot at stake if applications written in VB6 wind up unsupported on a future OS, I have a suggestion for Microsoft.

    PLEASE guarantee VB6 users that you will fully support VB6 apps on all future OS releases AT LEAST until you give us a migration tool that will adequately (98%? 99%?) migrate our (billions?) of lines of code into your .NET architecture (and the ability to compile natively would be nice to have back as well).

    Just let us migrate our code, and (most of us) will stop "whining".

  50. Belfaster

    You guys aren’t mentioning the use of Virtual Machines (VM), which allow you to upgrade your host PC as often as you want, but preserve a VM for running a legacy VB6 app.

    But ya, I think they should open source VB6 so it can evolve instead of die.

  51. See sharp

    Just out of curiosity, how many of you have ever wondered why a programming LANGUAGE needs to change it’s syntax?

    I mean, look at ANY other language out there. Platforms change, new libraries are created, better, faster ways to implement solutions are put forward, USING THE SAME SYNTAX. Some languages are better for certain tasks, some excel in other areas.

    I submit that one of the problems with VB to begin with, has been it’s lack of a well founded theoretical base. To a person like me, old school if you will, VB’s syntax (or lack thereof) has always been a mystery.

    I see many similarities between VB and the way MS implemented the (ab)use of wild cards in DOS commands. In Unix, well defined regular expressions, based on a solid reg exp theory, are used by the OS as part of launching commands. With MS-DOS it was more of a happening from command to command. (Which is exactly what it was, since wildcard handling wasn’t part of DOS, but handled separately by each application.)

    Why am I saying this? It may cost individuals and companies billions of $, but I think that computer programming (as a profession, skill and even art form if you will) will benefit in the long run the sooner this hybrid disappears altogether. It was a hack that probably never should have seen the day of light in the first place, much like DOS. They have both served their purpose and deserve a beautiful funeral at best.

    Having said that, I really feel for the companies that have all this time and money invested in VB6 software and who today feel the need to port their code.

    My advice: Don’t port unless you have to! If it works, keep it! But next time you choose a programming language and a platform, choose something less volatile than VB. Of ANY version.

  52. Lucas Darten

    I got ahold of a beta (or something along those lines) version of quite a while ago. It honestly scared the crap out of me; nothing worked, it suddenly took forever to do ANYTHING, I hated the entire interface, it was essentially a piece of crap. I was very worried that all this vb knowledge I had gained on my own was now pretty much pointless.

    Fast forward quite a number of years and I decide to go back to school and what do you know, everything is .net.

    So, I bite the bullet; install it and learn it.

    not too bad, it works. makes more sense.

    But I still have issues with net. why the heck did EVERYTHING have to change?

    I understand the architecture changed, but keywords changed? why? How does that relate to the architecture being different. There are some things that seemed to change for no reason other than to confuse programmers (and encourage them to get new certifications).

    Personally, I believe that a lot of things changed for the simple fact that if it looked too much like vb6, people would think it wasn’t much different than it.

    I dunno, tired, up too late, hopefully I’m not embarrassed by my rant in the morning.

  53. ReapeR

    I don’t know if any of you is still going to read this as the last post is of 11/17, but there is a Microsoft.VisualBasic namespace (you really shouldn’t use it) but at least you can see that microsoft has heard you. they didn’t had a choice but to make a new language, while delphi was a well designed language that produced fast code and was easy to make .net compatible (like c++), vb just wasn’t because of how it worked, and for those that say that .net is slower than vb, its a lie, the same way that java can run faster than vb (and net 2.0 is faster than the latest java).

    No I’m not a microsoft guy, i’m actualy a beginner programmer that likes to try things, hope i helped with the info about the namespace.

  54. Roger Mullan

    To whom it may concern


    As a VB programmer that started with version 4, I am disgusted with what Microsoft has done in breaking compatibility. I have a pile of applications written in TRUE VB and I will maintain those applications in VB6 and not migrate them to .net, as for new development, I will favor Delphi from Borland, in PROTEST, at lease they care about their developers.



    Should Microsoft not bring back a .COM version I will shift completely away from Microsoft development and to PHP, Delphi, and MySQL and will encourage other developers to do the same.



    Microsoft has failed to note that developers do have some say in what language, software in there departments is developed in and what servers they run on. Perhaps if Microsoft shareholders start to feel it in their bottom line their board will be forced to take notice of the now disgruntled development community.



    So I encourage everyone to boycott Microsoft till this is remedied. Personally I will start with recommending to our head office to freely distribute OpenOffice to our 30000 strong client base as a start.



    Microsoft has betrayed us, we should all do something about it.



    Roger K Mullan


  55. Ron

    Letter to Microsoft.

    I wish to return the enclosed Visual Studio 2005 Professional for a refund.

    Copy of original sales receipt is enclosed. It was purchased from on 2-1-2006. The software has been uninstalled and I have no backup copies. All related media and manuals are included.

    I want to return the product because what you call Visual Basic in this version is not Visual Basic. I currently use VB6 and the conversion from VB6 to the new version of VB is not feasible.

    I have always been a great supporter of Microsoft and in fact in I have been contacted several times in the past with surveys about my opinion of Microsoft and I always gave the highest rating possible. When the first version of VB.NET came out I was disappointed about the direction Microsoft was going with VB, but I thought I would give you guys a few years and things would probably change. In fact I purchased the first version of Visual Studio.Net, and even though I knew I would never use it, I did not return it for a refund, that shows how supportive I have been of Microsoft.

    Now my support and good feelings about Microsoft are beginning to run thin. I feel though I, along with every other user of VB6, have been abandoned. Within the next 2 years either I am going to upgrade to a REAL version of Visual Basic, if Microsoft decides to go back to what is really VB, or I am switching to a non Microsoft development platform.

    If Microsoft does not change from their current direction with VB, I will never use another development product from Microsoft. It may be just as easy to convert to VB.Net as to another platform, but I would not invest that much time and money into a company that can just abandon you as easy as Microsoft has shown that it can.

  56. John G

    As I peruse these comments made by many intelligent people and some not so much, it makes me think about opinions are ***holes, everybodt has one. That is about the extent of it.

    I used VB6 (occasionally, still do) and loved it. I made the jump to VB.NET, and initially like most, I hated it.

    When I got used to true Object-Oriented programming and the .NET platform, I fell in love with it. But that is my opinion, for whatever that is worth. All these other languages are all good as well. Jave, C++, C#.

    Those who responded are all entitled to their opinion, but be civil to each other, and try not to condasend just because you think this is better or VB6’s can’t be real developers. All that is hokus pokus.

  57. Dimitris Anoyatis

    For me the real dillema is whether a developer needs to make the jump from VB6 to .NET or not. The answer to that depends entirely on the kind of projects that developer is asked to participate in.

    Personally I cant change VB6 for anything in the world. Call me old fashioned, a dinosaur or whatever… for me its not only the tool that I love its that having discovered its limitations I can push myself further on how to circumvent them. Its also closer to the first BASIC dialects (remember what BASIC means = Beginners All Purpose Symbolic Instraction Code). The ones I loved and spent lots of time trying to figure out

    how this mix and match of instructions worked; going through code line number by line number.

    It would be awesome if there was an equivalent open-source language to VB6 with a nice import tool

    and the wishlist that all VB6 loyal users asked MS for

    Year after Year… (better support for Object Oriented constructs like inheritance, stand-alone executables, etc) and when that happens (cause it will) I am pretty sure you’ll see those .NET developes that made the jump, dropping it (I mean the .NET framework) like a sack of rotten potatoes.

    Basically its not the hype that matters. We all use different tools for different tasks. VB6 is one more tool that NEEDS to be in our toolshed. I am not saying abolish the .NET Framework or Java,PHP,C++,Python etc. Rather than doing that, go ahead and give developers the right tools, the tools we can all love to use (and VB6 has been loved by many of us) and make our lives easier and happier.

    As developers we have a responsibility to go beyond the marketing schemes and make sure that every tool we use has been evaluated and not make jumps and switch to platforms that require us to reinvent the

    wheel all the time.

    For time is one of the most valuable weapons we have.

    This is my humble oppinion.

  58. FSWolf

    Wow after reading thought all these posts. Ill just keep my thoughts sweet and short. VB6 was sweet and easy. Were as .net seems to be a robust pain.

    I think its just time to change operating systems all togeither(Say Linux or better yet πŸ˜€ lets all get apple) and pick up C++.

    That was a very good point See sharp made about keeping the syntax the same. Its my hopes that some day microsoft will stop with this foolishness and have some consiteration for developers. As well as there other users and supporters.

  59. ABID ALI

    Microsoft Care Its developers and as one said they don’t support COM in later version wrong Microsoft Provide COM Support in VB .net, ASP .net by the help of CCW(COM Callable Wrapper) and RCW (Runtime Callable Wrapper) by which you can use your COM into .net platform easily.

  60. Humayun Shabbir

    Visual Basic was derived from BASIC, VB.NET is from VB6…Should we do some effort and develop a better programming tool that have best of all ?

    On other hand is that possible that we have VB6, VB.NET and C# integrated into one language ? So developers decide what is best for them without worring about syntax issues.

  61. another MVP

    After getting rev 2 of Vista, I tried to install the VB6 IDE, and guess what? It will not install! Anyone think that is a coincedence? VB packages will install alright, but network printers get piped thru the XPS (software) printer for some reason.

    I tried to load the IDE to help me debug it. It prints fine to the local printer (CutePDF), but not to the server (Wifi connection)

    Also, a clean install couldn’t find the network, modem, or sound drivers. That night, it found the modem, but not the sound (but Windows Update isn’t supported).

    My 2 cents.

  62. Dave A

    Why not face the truth. Microsoft are a company driven by profit. The only way they make profit is to release newer better components that customers buy. So in a few years time it will be no suprise when .net is no longer supported and you must have the newest technology. Of course to get it you must send money to Microsoft. What does .NET offer the humble user like myself that dabbles with programming in VB 6.0 and C++. Answer absolutley nothing. What will windows Vista offer me? Answer absolutely nothing. I will be forced to upgrade oneday as all the Microsoft diehards will buy any new software simply because it is Microsoft.

  63. Elroy Sullivan, PhD

    I have been coding in VB, QuickBasic (PDS), QBasic, and Microsoft Basic OS for 25 years, and I don’t get it. For decades, Microsoft was the company that "got" upward compatibility. Back a couple of decades ago, I can remember it being a struggle to come to a profound understanding of event driven code and actually letting the operating system have control before my program terminated. However, I soon learned that I could cut-and-paste huge portions of existing code into procedures, and that they would run without modification. I eventually cleaned up this code, taking out the GOTOs and GOSUBs, but I didn’t have to! I remember when class modules and user control modules were added to VB. I now have a whole library of my own user controls, such as labels and buttons that have rich-text on them that can be pasted onto the control from WordPad. However, the important point is that I could ignore these new features until I needed the advanced functionality they offered. With VBNET, so much of my library is "broken" that it’s too much work to change. I love learning new things, but I HATE being told that I have to.

    On the COM vs NET (i.e., managed vs unmanaged code) framework: personally, I couldn’t care less about this so long as I can still call DLLs, make API calls, build Access databases, and automate Microsoft Office applications. Furthermore, I can’t understand how this dichotomy drives many of the changes made in VBNET. For instance, what’s the deal with making all arrays zero bound? This breaks so much of my existing code that it’s ridiculous, and what’s this have to do with COM vs NET? Sure, I can write a wrapper for each of my arrays so that they are zero bound, but why should I have to? Why doesn’t Microsoft add an “Option ArraysAnyBound” statement to the language which will allow arrays dimensioned with negative subscripts, or whatever. Wouldn’t it be trivial to push this down into the bowels of VB so the programmer doesn’t have to worry with it?

    What’s with changing all arguments to ByVal? Once again, why break everything? Why not have an “Option ArgumentsByRef” statement that fixes legacy code? I have gotten VERY familiar with keeping track of what is passed ByRef and what is passed ByVal. Why break so much existing code? Sure, code translators can attempt to fix this, but why do we need to bother?

    The “short circuit logic” also breaks a great deal of code. Once again, I can’t see how this has anything to do with the COM vs NET issue. I have gotten very comfortable with using a “Select Case True” statement when I am testing for several conditions and I want to jump over certain evaluations when an earlier one goes true. However, if I write “If ThisFcn() Or ThatFcn() Then” I expect both ThisFcn() and ThatFcn() to execute. In fact, I may depend on it. Once again, why not have an “Option NoShortCircuitLogic” statement in the language?

    This one may be a little more difficult, but why do away with fixed strings? I use them frequently in structures (User Defined Types; UDTs), and I know exactly what to expect, even with the invisible ASCII to UNICODE conversion issues when writing to files? Are the hoards of programmers at Microsoft just too lazy to implement this feature?

    Why change the value of “True” from -1 to +1? I know that other languages use 0 and 1 (or +1) as true bit operators to indicate “False” or “True”, but, since the beginning of time, a “True” in basic has been a two-byte integer will all the bits turned on (i.e., -1). This brings up another point. What’s the deal with changing the Logical Operators to pure Boolean Operators. Any VB6 programmer worth his (or her) salt knows that all the Logical Operators are actually bitwise operators in all cases. If you don’t believe me, try “Debug.Print CInt(True Xor 5)”. I’ll let you figure out the results. In VB6, when forced to make a Boolean interpretation, such as “If .”, anything that wasn’t ZERO was True. This is why some novices can’t understand why “If 1 And 2 Then .” evaluates to False. However, I digress. The point is, why “break” all existing code that is based on these understandings? Once again, why not have an “Option LogicalsAreBitwise” statement that allows legacy code to execute unaltered?

    Why did Microsoft do away with statements that didn’t seem to do any harm. The LSET is a good example. I frequently deal with motion capture data files that have data stored in old DEC VAX floating point formats. I have routines that use LSET to convert this data to the IEEE floating point format. Sure, I can rewrite this code using the CopyMemory API call, but why am I being forced to? In fact, I have some old accounting applications that store data in the old Microsoft Binary Format (MBF) formats from the old QuickBasic days. Rather than writing data file conversion routines, I simply convert the MBF to IEEE in memory, do the math, and then convert back to MBF before I write it to disk. Why break these procedures? They have served me well for decades.

    I could go on, but I will stop. To summarize, why not provide a set of “Option ???” statements that modify VBNET to be as compatible as possible with VB6, hopefully, completely compatible, at least at the level of the core language. I will learn how to use the new features, such as multithreading, polymorphism, and overloading as I need them! I would love to upgrade but, because of my extensive library, I am stuck in VB6, and I will badmouth VBNET to younger programmers at every opportunity until the issues of “upward compatibility” are addressed in a respectful and thorough way.

  64. Graeme

    What was that about managed code? I heard (it was on the internet – it must be true!) that almost 80% of Vista was NOT written with .NET managed code. Is this an indication of how much confidence Microsoft has in the path it has mapped out for us mere mortals?

    Anyone care to correct this? Comment? I’d like to be corrected if I’ve heard wrong…

  65. Rosario Fichera

    I think that managers of project in Microsoft ought be discharged.

    VB develpers must pay Microsoft with the

    same money: abandon it. I will port my VB6 code to Delphi.

  66. Boycott Realbasic

    Do not consider Realbasic as an alternative! If you think MS is bad, consider that MS has never betrayed Windows users for say Apple users – MS has never dropped features and resigned a product so they could sell it to Apple users.

    On the other hand we have Real Software, whose product was developed originally for the Macintosh/Apple. For years and years it was Macintosh only! But what did they do with the cash they earned from Mac users like me, they took the money to develope Windows and Linux versions instead of fixing problems with the product. For example, do you know that even though RB is 10 years old when it make Windows compiles that control help tags do not work – after you click a control once they disappear forever. Or did you know that you can’t assign say the "F1" key for help to a menu item by simply assigning it to a property of menuitem? They never even bothered to fix their listbox controls – they flicker horribly in Macintosh Classic and even listbox headers flicker in Windows (you don’t see this in Mac X because it double buffered).

    But this level of betrayal was not enough for them, no, because although they developed a Windows version it used a MDI interface so it was not very popular. So to complete their betrayal they removed the original Macintosh multi-window interface and introduced a idiot one window interface, similar to Visualbasic — Or the same kind of interface you see on Mac’s "i" applications that come free with a new Mac. They even changed the name to make it more similar to MS – RB used to be named version numbers such as 5.0 and 5.5. and so on, but no longer, now its called RB2005, RB2006 and so on.

    This was devastating to Mac users. Instead of having a product interface whereas any single item from a project could be opened into a seperate window we got one large tabbed window with stuff stacked on top each other. No more seperate floating tool pallets. No more exporting a project as plain text. No more color pallet. No more Extras menu for Applescript because, in the words of Aaron Ballman, their IDE designer, it was only really helpful for Mac users.

    I can’t believe the depths this company has fallen to. Now you might expect some respect for its Mac users who are responsible for keeping this company for 10 years, but no. Its reached the point where Aaron Ballman, their IDE designer, openly preaches against Apple technology on his own blog and on Real Software’s forum – strange we didn’t this type of crap when this company was for the Macintosh only. How would you feel is some Vb devloper came on here and preached about Apple technology and then started to change VB to make it more appealing to Apple users, or simply dropped it altogether?

    Our cries go on deaf ears because they don’t care – all they care about are Windows users. No customer loyalty! After spending hundreds of dollars on upgrades, and several years of my life, I and others have nothing. Do you want to to do business with a company that betrays its customer base? Ask yourself what you would think of MS if it suddenly decided to change VB into primarily a Macintosh product and put all its Windows users on the sideline.

    Real Software recently bragged it had 100,000 users. This is false, thats how many licences it has sold in 10 years. Of those 100K how many actually still use it. I use the last real Macintosh version (5.5.5) for example, but I do not consider myself their customer any longer, so 100K – 1. How many others abandoned the product say in version 2, 3, or 4, etc… Deceptive! And it should be noted that when RB2005 came out they game away free version of the 5.5.5 basic to Window users – these users never actually paid so minus X thousand users from that 100K. Do you think they gave away anything to their Mac users – hell no, I had to pay to upgrade to 5.5.5. Total and utter assholes!

    In many cases the product is a "rob peter to pay paul" scam. They are constantly introducing new features to get people to upgrade so they have income INSTEAD of fixing problems. Who cares if the features actually work as long as they can sucker people into buying. Check their feedback system – thousands and thousands of bugs – but whatever happened to all those feedback reports from past versions of RB? How come we are waiting for some things to be fixed 10 years later?

    Watch out for the price increases folks! They now want $350.00 to upgrade the pro version. When I upgraded to 5.5.1 PRO it cost $89 and I got free updates for all the way up to 5.5.5. Now you have to pay for a subscription when you upgrade. If they think I am going to pay for bug fixes and idiot features I don’t want they are crazy. I am not going to pay for the privledge of being a beta testor for them. What ever happened to honesty and ethics and when you come out with a defective product you fix it for free – not charge the customer more, and more, and more.

    Don’t count on that $350.00 fixing the bugs you urgently need so you can use RB to update your own products – assuming if its ever fixed you’d better count on paying multiple payments and waiting years. It has been nearly 2 years since RB2005 came out and they finally addressed a couple IDE isuues for Mac users, but in no way way is the product as usable as 5.5.5 so it worthless. Hell the first two releases on RB2005 were not even usable on the Mac – they produced kernal panics on the Mac, crashing a Mac (a rare, rare, occurance).

    Here’s an example of their so called improved IDE. In the old IDE (5.5.5 and earlier) your help system was stored inside the Lanugage Reference. Open it and you are presented with a listbox on the left with topics, which are then displayed on the right. Topics are read on the right in a scrollable editfield like a book. In RB2005 and later each topic is broken into a series of links so you must now click back and forth between hundreds of links to read about one subject. Imagine trying to use a encyclopedia where each individual paragraph about a subject was on a seperate page.

    RB 5.5.5 and earlier versions were not written with RB, but RB2005 and beyond are. The result is that the size of the Mac version of RB from RB 5.5.5 to RB2005 HAS TRIPPLED!

    Planning on doing things with images? If you want your customers to do anything with image formats other than bmp for Windows (or a single image format for Mac) you WILL HAVE TO HAVE YOUR CUSTOMER INSTALL APPLE’S QUICKTIME. so much for RB technology!

    RS is a small backstabbing company with ambitions to become another MS, but unlike MS, they at least don’t betray their customers for another OS! Thanks for flushing all my money and time down the toliet!

  67. Forget MS--switch to RB

    We were VB developers from the start–VB1 through VB6. We developed a lot of programs and generated significant income from them.

    VB.NET clearly was not suitable for our apps, so we searched for alternatives.

    We switched to RealBasic close to two years ago. RB does have its share of quirks, but it also has its full share of features that never existed in any version of VB.

    After completing several large projects with a few hundred thousand active users, I can comfortably say that we made the right choice.

    Over the next year, we will be converting the last of our existing applications from VB6 to RB. All new projects will be in RB.

    If you are a VB developer, unsatisfied with MS and .NET I would strongly recommend that you evaluate RB. It is not perfect, but we found it to be the best available option for our projects.

    Maybe it is time to quite complaining about MS and switch to something better. πŸ˜‰

  68. Mike Ellison

    I am mainly a hobby programmer who enjoys making things happen on-screen as quickly as possible. From my point of view VB6 is worth saving – or rather, updating. If I moved onto the .NET platform then I would use VB2005 Express which I have played about with, but apart from one or two features I do not think it is as straightforward as VB6 – far too many dots all over the place, too many new keywords, and I am not persuaded that coding graphics is easier or better under .NET.

    The things I like about VB6 above 2005 are

    the simple syntax – 2005 is much more cluttered

    the ability to make API calls – not possible in 2005

    easy coding for graphics

    the flexgrid control

    the tabstrip control – the 2005 one is grotty


    In fact, with the API I have been able to do everything I want using VB6. If Microsoft had asked me (fat chance!)what to do with VB7 then I would have suggested keywording functions that presently must be done with combinations of API calls.

    For example :


    The user would create a picturebox (name.hdc) containing the graphic and then SPRITE would move it on-screen from x1,y1 to x2,y2 while resizing it from scale1 to scale2. – hey presto, instant animation by keyword. At present this can only be done with a combination of API calls and lengthy coding. Yes, I know you can write a reusable module routine to do it, but how much more productive and execution-faster to have it done for you already in the runtime.

    Why change to the .NET platform? For me, there is no advantage in terms of productivity because I do not have to work to deadlines. I know I could master the new language if only I could be bothered to make the effort and I might have been prepared to give it a shot except for the absence of the things I like about VB6 listed above – in particular, control arrays. The control array is such an incredibly useful elegant function that I am amazed Microsoft left it out of the new platform. There are many websites that address this omission and offer solutions to it. None of them cut it – especially the one offered by Microsoft itself which IMHO is the most inelegant ghastly kludge of them all. I think Microsoft actually realise that they made a mistake leaving it out but that they just do not have the courage to admit it – the high and the mighty simply do not make mistakes, do they!

    The things I like about VB2005 Express are:

    the outlining structure in the code editor

    the tabbed module structure

    the more ‘elegant’ IDE

    In other words, I would like to see VB6 fitted out with the .NET user interface. Could this be done with a VB6 plug-in? and, if so, is there any one out there who could do it (apart from Microsoft themselves, who won’t)? I think the the many millions of us minions who helped to make Microsoft rich would like this.

    I do not appreciate the difference between managed and unmanaged code – the difference (if any?) that it makes to productivity and/or execution speed. As far as I can see, what Studio.NET actually accomplishes is that it allows members of a team of programmers to write sections of code in any language that they themselves are accomplished in and then bolt it all together into a single .exe file. Is this what managed code is all about?

    One final thought. Voice recognition is getting better and better because computers are working faster and faster. In the future, programs will be spoken into the computer and the keyboard will go the way of the dodo (well – almost). What language will be used? Natural language of course – the language of VB6, not the language of .NET and certainly not that of C++ and other erudite oddities. Saving Ferris might just be the way forward after all!

  69. Tom Barnett

    Well, in an effort for MS to make VB6 a complete OOP language they found it necessary to make VB 2005 more like VC++ 2005 or VC# 2005, or VJ# 2005 than VB killing more than 50 years of standard Basic language structure. My suggestion is that since all .Net languages compile to the same code why not put them all together in one new language and call it VBCJ.Net, or something similar.

    While Windows Vista will still support VB6, the next generation of Windows surely will not. Alas through the eyes of Microsoft "One after one, by the star dogged moon, too quick for groan or sigh, each (VB6 Programmer) turned his head in gastly pang, and cursed me with his eye!

  70. Nobody

    Screw Microsoft and how do you know that they will not drop for something else in near future? vb6 was great, but now it’s time to move to C++.

  71. Xcabj

    Frankly, fsck Microsoft. Go Linux and use any

    one of a variety of languages. The Linux folks

    have no vested interest in keeping folks on the

    upgrade treadmill. For all you folks so enamored

    of change for change’s sake, remember:

    Change is required for progress, but not all

    change *is* progress.

  72. Pingback: Anonymous

  73. fast

    What is improvement if similar process in .net take few times more than before? Why multitasking support which is slower than more processes one by one. Why GDI+ when it is slower than GDI?
    Microsoft should keep developing of classic VB until they improve those .NET stuffs to the final (if ever will). If not we can conclude that they dont want to improve their softvare but to make new one and to improve a few million of programmers around the world.
    But what with unmanaged programmers? The hell!

    That would be expensive. To Microsoft at least.

  74. Stephen

    Here’s the answer: Microsoft starts a separate company to support and upgrade classic Visual Basic and VBA. They would always have access to each OS as it came along, and make the necessary modifications needed to integrate VB/VBA into it.

    Then when the new OS came out, VB/VBA projects (both old and new) would work with it. Good idea, right? Gonna happen, I don’t think so…

  75. Pingback: Buying oxycontin discount.

  76. Pingback: Celexa xanax.

  77. Adama

    To all,

    Visual Basic 6.0 rises to 5th place in the official Index of programming language popularity for May 2014 while C# drops to 6th, and VB.Net is 11th:

    I also I found this:

    Microsoft must be proud.

    VB6 has overtaken C# to become the most popular Microsoft programming language in the May 2014 Tiobe index.

    After all the time and money Microsoft have spent developing other programming languages, their leading language is Visual Basic 6 !


Leave a Reply