Slashdot is powered by your submissions, so send in your scoop


Forgot your password?
Microsoft Programming

Why Visual Basic 6 Still Thrives 406

theodp writes "Microsoft recently extended 'It Just Works' compatibility for Visual Basic 6 applications through the full lifetime of Windows 8, so VB6 apps will have at least 24 years of supported lifetime (VB6 shipped in '98). So why has VB6, 'the un-killable cockroach' in the Windows ecosystem, managed to thrive? 'Cockroaches are successful because they're simple,' explains David S. Platt. 'They do what they need to do for their ecological niche and no more. Visual Basic 6 did what its creators intended for its market niche: enable very rapid development of limited programs by programmers of lesser experience.' But when Microsoft proudly trotted out VB.NET, the 'full-fledged language' designed to turn VB6 'bus drivers' into 'fighter pilots,' they got a surprise. 'Almost all Visual Basic 6 programmers were content with what Visual Basic 6 did,' explains Platt. 'They were happy to be bus drivers: to leave the office at 5 p.m. (or 4:30 p.m. on a really nice day) instead of working until midnight; to play with their families on weekends instead of trudging back to the office; to sleep with their spouses instead of pulling another coding all-nighter and eating cold pizza for breakfast. They didn't lament the lack of operator overloading or polymorphism in Visual Basic 6, so they didn't say much.'"
This discussion has been archived. No new comments can be posted.

Why Visual Basic 6 Still Thrives

Comments Filter:
  • Use it today (Score:5, Insightful)

    by DogDude ( 805747 ) on Saturday June 09, 2012 @08:37AM (#40267581)
    I'm one of them. I still actively use it today. I know how to use it, and I never had any interest in learning .Net. I've got several mission-critical apps written in VB6, and I'm updating one of them right now. We have no plans to move to something else. If it ain't broke...
    • Re:Use it today (Score:5, Insightful)

      by gbjbaanb ( 229885 ) on Saturday June 09, 2012 @08:45AM (#40267605)

      exactly, though I'm quite "meh" on VB6, it is still simple enough to slap something out in it in next to no time, and it works. Sure I'd like the IDE to improve and a couple of niggles to disappear, but hey - all languages have them, including .NET.

      There was a thread on /. recently about teaching salespeople to code - in my experience you don't bother trying, you just give them a copy of VB6 and tell them to knock themselves out. Next thing you know, they've knocked up something that does what they want. Give them a copy of VS2012 and tell them to do the same thing using WPF front end with a C# WCF webservices remote service and they wouldn't be able to do it. And that pretty much sums up why VB6 is still with us and was so popular.

      • Re:Use it today (Score:5, Insightful)

        by iosq ( 1084989 ) on Saturday June 09, 2012 @09:13AM (#40267783)
        All well and good, but I think a VB6 application created by salespeople would be the sort of thing that you might see in the average slashdotters worst nightmare.
        • Re:Use it today (Score:4, Insightful)

          by Anonymous Coward on Saturday June 09, 2012 @09:38AM (#40267919)

          Better than the hobbled up shit they use today with Access databases linked to Excel dumps......

          One of my BA's at work literally turns on his laptop in his van once he pulls close to the building. He then lets it "calculate" his formulas and worksheets for this massively complex model he's created.

          It takes about 35 minutes so he's opted to turn the machine on early and walk into the building with it while it churns at 100% cpu and thrashes the hard drive.

          He even had it get corrupted once when it crashed and he nearly lost all his work. The guy is an idiot. But his model gets shit done and surprisingly management could care less how he does it.

          • Re:Use it today (Score:5, Insightful)

            by Missing.Matter ( 1845576 ) on Saturday June 09, 2012 @11:42AM (#40268571)

            The guy is an idiot.

            The guy used the tools he knows to get his work done. It might not be the most efficient way, but that doesn't make him an idiot, just ignorant. Maybe instead of being a dick you could educate him as to the more appropriate solution and why his is dangerous/inefficient?

          • Re:Use it today (Score:5, Insightful)

            by 517714 ( 762276 ) on Saturday June 09, 2012 @11:49AM (#40268617)
            An idiot who gets things done is better than a genius who doesn't. If you are surprised at management's position, then your evaluation of who is the idiot is flawed.
          • by Rich0 ( 548339 )

            Half the time IT is the unwitting force behind this sort of thing.

            If somebody spent an hour with him and gave him the odd assistance, then chances are his application, while not pretty, would be far more effective and maintainable. However, that would be an act of ceding control, so typically IT will say "no backend databases or help for you" and proceed to try to tell the business that they should invest in a $500k development investment to basically do what they can already do with the hobbled-together s

        • by tomhath ( 637240 )
          The code might be ugly, but the next time a user says to you "All I really need it to do is X", pay attention to them. They don't care how well written it is if it does X, that's their only requirement.
        • Re:Use it today (Score:5, Insightful)

          by gbjbaanb ( 229885 ) on Saturday June 09, 2012 @10:17AM (#40268099)

          absolutely true, but if you look at TheDailyWTF [] you'll see that so-called 'professional' programmers can come up stuff that's just as bad. Only they think they're coding gods, at least the salesman with his VB app knows its just a quick n dirty piece of crap tooling that he uses to get his work done.

          In my place, I know several VB programmers who happily say this, and they know that one day we'll rewrite their apps "properly" so they are less expensive to maintain and work better, when we have the time... which will probably be never.

          • by Xest ( 935314 )

            Yes, well, a lot of so-called "professional" programmers believe PHP is a well designed language, and a good number of them exist on Slashdot.

            The problem is that the bar isn't exactly high to be able to call yourself a professional programmer.

            A decade or so ago you had to understand things like pointers and so forth, nowadays you can knock together any crock of shit and call yourself a professional programmer. I suppose that's good and bad - good in that humanity gets more software ideas turned into reality

      • Give them a copy of VS2012 and tell them to do the same thing using WPF front end with a C# WCF webservices remote service and they wouldn't be able to do it.

        Do you think they would more likely be able to create remote web services with VB6?

    • by leenks ( 906881 )

      I thought there were major compatibility problems with the VS98/VB6 IDE on Windows 7 and Windows 8 (caveat: I heard this from a large desktop consultancy that were brought in to provide new systems for a large organisation - I haven't validated it myself). If so, won't this stop you developing once XP is unsupported, unless you want to be developing using an un-patched OS? I'm genuinely interested in your strategy going forward, as a friend maintains a VB6 application that is going to be a nightmare to port

      • The little work I have to do with the IDE on Win7 still works fine. I would imagine installing some supporting libraries for specific features could be difficult - I did have to fight the SOAP libraries on.
      • Re:Use it today (Score:5, Informative)

        by segedunum ( 883035 ) on Saturday June 09, 2012 @09:38AM (#40267915)

        I thought there were major compatibility problems with the VS98/VB6 IDE on Windows 7 and Windows 8 (caveat: I heard this from a large desktop consultancy that were brought in to provide new systems for a large organisation - I haven't validated it myself).

        There is your answer right there. I've heard this myself from large consultancies trying to sell you the latest alphabet acronym soup of Microsoft's latest development technologies so they can make a bundle. Those who have bought in then get to upgrade and rewrite all their code in the new latest and greatest .Net version 77.4 and whatever the latest name for Windows.Forms is in perpetuity. It never ends. You end up firefighting and upgrading more than you do actually coding useful updates into the application

        History over the past decade should teach us to be very, very wary of buying into any of the latest development technology from Microsoft. Silverlight developers are soon to be dumped on from a great height and these pitiful Metro applications we're all supposed to write now make me laugh, all so little baby Ballmer can have yet another expensive failure at being Apple or Google on mobiles.

        I'm genuinely interested in your strategy going forward, as a friend maintains a VB6 application that is going to be a nightmare to port to VB.NET, so it might as well be rewritten in something else.

        The quiet secret is that a lot of companies if they've rewritten anything over the past decade have rewritten their applications to be run over HTTP and a web browser. Anything that can't has stayed as it is. Not that web applications are perfect by any stretch of the imagination but at least there is a relatively stable target there now and you have other browsers besides Internet Explorer, and even other operating systems besides Windows, so the rug doesn't get pulled out from underneath you. Deployment is quite a bit easier as well.

      • I thought there were major compatibility problems with the VS98/VB6 IDE on Windows 7

        There are some annoying little problems. But you can work around them and/or tolerate them.

    • Re:Use it today (Score:5, Interesting)

      by V for Vendetta ( 1204898 ) on Saturday June 09, 2012 @08:53AM (#40267653)

      I'm one of them. I still actively use it today.

      Same here. And everything that VB6 can't do or "needs a 'lil help with", I'm adding with PowerBASIC [] (PB). My programs are typical inhouse programs: Retrieve data from A, convert/calculate/transform it, store it back to A or pass it over to B.

      If my time would permit (programming is only part of my job's duty), I'd replace every VB application with a complete PB counterpart. Unfortunately that's still not the case, but I'm working on it. I just wish PB would hire someone to write a decent IDE. The compiler is a masterpiece (and doesn't need to fear the comparison with any other language), the IDE ... not so.

    • by Anonymous Coward

      I've been using VB6 ever since I was 12 (since 2002), and .NET never made itself interesting to me. I tried to learn the language recently, but the lack of a simple intuitive user interface in the "metro" Visual Studio 2010 made me cringe at the sight of it when it was necessary to stare at it for more than a few hours daily. VB6 does exactly what is needed, quick development with total BASIC programming and no OOP directives.

      • I like .NET but have avoided VB.NET assiduously ; it's almost, but not quite, completely unlike VB6, and I don't want it ruining my VB6 knowledgebase for my retirement.

      • .NET is kinda nice from a technical point of view, especially if you like fiddling with parsers and compilers. MSIL is a very nice intermediate language to emit from the front end of a compiler...

  • by transporter_ii ( 986545 ) on Saturday June 09, 2012 @08:44AM (#40267603) Homepage

    A "just works" version of Windows, that MS sold support for, marketed toward businesses, that just stayed the same forever. As it is, MS makes its money on new versions. That's fine for MS, but bad for businesses that don't want to upgrade every four - six years. If MS made money selling a business copy of windows and then got a fair amount for support and updates on it perpetually, it would be win/win for businesses, developers, and MS.

    Where I work at, we installed new systems in police stations in the last two years that were brand new and had Windows XP on them, because the software at the time didn't have Windows 7 drivers.

    • MS peaked in 2003 (XP+Office 2003). And to be fair they pretty much nailed it by then. Off the top of my head the only thing I'd really miss by going back to that setup was indexed searching for emails in Outlook. It'll be interesting to see if Apple finds anywhere to go after smartphones settle down.
    • A "just works" version of Windows, that MS sold support for, marketed toward businesses, that just stayed the same forever.

      In the real world, that doesn't work so well as the underlying hardware changes regularly - as do the expectations of the users. Nor are many people are going to be interested in paying for "upgrades" that don't actually upgrade.

      Where I work at, we installed new systems in police stations in the last two years that were brand new and had Windows XP on them, because the software

    • by LordLimecat ( 1103839 ) on Saturday June 09, 2012 @11:36AM (#40268531)

      A "just works" version of Windows,

      The existing ones arent sufficient? My experience has been that any degree of "doesnt work" is almost ALWAYS down to one of the following:
        * Driver malfunction (all of my bluescreens on this computer were caused by faulty logitech webcam driver)
        * Hardware malfunction (all sudden reboots ive seen on my home computer were caused by video card that went belly up)
        * badly written 3rd party programs, plugins, etc (99% of viruses ive seen come from Java, Flash, and PDF vulnerabilities, or else browser exploits)
      It is also my experience that people complaining about how broken windows is are doing something wrong.

      that MS sold support for

      Youre in luck, they have several of these.

      marketed toward businesses

      WinXP pro, Win Vista business, and Win7 pro all meet this criteria, as do all server versions of windows.

      that just stayed the same forever.

      Thats called stagnation, and basically noone wants this. Can you point to any major, widely used OS that "just stayed the same forever"? Certainly not any of the BSDs (which recently added support for AES instructions), Linux distros, OSX, or MS oses.

      Maybe YOURE happy to stay on AmigaOS, but generally, an OS keeping pace with recent developments is a GOOD thing.

  • by jellomizer ( 103300 ) on Saturday June 09, 2012 @08:48AM (#40267625)

    If you had VB5 and you got VB6 you could upgrade your app to a vb6 application very quickly and your program looked and worked just like it did before.
    Upgrading you VB6 app into .NET breaks all but the most basic application, and there is a lot of rework to be done. Often these VB6 apps are not the best design and, and you need to find a .NET compatible version of your third party tools, then they are probably quite different and you need to rework them again.

    Next you have the .NET framework. I write a program in visual studios 2010, Now I need to make decisions... Do I compile it for .net 2.0 and not have as many features but know that my system will work on most modern windows systems, or work on 4.5 and require all the users to upgrade their system? Why can't I just compile it into a static .EXE

    Finally you have older developers. These guys are not Computer Scientists, They studied other fields and happened to learn computers, and started to program before a lot of the formalization in good form came into place. .NET seems unnecessarily restrictive to them. Why do you need to type all this extra crap. I need it to do this, why do I need System.Windows.Forms.PotatoGun.PopSound() instead of PlayPop Often these older developers are just maintaining the existing system that they have coded decades ago. So there is no real push to upgrade and give them a new project just because it needs to support .NET

  • by kanto ( 1851816 ) on Saturday June 09, 2012 @08:52AM (#40267649)

    Less time that is; there's always a temptation to try and utilize all the bells and whistles in a programming language. Often this adds to complexity and makes the code harder to understand in one glance; polymorphism for example sucks if you only have sourcecode to figure out what's going on. I personally like C++, but I try to only use the parts which make life easier (and honestly stl for the most part is one of them, with a little study the basic stuff there goes a long way).

  • by Quick Reply ( 688867 ) on Saturday June 09, 2012 @08:56AM (#40267675) Journal

    There are many projects, usually internal or niche market applications, which have decades of legacy code to keep the product running. This is not a choice of the developers or done out of laziness, this is what their employers have given them to work with.

    If you have to rewrite vast amounts of code because the programming language is out dated, you will find that depending on the size of the project, the company who owns the project will be on the hook for millions of dollars to rewrite it so that it will work with modern environment.

    If you are a company in placed in this position of having to rewrite everything, what is there to say that you are going to stay on the Microsoft ecosystem. You have emerging technologies in the enterprise (iOS/iPad/Objective-C), you have Web Applications and "Cloud Computing" (Which are platform independent and would most likely run on a non-Microsoft backend) and if you are a developer who just wants to get it working on the cheap (Where the market is vertical enough that the customer will use any platform you tell them to because they need to run your app) you could probably save a tonne of development cash by just making it run on WINE on GNU/Linux

    Better for Microsoft to keep supporting developers who have their ecosystem running on Windows, as these applications directly translate into sales of Windows licenses. If Windows did not have compatibility, then Windows will be just like the rest.

    Incidentally, this is why Windows on ARM Tablets will ultimately fail, as there is no compatibility with x86 apps unless it is 100% written in .NET or HTML5 (not that many out there in the whole Windows ecosystem).

  • by Waldeinburg ( 737568 ) on Saturday June 09, 2012 @09:07AM (#40267743) Homepage
    Because you can make a GUI using Visual Basic and see if you can track an IP address.
  • VB6 surprising power (Score:4, Interesting)

    by Tronster ( 25566 ) on Saturday June 09, 2012 @09:07AM (#40267745) Homepage

    VB6 is simple, but there is a surprisingly large amount of power to be tapped from it, if you understand the underlying infrastructure.

    Having done some hard core COM [] programming 10 years ago, for a Computer Based Testing "test driver", our team learned we could spend 2 days to get up a "ActiveDoc" in C++ using ATL, and WTL, or we could do the same thing in VB6 within an hour. Considering how fast it was to implement ActiveDocument and custom COM interfaces, I changed my mind on how weak I perceived VB6 was. (Unfortunately many of the VB trained, customer-based implementors of our interface were not as astute, and even in a VB6 environment didn't understand what they needed to do to create a component that would properly talk to the rest of our system.)

    Still, knowing how quickly VB6 would let one get up an interface, I was able to help a room mate of mine create a level editor [] for our own rolled version of Zelda. It was a little cumbersome to learn how to read individual bytes of the palette based sprite files, but VB6 had all the power there.

    All that said, VB6 should die IMHO. After (C# / VB).NET came out, it became a lot easier to make object dynamically talk to each other and perform byte level manipulation.

    • by kbdd ( 823155 )
      I have developed a few apps in VB 6.0. They work just fine, but it has become difficult to support and install them under Windows 7. They are not commercial products, just used to support development and test of embedded systems via the serial port. They actually started life as QuickBasic 4.5 apps, then were upgraded to VB for DOS, then to VB 6.0. The "basic" functionality of these apps has not changed much, just the fancy UI stuff has been updated, and TCP/IP support was added. Facing the fact that VB 6.0
  • I've been talking about this for years, and I've even been laughed at here on Slashdot for suggesting classical VB will never be going away. How could it? There is that lovely fully object oriented thingy called VB.Net? Why wouldn't you want to rewrite all your applications in it for no appreciable benefit whatsoever?

    The fact is that Visual Basic was and is used for what it was good at. Departmental and business applications where the overhead of that object oriented nonsense didn't make any sense at all
    • by Richard_at_work ( 517087 ) <richardprice@gm a i l . com> on Saturday June 09, 2012 @09:32AM (#40267875)

      No one cares about .Net applications

      I'm afraid you are completely wrong in that, .Net is a quickly growing market among small to medium businesses (the type of work that I see), and is already widely used in the large business area. VB6 is certainly hanging on well past life support, but that doesn't mean people aren't moving on.

    • by FrootLoops ( 1817694 ) on Saturday June 09, 2012 @11:46AM (#40268595)

      ...fully object oriented thingy called VB.Net ... the overhead of that object oriented nonsense didn't make any sense at all ... The fatal mistake that Microsoft made with VB.Net is that it was completely backwards incompatible ... No one cares about .Net applications

      You don't seem to have any idea what you're talking about.

            (1) VB6 is an object-oriented language. Its support is poor--eg. no inheritance, clunky syntax--but programmer-defined classes exist. If you meant just the new OO features you should have said so--your wording is imprecise throughout.
            (2) VB6 has no class library to speak of--you had to write your own routine or hack together a ListBox to sort a string array. That should be a couple lines of code. Forget hash tables, queues, etc.--you have to implement it all yourself or find somebody else's random crap, which is wildly inefficient. The .NET class library is very good and is a huge potential "appreciable benefit" to upgrading.
            (3) .NET and VB6 are comparable in speed (except loading times, .NET is worse there). Which wins depends on precisely what you're doing. For math-heavy problems, .NET is often much faster. But honestly, why the hell do you care about the speed (/memory use/whatever you meant by "overhead") of VB6 apps? It's almost always irrelevant in light of user input delays.

            (5) .NET is not even remotely dead, so no "fatal mistake" was made.
            (6) Lots of people care about .NET apps. Glance at the Tiobe index, for instance.
            (7) You'll be able to create .NET Metro style apps. Converting an existing desktop app may or may not require significant work []. Your backend will be mostly to entirely reusable, so you won't have to "rewrite everything".

            (8) You greatly exaggerate the backwards compatibility problems and you know it. Some large projects are suited to automated/assisted migration; just read these zillion testimonials []. It's far from perfect, but it's also far from nothing.

      You do have at least a few good points--lots of businesses absolutely rely on very old technology and wouldn't upgrade without support; Microsoft's chances of getting a significant mobile presence are slim. You came close to the truth behind the continued success of VB6: people don't want to learn new systems and some people are stuck maintaining old ones that are too difficult to convert. Most of your points are garbage though.

  • Insult all you want (Score:5, Interesting)

    by mumblestheclown ( 569987 ) on Saturday June 09, 2012 @09:24AM (#40267847)

    This "bus driver" has a PhD in computer science and in my weaker days wrote code that still exists in various linux distros. i started a company 15 years ago with some vb apps and, guess what.. the vb6 apps still sell. over $4 million per year with my staff of 5. So, you know, call me a "bus driver", call it a "scripting language", and any other insults you want - I can take it. Or rather, I just wont care.

    • by pnot ( 96038 ) on Saturday June 09, 2012 @10:15AM (#40268087)

      See also Joel Spolsky []:

      What I wondered was, what happens if you take top-notch C++ programmers who dream in pointers, and let them code in VB. What I discovered at Fog Creek was that they become super-efficient coding machines. The code looks pretty good, it's object-oriented and robust, but you don't waste time using tools that are at a level lower than you need. I've spent years writing code for C++/MFC and years writing code in Visual Basic, and let me tell you, VB is just much, much more productive. Michael and I had a good laugh today when we discovered somebody selling a beta crash-reporting product at $5000 for three months that Michael implemented in CityDesk in two days. (And we actually implemented a good part of ours in C++/ATL). And I also guarantee you that our Visual Basic code in CityDesk looks a lot better than most of the code you find written in macho languages like C++, because we're good programmers, and we write comments, and our variable names are well-chosen, and we do things the simple way, not the clever way, and so forth.

  • I tried to install it on Windows 7 and it didn't work. So i gave up (programming for windows)

    • Run a Windows XP VM on the Windows 7 machine and install the IDE in the VM. You have VMs set up to test your code in anyway, right?
  • The company I work for has a well-staffed IT shop, but the one thing we are lacking is anyone with real developer experience. We have one woman there who is known as the "database developer", but all her experience comes from Access. Access front-ends to SQL databases, that sort of thing. It works for the most part, but it's frustrating from our perspective when we have to deal with all these Access databases/front ends, and we know things could be so much better.

    A few times they've tried to send her to VB

    • Most of the Access developers I know don't even know standard off the shelf simple SQL statements. The environment is so washed down that they never make the leap past the query builder.

      I already know without even asking that you are in a shop that has a access app for everything and duplicated data everywhere.

      The best shop I worked in would not allow access on any desktop for this very reason. Access at the end of the day is just a hack, ok for a 5 person company but should not be used for enterprise devel

  • Any language that uses a newline as a statement terminator is demented.
  • I taught myself VB6 (fool for a teacher?) about ten years ago mainly so I could write small apps and utilites for myself. Combined with Win32 api calls, it's been powerful enough for almost everything I've needed to do. True, my code isn't elegant but it gets the job done.

    For a more modern object oriented language I think Lazarus (an open source Delphi clone) is in the same category as VB6. I found it easy to move from VB6 to Lazarus since the IDEs are similar. Lazarus is based on Pascal so some might consi

  • I loved VB6 and beat it death. For knocking out a quick application it was hard to beat. I long left it behind (at least a decade ago) but when I started developing iOS apps a while back I was so disappointed with the interface builder that it made me angry; they obviously never understood the joys of the VB6. I hate to say it but the whole interface builder was more of a rip off of the later interface in Visual Studio that drove me away from all things Microsoft. Thus in my present apps I don't use
  • so (Score:3, Funny)

    by codepunk ( 167897 ) on Saturday June 09, 2012 @11:45AM (#40268585)

    So you feel that typing curly braces to let the compiler know what you want somehow makes for better code?

    Perhaps it is just that you don't know any non C syntax languages. I do and after writing something like python then jumping into a c or c++ app it takes me days to get over having to type a bunch of cruft.

  • by ( 311775 ) on Saturday June 09, 2012 @01:48PM (#40269293) Homepage Journal

    It's too bad that Delphi didn't win out. It was a much better language/environment that VB6.

    • Delphi did win out - it's called .NET. Remember that Microsoft snatched Borland Pascal/Delphi lead designer and developer, Anders Hejlsberg, and had him work on C# (he still does). C# 1.0 was pretty close Delphi with syntax replaced with something vaguely Java-like. WinForms, and .NET component model in general, is pretty similar to VCL in its design philosophy, and in some cases even down to class hierarchies and names, like [T]Object <- [T]Component <- [T]Control.

      The only really major difference was

  • by Animats ( 122034 ) on Saturday June 09, 2012 @02:35PM (#40269535) Homepage

    VB 6 is probably a better language for modest applications than Perl, TCL, or PHP. We're not making much forward progress here.

Who goeth a-borrowing goeth a-sorrowing. -- Thomas Tusser