Slashdot Mirror


Why Visual Basic 6 Still Thrives

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.'"

26 of 406 comments (clear)

  1. Use it today by DogDude · · Score: 5, Insightful

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

    --
    I don't respond to AC's.
    1. Re:Use it today by gbjbaanb · · Score: 5, Insightful

      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.

    2. Re:Use it today by V+for+Vendetta · · Score: 5, Interesting

      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.

    3. Re:Use it today by iosq · · Score: 5, Insightful

      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.

    4. Re:Use it today by segedunum · · Score: 5, Informative

      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.

    5. Re:Use it today by Anonymous Coward · · Score: 4, Insightful

      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.

    6. Re:Use it today by gbjbaanb · · Score: 4, Insightful

      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.

    7. Re:Use it today by Missing.Matter · · Score: 5, Insightful

      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?

    8. Re:Use it today by 517714 · · Score: 5, Insightful

      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.

      --
      The US government have made it clear that we have no inalienable rights; any we do not defend vigorously will be taken.
  2. What would be nice would be by transporter_ii · · Score: 5, Insightful

    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.

    --
    Doctors destroy health, lawyers destroy justice, universities destroy knowledge, religion destroys spirituality
    1. Re:What would be nice would be by LordLimecat · · Score: 4, Informative

      False analogy. There are very real advantages to cars over horses (mainly that cars don't poop everywhere), other than not having DX11 there are very little advantage to switching to Win7 over XP.

      I can name them if you like.

        * Greatly improved GUI with all the hotkeys and multimonitor support anyone could wish for.
        * Greatly improved granular firewall which, as far as ive seen, is very nearly as good as iptables and a good deal easier to manage (granted you cant do a number of advanced things, which you wouldnt be doing on a desktop anyways)
        * Greatly improved security model: non-admin by default with a proper elevation system ala sudo or whatever OSX has
        * Other security, like ASLR (a stronger form than I believe most Linux distros have by default), DEP, kernel patch protection, and mechanisms for sandboxing (which I believe the Chrome team remarked Linux didnt really have, which is why Chrome doesnt sandbox on Linux)
        * better caching, memory support, and SMP
        * native support for SSDs through TRIM, as well as auto-tuning for SSD (disabling prefetch, indexing, etc on an SSD)
        * better networking: No more half-open connection limit, native IPv6 support, capability for any machine with a Wifi NIC to function as an AP or even relay one wifi connection over another SSID

      Im sure theres others Im missing, but thats a start. I wouldnt want to use XP on a modern system, because the SSD wouldnt have garbage collection, RAM would be limited, youd have reduced registers (32-bit mode), I wouldnt have advanced Wifi control, and the security model is ANCIENT.

  3. Compatibility is Windows best feature by Quick+Reply · · Score: 4, Interesting

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

  4. Visual Basic 6 still thrives by Waldeinburg · · Score: 4, Funny

    Because you can make a GUI using Visual Basic and see if you can track an IP address.

  5. Re:Might as well... by jellomizer · · Score: 5, Insightful

    .NET thrive is because the Visual Studio IDE demands it, unless you are doing C++. The basic rule of thumb, if you are going to be writing programs for windows you use Visual Studio. Now .NET as a language isn't that bad, I actually like it. What I hate is the Virtual Machine nonsense, that only works on Windows Systems, yet it is still virtualized so it runs slow. It combines the worst attributes of the VB6 world and the Java World. If Visual Studio gave people a non .NET option for VB (a VB 7 per say) then I would expect VB 6 dyeing out and .NET wouldn't have caught on. It would have been an other J++

    Java success is in the fact you can write code and run it nearly every modern system out there. And you code isn't scripted but in a way that can be closed source (Not all developers want their code Open Source) Also Java has a good set of quality IDEs Netbeans, Eclipse are a few of them, and they are really good at Java Coding.

    Why do we want VB6 to die more then the others?
    1. It is a platform for unstable applications. VB6 Apps have a tendencies of getting corrupted and random deaths where you need to reinstall them.
    2. Visual Studio 6 needs to run on Newer OS's Windows 7 64 bit... Windows 8?
    3. You cannot buy the media/licenses directly anymore. If you are going to grow you company you cannot stick on a tool where you cannot get legal licenses as your company grows.
    4. Young Whipper Snappers don't want to use it. (We are at a point where we have a lot of software developers retiring) And we need to replace them with younger blood. The problem is the young guys do not want to use it.

    --
    If something is so important that you feel the need to post it on the internet... It probably isn't that important.
  6. Re:Why isn't Ruby thriving, though? by quetwo · · Score: 4, Informative

    VB6 has staying power for one major reason -- you can do about half of the programming by dragging-and-dropping. You have a visual IDE, where you can plop stuff onto a form, 'wire them up' with a few lines of code, and you are the rock-star of the day. For those of you who are visually oriented, it is a huge plus to write in the language. And if it didn't do that one thing you needed out of the box, you would go and buy some 3rd party's OCX, which would show up on the toolbar, and you plopped that onto the screen. Additionally, working with Databases was pretty much as easy as Access -- again, drag-drop stuff, enter the database name, and away you went. 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. So many of the web-targeted languages you need to visualize everything for the computer (which some people really have a hard time with). Many of the other modern application development languages require a lot more programming to do the same thing.

  7. Insult all you want by mumblestheclown · · Score: 5, Interesting

    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.

  8. Re:Might as well... by Dr_Barnowl · · Score: 4, Informative

    The VB6 compiler produced native code. Most of the sloth came from the runtime libraries, and most of that from string handling : rolling your own StringBuilder class fixes most of that.

    Java has the same issues, also using an immutable string class, but they fixed it by hacking the compiler to recognise where you are doing string concatenation in a loop and make a StringBuilder out of it instead. .NET also produces native code, eventually.

    Performance problems in any of them are usually down to bad algorithms, or using a mass of bloaty libraries to compensate for a lack of time.

  9. Re:Might as well... by gbjbaanb · · Score: 5, Informative

    3, and 4 are fair points. 1 and 2 are just wrong. VB6 apps are no worse than any other, and you can run VB6 on windows 7 64bit with a patch that you can download from MS.

    I do think that VB7 would have killed .NET dead, which is exactly why they didn't make one. I understand MS wanted the original .NET to be much more VB compatible, but the .NET guys didn't (or rather couldn't) want to do this, they wanted to make their own version of Java and nothing was going to stop them. Well, until today when MS has realised .NET performance and efficiency is crap and they need to go back to native code. Maybe now they'll make a VB7 that is geared toward quick-n-easy Metro apps, then Windows8 might actually become popular.

  10. Re:Might as well... by benjfowler · · Score: 5, Insightful

    Java itself is a simple and clean language, and is not that bloated by current standards.

    I think it gets a bad rap, because people think 'applets', or 'J2EE', or worse yet, the countless piles of crap foisted upon them at work, known as 'enterprise software'.

    The objective reality, I think, is quite different from often-mistaken perception -- I've seen both garbage and masterpieces written in everything from Ruby, to VB6, to Java, to Perl. Depends on the programmer, not the tools or languages.

  11. Re:Might as well... by Lisias · · Score: 5, Interesting

    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.

    --
    Lisias@Earth.SolarSystem.OrionArm.MilkyWay.Local.Virgo.Universe.org
  12. Re:Might as well... by knuthin · · Score: 5, Informative

    Now .NET as a language isn't that bad, I actually like it..

    .NET as a language isn't that bad because it's not a language. It's a frikkin framework.

    --
    Some apps are WYSIWYG. Some others are WYSIWTF.
  13. Re:Might as well... by icebraining · · Score: 4, Insightful

    Just because Bonamassa can make good music from a $30 guitar doesn't mean the guitar isn't shit. The fact that a good programmer can write a good programing a crappy language doesn't mean the language isn't bad. It just means the programmer is good enough to overcome the warts.

  14. Re:Might as well... by icebraining · · Score: 4, Funny

    How I envy the guy who will have to port your software to another OS or architecture /s

  15. Re:Might as well... by hairyfeet · · Score: 5, Insightful

    I just don't get why so many find it hard to believe VB 6 has such long legs. it did ONE job and it did that job fucking brilliantly, which was to make an easy to use GUI front end to a DB, that's it, that's all. This is what MSFT fucked up with with .NET because frankly ALL of the VB 6 I've seen being used and being built really was only variants on that one function.

    What MSFT refused to accept was was how important one small function can be to an SMB or SOHO. There is a HELL of a lot of times a small business can use a custom GUI to a DB, everything from contacts to records can be kept in a simple DB that just needs an easy to use front end so the user doesn't have to know anything about DBs, just fill out the forms.

    Finally all those "real" programmers that gnash their teeth at even the mention of the word VB? GET OVER IT, you wouldn't expect them to call a 'real"engineer when all they need is something that can be banged together out of an Erector set would you? of course not and it just so happens there is a hell of a lot of business jobs that don't need some full blown SQL DB just to get the job done. Its just like how we've all seen "applications" built out of VBA and Access, it has its little niche and as long as one doesn't try to build something outside of its little niche? Then its a perfectly valid tool.

    MSFT failed with .NET because they assumed if you were doing job A that you would want to learn to have the power to do jobs B-K, when in reality frankly there were tons of guys that frankly only needed to do job A so B-K were simply overkill and pointless. That is why VB 6 has such long legs, frankly there hasn't been any other language that filled the SMB small DB niche quite as well as VB 6.

    --
    ACs don't waste your time replying, your posts are never seen by me.
  16. Re:Might as well... by Nethead · · Score: 4, Insightful

    In short, the reason "real programmers" hate it, is because sooner or later, it ends up being their problem.

    In my business we call that a sales opportunity. When your job is to fix things, the more broke they are, the more money you can make.

    --
    -- I have a private email server in my basement.
  17. Re:Might as well... by LordLucless · · Score: 4, Insightful

    In my business we call that a sales opportunity. When your job is to fix things, the more broke they are, the more money you can make.

    If you were a contractor called in to fix it, I'd agree. If you're an in-house developer whose real job isn't to fix things, but to create new things, getting pulled off whatever job you were doing in the first place to fix someone else's mess is a PITA - and you don't make any more money.

    --
    Just because you're paranoid doesn't mean there isn't an invisible demon about to eat your face