Become a fan of Slashdot on Facebook


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:
  • Re:Might as well... (Score:1, Interesting)

    by ProDeveloper ( 2657899 ) on Saturday June 09, 2012 @08:50AM (#40267639)
    .NET is actually awesome, especially when used with C#. Java is too much bloat and slow and needs to die. But .NET is awesome and targets all PC, XBOX360 and Windows Phone 7. And you can use the best IDE on the planet, Visual Studio, to develop.
  • 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 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).

  • 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.

  • 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 geekmux ( 1040042 ) on Saturday June 09, 2012 @09:34AM (#40267895)

    There *wasn't* a good reason to switch from XP, until M$ stopped or threatened to stop releasing security patches for it, which is a big no-no for many companies.

    Let's not confuse "a good reason" with "corporate blackmail". We all know where the lionshare of M$ profits come from, yet most business desktops have little real need to upgrade hardware or software beyond what Windows XP can offer.

    Then again, with more and more applications being fed through a web interface, perhaps businesses should be asking themselves a question that becomes more and more relevant with each passing day....

    Why are we even paying for Windows OS?

  • 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.

  • Re:Might as well... (Score:4, Interesting)

    by Nursie ( 632944 ) on Saturday June 09, 2012 @10:48AM (#40268283)

    No, you're quite right. Most coders, even most of the extremely good and very productive ones, work the working week then go on to have some sort of a life outside work.

    Working insane hours is acceptable for short bursts at crunch time. If it's consistently expected or needed then it's a management failure.

  • Re:Might as well... (Score:5, Interesting)

    by Lisias ( 447563 ) on Saturday June 09, 2012 @11:08AM (#40268383) Homepage Journal

    The objective is to spread FUD, taking advantage of a mass of lost, blind followers that had given up their theological believes to embrace a new, technological religion.

    Java is not bloated, neither slow or sluggish or whatever. But your applications can be bloated, slow and sluggish if you hire bloated, slow and sluggish minded programmers to do the job. .NET is not better than anything, but it's not worst neither. The Object Model shines sometimes (Microsoft hired the guy behing Borlands's Object Pascal Windows Library). I would even consider a .NET career if it was not backed up by Microsoft - I'm already burned by Microsoft technologies twice, I can pass the third. =]

    Ruby? Marvelous language. I loved every day I spent learning it. But I took Python to day to day business - I ended up more productive (and my services, less machine demanding) using Python. Nice API, by the way - but the lack of threading sucks.

    I also made some good projects in VB6 and Perl also. I prefer not doing it again, however.

    VB6 is, really, very limited on modern programming technics (but something can be done, nevertheless - I just think I can do it easier on another language).

    Perl is too much different from anything else to make me fell comfortable on it.

    On the long run, no matter how many languages I deal with - the unique one that is omnipresent is C. It saved my sorry ass countless times.

  • 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 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.

  • Delphi (Score:4, Interesting)

    by xded ( 1046894 ) on Saturday June 09, 2012 @02:06PM (#40269379)

    Do date, there really isn't any IDE/Language that has targeted this audience of people who wanted to do RAD in this visual manner.

    Wrong. There's Delphi. Say what you want about Pascal or OOP, but it is just as easy to program with as VB, it has an extensive third party component selection being actively developed (to do whatever you want, from serial communication to image processing and GUI components) and it is, somehow, still being sold and supported.

    When .NET came around, its users were praising the ease of GUI development, something that Borland users already became accustomed to during the previous 10 years or more (with both Delphi and C++ Builder). With no dynamic libraries or virtual machines to depend on, every executable runs natively with the visual component library -- VCL -- that can be statically compiled in it.

    Unfortunately tho, Borland changed its business focus and sold the whole thing (except the VCL) to CodeGear. The new VCL developed by CodeGear is meant to be compatible with the old Borland one, but it still has compatibility problems and, in general, is bigger. The last Borland-produced version of Delphi is the 2006 one and that's what I'm still using today for quick drag and drop GUI projects (when there's no need to spend more than 5 minutes drawing a GUI). And I know several people making tons of money selling and developing DB based programs with versions even older (Delphi was originally developed to provide an easy to use interface to DBs, that's why it is named after an "oracle").

"So why don't you make like a tree, and get outta here." -- Biff in "Back to the Future"