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.'"
Use it today (Score:5, Insightful)
Re:Use it today (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.
Re:Use it today (Score:5, Insightful)
Re:Use it today (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.
Re:Use it today (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?
Re: (Score:3)
Re:Use it today (Score:5, Insightful)
Re: (Score:3)
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
Re: (Score:2)
Re:Use it today (Score:5, Insightful)
absolutely true, but if you look at TheDailyWTF [thedailywtf.com] 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.
Re: (Score:3)
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
Re: (Score:2)
Do you think they would more likely be able to create remote web services with VB6?
Re: (Score:2)
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
Re: (Score:2)
Re:Use it today (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.
Re: (Score:2)
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)
Same here. And everything that VB6 can't do or "needs a 'lil help with", I'm adding with PowerBASIC [powerbasic.com] (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.
Re: (Score:2)
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.
Re: (Score:3)
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.
Re: (Score:2)
Re: (Score:3)
Re: (Score:2)
I think the point was that the barrier to entry of writing small useful applications is low. That's as useful to professionals as it is to beginners because it means you the professional can whip out a program that gets a simple job done really quickly.
That doesn't mean it's not also an effective tool for writing big complex applications, though there might be better ones for that.
Re: (Score:3)
yah, but we're kinda hoping for something with pneumatic wheels instead of the wooden ones. ;)
What would be nice would be (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.
Re: (Score:2)
Re: (Score:2)
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.
Re:What would be nice would be (Score:4, Interesting)
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.
Re: (Score:2)
Re: (Score:2)
And look at the time period XP was on the market vs. Vista, 7, and now 8. I know businesses just getting their first Win 7 machines and MS is already pushing 8 out on everyone. That's fine for home users. For businesses, it just isn't good business.
Re: (Score:2)
" I know businesses just getting their first Win 7 machines"
Just like us. Wim 7 rollout is scheduled for sometime this summer, except for certain critical machines that will presumably get upgraded next year.
Re:What would be nice would be (Score:4, Interesting)
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?
Re: (Score:2)
Besides, I'm convinced that MS will continue releasing security updates for XP indefinitely. They'll see from usage statistics in a few more years that a LOT of people are still using XP, and I think they'll support it. They're not dumb. They know that many people will use XP come hell or high water, and I don't think they would want to let such a widely visible product
Re: (Score:2)
Why are we even paying for Windows OS?
Because most large businesses have a large number of mission critical applications running and a few of them only work on Windows. But that may mean that only a few machines need Windows installations. The rest would be fine with Linux withor without WINE.
Re: (Score:2)
10 years after it was released and 6 years after its last major service pack, you mean.
Im pretty sure Linux 2.4.0 get mainstream support-- sure, there are maintainers, but thats essentially the vintage of OS we're talking about here. (2.4 was released in 2001, as was, I believe, XP)
Re: (Score:3)
Re: (Score:2)
"yep, I still use me ol' horse and cart. There's no good reason for "cars" - me ol' horse an' cart is workin' just fine".
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 recently switched and other than the fact I now idle with twice as much RAM in use I don't really see any differences beyond purely cosmetic ones.
Re:What would be nice would be (Score:5, 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.
Old Developers and Poor Upgrade path. (Score:4, Informative)
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. .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.
Upgrading you VB6 app into
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
Re: (Score:2)
Yes you can:
http://www.vmware.com/products/thinapp/overview.html [vmware.com]
http://spoon.net/studio [spoon.net]
I thought MS had the tools but it was just pre-JITing.
GUI flexibility vs Web (Score:3)
Web apps are more fun than VB6? At least in VB6 you could make the screen do almost anything you imagine with a few clicks. With web apps you are stuck with the page flow of HTML-related "standards", or else use JavaScript that probably breaks on some browser version or vendor you haven't tested, and looks jittery and forced.
The ability to make dialog boxes or help/wizard/lookup screens pop up anywhere for any reason is what made VB pleasurable: one's design GUI imagination can be satisfied without fuss and
More is less... (Score:3)
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).
Compatibility is Windows best feature (Score:5, 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).
Visual Basic 6 still thrives (Score:4, Funny)
Re: (Score:2)
VB6 surprising power (Score:4, Interesting)
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 [wikipedia.org] 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 [tronster.com] 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.
Re: (Score:2)
Re: (Score:2)
I think VB5 also supported COM. (Unsure of this.)
MFC was around long before VB6. We were looking to leverage it at the project's inception but found ATL (with WTL) to provide a lite-weight alternative without the bloated class inheritance. Looking back, as good as ATL was, I don't think we would have survived using it without the WROX books and great samples from CodeProject and similar websites.
The problem is both MFC and ATL are essentially just wrappers to a high procedural, highly struct-passing Win3
Colour Me Not Surprised (Score:2, Insightful)
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
Re:Colour Me Not Surprised (Score:4, Informative)
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:Colour Me Not Surprised (Score:4, Interesting)
...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. .NET class library is very good and is a huge potential "appreciable benefit" to upgrading. .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.
(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
(3)
(5) .NET is not even remotely dead, so no "fatal mistake" was made. .NET apps. Glance at the Tiobe index, for instance. .NET Metro style apps. Converting an existing desktop app may or may not require significant work [microsoft.com]. Your backend will be mostly to entirely reusable, so you won't have to "rewrite everything".
(6) Lots of people care about
(7) You'll be able to create
(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 [artinsoft.com]. 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.
Re: (Score:3)
Classical VB did not, and does not, have inheritance and subclassing (utterly fundamental to a language actually being object oriented)
Inheritance is not required for a language to be object-oriented - aggregation and delegation can handle all the same scenarios, not to mention prototype-based OO. The only prerequisite required for OO is polymorphism.
nor the polymorphism you see in proper OO languages as a result.
VB had subclassing, though it operated on interface level rather than class level ("Implements"). To that extent, it also had polymorphism - you could have class Base (which implicitly derives a corresponding interface), then say "Implements Base" in class Derived, and pass Derived anywhere w
Insult all you want (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.
Re:Insult all you want (Score:4, Interesting)
See also Joel Spolsky [joelonsoftware.com]:
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: (Score:3)
Back in the late 90s it was absolutely the most efficient way to write UI code for Windows.
No, that was Delphi. VB was a little bit easier to use, though, which is probably why it was more popular.
How do you use it? (Score:2)
I tried to install it on Windows 7 and it didn't work. So i gave up (programming for windows)
Re: (Score:2)
A question for the group (Score:2)
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
Re: (Score:3)
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
It's still a hack. (Score:2)
Re: (Score:2)
Any language that uses a newline as a statement terminator is demented.
like python?
Lazarus (Score:2)
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
Those should be the days (Score:2)
so (Score:3, Funny)
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.
Delphi was better.... (Score:4, Insightful)
It's too bad that Delphi didn't win out. It was a much better language/environment that VB6.
Re: (Score:3)
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
An improvement on its successors (Score:3)
VB 6 is probably a better language for modest applications than Perl, TCL, or PHP. We're not making much forward progress here.
Re:Might as well... (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.
Re:Might as well... (Score:5, 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.
Re:Might as well... (Score:4, Funny)
Re:Might as well... (Score:5, Funny)
How I envy the guy who will have to port your software to another OS or architecture /s
Re: (Score:3)
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.
That was always how Java did string concatenation (except in the cases where the compiler detecting it was concatenating literals, where it did the obvious optimization) and it's the only sane way to do it if you're not using a mutable string model and yet still have string identity other than by value. (Languages that don't expose object identity can pull some clever tricks to hide the details.) If you're ever stuck trying to optimize some Java code, the first thing to look for is whether they are doing st
Re: (Score:3)
The VB6 compiler produced native code.
It produced horribly inefficient native code, though. Unless you were very careful with types, you could get stuff that run very slow. For example (like using Mid rather than Mid$ to extract a substring), it operated on COM variants, rather than raw strings, so it jumped through a bunch of hoops just to make sure all types are compatible and convert them if not.
Re:Might as well... (Score:4, Informative)
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: (Score:3, Insightful)
I am not sure the stereotypes Platt is describing really make sense. I know plenty of non-vb6 coders who work 40 hour weeks and actively avoid jobs where they must work evenings and weekends (myself included). I would imagine that plenty of vb6 programmers started working these kinds of hours after the .com bubble popped, for fear of losing their jobs otherwise (until they burned out, of course).
A career in tech is bad enough as it is....no opportunity for upward mobility without shifting to a completely
Re:Might as well... (Score:4, Interesting)
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, 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.
Re:Might as well... (Score:4, Informative)
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)
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.
Re: (Score:2, Funny)
Comment removed (Score:5, Insightful)
Re:Might as well... (Score:4, Insightful)
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.
I'd be fine with that. Except that those little projects that just need to be banged together out of an erector set have a habit of growing, and becoming "business critical". They soon exceed the skills of those who banged them together, and they need to call a "real engineer" in to make it work again. Frequently, the existing software doesn't do exactly what it's meant to, or what the documentation (if there is any) says it does, and nobody wants to give any design criteria are "do what the old one does, but better".
In short, the reason "real programmers" hate it, is because sooner or later, it ends up being their problem.
Re:Might as well... (Score:5, 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.
Re:Might as well... (Score:5, 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.
Re: (Score:3)
Re:Might as well... (Score:4, Informative)
".NET is actually awesome,"
SUbjective, although I agree.
" especially when used with C#"
Subjective
". 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"
Subjective
" 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.
Re: (Score:3)
I prefer VB.Net versus C# actually. I use both but C# has more complications without adding more functionality for most standard software development usage.
About Java: it may be false, but most products I have to use that are built in Java are pretty slow, and/or have an awful GUI. Apparently it is very difficult then to use it in such a way that you don't suffer performance issues.
But the main question I have is about the Visual Studio remark. While I know of one IDE that had realtime code compilation (pre
Comment removed (Score:5, Insightful)
Re:Might as well... (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.
Re:Might as well... (Score:5, 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.
Re:Might as well... (Score:4, Insightful)
Re: (Score:3)
...and they'll be right to do so.
Re:Why isn't Ruby thriving, though? (Score:5, 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.
Re: (Score:2)
VB6 Staying power is also due to this fact: anybody can do programming with it. You don't need to get formal education in development to use VB6. It's a tool that was create to solve the problem "how do I get people to write their own applications and solve their problems themselves" and not "how do I make professional developers productive and happy". VB6's target audience is much wider than professional developers. And right now there is no alternative.
Re: (Score:2)
Hear, hear!
Programmers usually don't get this, but there will always be a need for languages that allow non-programmers to create simple automated behavior without using a formal language with strict grammar.
Hypercard was the first to allow this, VB6 and Mosaic were its natural successors for desktop and web applications respectively, and Excel fills-in the gaps for data modelling and storage. Actually the spreadsheet is a really good programming language for this purpose, even when its automation features
Re: (Score:2)
VB6 Staying power is also due to this fact: anybody can do programming with it. You don't need to get formal education in development to use VB6.
Um, anybody can program with any language. It doesn't take a degree to write code in C++. Most of the kiddy coders these days aren't using VB anymore, they're using C#.
Delphi (Score:4, Interesting)
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").
Re: (Score:3, Informative)
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...
Re: (Score:2)
My VB6 devkit includes a whole bunch of stuff that make it tolerable ; one of them is a mousewheel plugin for the IDE. Also a text search that searches everything and supports regex, a "find all callers" routine, error handler insertion, and a decent stack-ish error handling library. Full stack traces with line numbers in VB6 code are very useful.
Re: (Score:3)
Does VB work under Wine?
Develop under Linux, deploy on Windows. ;-)
Re: (Score:3)
Yes it does work and has gold rating:
http://appdb.winehq.org/objectManager.php?sClass=version&iId=1325 [winehq.org]