Follow Slashdot blog updates by subscribing to our blog RSS feed


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:
  • 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 quetwo ( 1203948 ) on Saturday June 09, 2012 @09:13AM (#40267779) Homepage

    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.

  • by sydneyfong ( 410107 ) on Saturday June 09, 2012 @09:15AM (#40267795) Homepage Journal

    My personal (potentially biased) explanation is that RoR forces you to dive into the underlying technologies (which can be really raw) once you try to implement something beyond the tutorial.

    The other thing is, the underlying complexity of an "desktop app" is much lower than a web app, which is really a distributed system comprising many components...

  • by Richard_at_work ( 517087 ) <{richardprice} {at} {}> 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.

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

    by Dr_Barnowl ( 709838 ) on Saturday June 09, 2012 @09:34AM (#40267891)

    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.

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

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

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

    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.

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

    by Sperbels ( 1008585 ) on Saturday June 09, 2012 @10:37AM (#40268217)

    It is a platform for unstable applications. VB6 Apps have a tendencies of getting corrupted and random deaths where you need to reinstall them.

    Been using it since release. This is total BS. It is very stable.

    Visual Studio 6 needs to run on Newer OS's Windows 7 64 bit... Windows 8?

    What? I'm still running it on Win XP, Server 2003, 2008, Vista, and 7. WTF?

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

    by knuthin ( 2255242 ) on Saturday June 09, 2012 @11:08AM (#40268389) Homepage

    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.

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

    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.

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

    by netsavior ( 627338 ) on Saturday June 09, 2012 @11:59AM (#40268677)

    Yeah just don't try to free lots of memory in VB6!!!

    Go ahead and try it...

    or .net or java or any common application like firefox or chrome. Modern development doesn't free memory, it restarts/launches a new process. Garbage collection has been a joke since before we started measuring ram in gb instead of mb.

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

    by geekoid ( 135745 ) <dadinportland AT yahoo DOT com> on Saturday June 09, 2012 @05:52PM (#40270501) Homepage Journal

    ".NET is actually awesome,"
    SUbjective, although I agree.

    " especially when used with C#"

    ". Java is too much bloat and slow and needs to die."
    A ohhible sentence that is false

    "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."
    False. It lacks several thing much older IDEs had.

    So the only to things that aren't opinion are wrong.

Heuristics are bug ridden by definition. If they didn't have bugs, then they'd be algorithms.