A Rant on a Comment to my Rant
A comment was left on my last post about the whole VB6 thing. I sat and wrote a response, and was just about to hit send, when I realised how damn long it was.
This thing was no response to a comment! This thing is worthy of a complete new post! Well, maybe not worthy, but I thought I'd make it more visible so that if nothing else, people can leave me even more hate mail :)
Anyway, here's the comment, by Jonathan West.
The point your blog misses is that Microsoft has not only dropped VB6, but also hasn't provided a usable upgrade path,unlike the other products you mention.
To ask for one is not either pro- or anti-NET. It has nothing to do with .NET at all.
To accept that Microsoft can get away without providing an upgrade path should be a worry to you. The key people in the developer tools division at Microsoft seem to have lost sight of the concept that a language and a platform are two separate things.
Platforms come and go. What will you do with the code you have written and need to maintain when the .NET platform goes and Microsoft abandons the languages that formerly targeted it? Of course, it will still be available for a while even after Microsoft stops selling it, so people will tell you "VB.NET hasn't gone away, carry on coding in VB.NET". But the time will come when modern platforms no longer support the latest version of the framework you can still compile to. At or before that point, you will be faced with abandoning all your code and starting again in a new language.
If anything, as a programmer in a new and untried language without any track record in long-term stability, it would be in your interest for the petition to succeed, simply to concentrate the minds of the people at Microsoft on the need to allow developers and application owners to preserve and manage their code assets, lest Microsoft pull the same trick on you in some years time.
So how about a signature from you?
And now for my well-written, witty comeback :) (Note: rants are written quickly and without much editing except for a spell check. IN this way, they're sorta similar to every other post I write. Oh well.)
Jonathan,
You see, this is where I disagree, on two points, and I have one last one to state at the end :)
1) I consider VB.net to BE a viable upgrade path. More to the point, I consider ANY .net language a viable upgrade path (well, some more than others - VB, C#, C++ are the prime candidates, as they are the 'mainest' of the main.
2) Yes, in the future, I'm sure there'll be something other than .net. What's the problems? Back in the day, when COBOL was invented, I'm sure this wasn't considered to be the THE language, that something better wouldn't come along. Same for C. Same for any language that isn't as popular now as it might once have been.
I've been discussing this a lot with people. One thing that I'm firmly convinced in is that software evolves. It's the best (and yes, sometimes the worst) thing about the IT industry. Time in the IT world goes much faster than it does in the real world. Hardware improves in leaps and bounds. Software tries to keep up. Have a look at the progressions that each OS version the MS have released have made - from DOS, to windows 3, to win 95/98, to XP. The improvements made and the increasing number of things possible in each leap is huge. Having had now the opportunity to sit and use XP, I would become increasingly uncomfortable and restrained if you were to roll back my OS versions. Sitting on Win2K, not too bad, I suppose. Win98? Not pleasant. Win95, quite unpleasant. Windows 3.11 - no thanks.
The same can be said for individual pieces of software. Office is a prime candidate - Office 2003/XP is very pleasant to use. Office 2000, usable, but not as nice. Office 97, well, it's functional, but we hit problems for sure. Earlier than that? Please no.
Earlier versions of browsers. Earlier versions of anything. In almost all cases, the older versions are not as good, or as nice to use, or even desired.
Software languages are the same too. The original BASIC was very simple. When VB came along, people were amazed. As each version of VB came along, more and more things were possible. Pick someone who's still happy in front of VB 6, and ask them if they would be happy to revert back to VB 2 or 3. Would they be?
In ten years time, I'm going to look back at what I was able to do right now in .net and consider it to be pretty sad :) .net might still be around then, it might not. who can say? This is no worry to me tho, for as the next version comes out, I'll happily upgrade. With development comes a responsibility to keep up. Not much software out there is really that innovative. It's all just a better or newer way of doing the same thing, over and over again. Otherwise, there'd be no need to write new versions of the same program - everything would stay at version 1 forever. New features are needed, better algorithms discovered, just a better look would be nice. All reasons for upgrading, all perfectly valid.
The language you write in is just another piece of software. Upgrades are needed. Sometimes major overhauls. To take VB6 any further and produce VB7, MS realised something pretty important - COM is shit. Now, I'm putting words in their mouths, I have no idea how the decisions were reached, but it seems pretty reasonable to me that in finding a better replacement for COM, .net was invented. This allowed a continuation of the language (and really, the language isn't all that different) without the COM reliance. Take away COM, and what's left of VB6? Just the language syntax. Well, they kept that. I don't see the big deal.
When a piece of software is written, part of the implicit contract that comes with it is that the program will work - for now. There's no guarantees it keep working in the future. So many factors could change along the way - service packs can change things, OS upgrades can change things, anything. At some stage in the future, it's a pretty safe bet that a version upgrade will be required/desired.
Realistically, who actually will currently need MS support for VB6? I can think of only two types of groups.
a) Something suddenly breaks. What would have caused this? Only system changes, by which I mean OS modifications - an upgrade or a service pack. If this is the case, and you're so heavily reliant on your currently broken software, you can roll back the change, or modify the code to support the difference. You can either modify the source (which doesn't require MS's help) or write it again (which gives you the opportunity to upgrade your language).
b) You're currently in development of a VB6 project. If this is the case, you've got problems. If it was started recently, the language choice was very very poor. If it was started a while ago, you've got more issues then no support for VB6 - the project to develop has taken way too long.
Maintaining an existing codebase doesn't require support from MS. It requires people that know the language to come and maintain it.
Projects I write now are currently on about a 50-50 mix of rewriting old stuff in different languages and writing new applications. All of it is being written in .net, and all of it is time being usefully spent. The stuff that is being rewritten is considered too slow and clunky now. The maintainability is shot, because of so many patches, the performance is less than desirable, because VB6 is not as easily optimised. It's now being rewritten into something that's extensible, maintainable, and it takes advantage of what .net has to offer - specifically in our case, web services, which hadn't even been invented when some of this stuff was written.
The new stuff is taking advantage of the exact same things as what we're getting out of the rewrite.
But along with this is firm knowledge that in another 5 years it's quite likely that they'll have to be reviewed again against what's available then. And again 5 years after that. If something better than .net is around great, we'll use it I'm sure. If not, then a version upgrade or two of the .net framework is fine. Can I still maintain the old codebase? certainly! I'm not stupid enough to throw away the Cd's with the installs for VS2003, and I'm certainly not stupid enough to throw away the CD that contains the OS install that still actually runs VS2003, that way we can always go way back if we need to. For the same reasons, I've still got a copy of win95, win98, and windows 2000. It's for that reason I've still got a copy of my VB6 install. These things get kept so that we can do these things. I don't require MS support for it.
But I doubt I'll ever need to. Everything we currently have written for the .1.1 framework is going to upgraded to 2.0. When 2.1 comes out, we'll upgrade to that.
You see, part of maintaining the software is keeping it up to date, not just hacking in fixes and enhancements.
This is probably my biggest beef. People that are still relying on software VB6 have made an incorrect assumption about it - that the money they forked out back then was the end of the story. It's not. Software should be upgraded and reviewed at regular intervals, be it months or years, or whatever. If the software that's being depended upon requires older OS's, then what support are they going to need for VB6, when the support for the OS has ended too? If the OS is kept up to date, then the software should be too.
3) (Yes, finally three!). No, you don't get a signature from me. You said nothing to convince me that I should. You're 'what if' that you presented didn't scare me, I look forward to it.
I have never signed a petition. I'm yet to see a petition that wasn't ever started by a closed minded, small minded minority, and this one doesn't do anything to change my mind from that.
Listening to: oceans - pearl jam - (2:42)