Despite now using Mac OS X as my main OS, and being completely up to date on all of my software, there is one old program I still use: Visual Basic 6.
Visual Basic 6 arrived on the scene in 1998 — 11 years ago. To put this in perspective, Windows 98 had only just been released, most developers would have been running Windows 95 on a 400 MHz Pentium II with 32 MB of RAM. The browser of choice was Netscape 4.0 (Microsoft had been late to the game but were now bundling IE4 with Windows 98), Netscape had announced the browser was going free and open source in January of the year and the Mozilla project was started.
You wouldn't even imagine using Netscape or Windows 98 now! Too old, too incapable, too unstable and no longer even compatible with anything. Why use Visual Basic 6?
For a piece of software so old, and so outdated when I sit in front of it I feel like it’s home to me. I'm familiar with the ins and outs of the software and to me, its simplicity is a benefit compared to the more flash Visual Studio .NET. It's like a really good text editor, more than it is a swank IDE. Notepad with a play button. I can spend my thinking on the solution rather than managing the wealth of pop up panels and toolbars in newer versions.
For an 11 year old piece of software, I can be every bit as productive with it as I can be with TextMate on Mac OS X (an awesome text editor). The executables I can compile with it still run in even Windows 7 so I don't feel any disadvantage using old software when it still gets the jobs I need done. Backwards compatibility here hasn't been so side-swept like it has with web browsers.
Microsoft's radical switch from Visual Basic 6 to essentially an entirely different language Visual Basic .NET alienated a lot of people. Yes, .NET provided real Object Orientated programming and solved all the shortcomings of Visual Basic 6, bringing it essentially onto par with C#, but that wasn't the reason people used Visual Basic 6.
Visual Basic 6, for all the hate it receives, allows you to throw something together quickly to get complicated tasks done in a UI fashion that a batch script couldn't handle. You could write code as good or as crap as you wanted, and just as I always strive for code as art, so I did with VB6 too. I’ve seen people of all skill levels use Visual Basic 6 to do various tasks, including office automation. People who don't know the first thing about programming building database front ends. .NET just made Visual Basic more like Java - requiring so much formality that you had to learn to do things properly from the start, rather than learning that as you went along.
Over time, VB6 has been left behind, and the software has aged somewhat. There's a couple of things I have to do to keep my code up to date with modern operating systems. The VB6 IDE didn't have mouse-wheel scrolling as the scroll mouse was a new invention at the time. Thankfully an add-in for VB6 called MZ-Tools solves that.
The second main complication is that Visual Basic 6 executables cannot use a 32-bit Icon. Again, hacks can be done to resolve this. To provide high quality icons for Vista users I created a batch script that used ResHacker to replace the EXE icons after compilation with 32-bit versions up to 128x128.
Visual Basic 6 to me is one of those rare oddities of software that doesn’t age too badly and still remains practical to use despite a computing environment inconceivable at the time it was released.
So what old software do you still use (and love)?