For my sins, presumably, I have been requested to help teach a programming lab this semester. No problem there. Except the language we're going to be using is Visual Basic.
Now don't get me wrong. I think VB has its place in the computer world (ok, that place is 'buried underneath a large stone with all its evil GOTO statements', but still it's a place), it's just that for me VB brings back too many bad memories of QAS. How many times would I do some nice, neat piece of programming in Java or C++, only to be asked "why didn't you do that in VB?" (
Because VB doesn't do strings well, it has the astoundingly neanderthal 'END IF' statement, and I didn't need a tacky front-end when all I'm doing is a file-processing script.) And for goodness' sake, don't talk to me about VBA - Outlook's built-in VB forms functionality had more bugs than working parts. Gives me the shivers just thinking about it.
But I'm a forgiving type, and I know enough about VB to be able to teach some second years about its various nooks and crannies without being too cynical. The only problem is, in order to do this, I need to get Visual Basic installed on my machine, so I can run through the lab exercises before the actual lessons. Well, I'm running Windows XP on one of my machines, so no problems there, you may think.
You think wrong.
Firstly, VB doesn't exist any more. It was subsumed into Visual Studio 6 a couple of years ago, and thence into Visual Studio .NET, a package so large and unwieldy it won't actually fit on my laptop. But there's no VB without it, so off I go to the university self-install website and begin the process.
After wrestling with the Component Update section (which kept trying to install FrontPage 2000 for me, despite my continual clickings of the 'no, don't install that piece of poo on my computer' button), I eventually (after two DAYS, yes two DAYS) managed to both install FrontPage 2000 and convince the installer that I had done so, and it let me continue. Now I came to the install proper, and here is where things got too crazy for me.
The install takes about half an hour, if you're installing from CD or 'it-thinks-its-a-CD' network installation. There is an install program that goes through the CD and copies programs from there to the correct place on the hard disk. No problems so far, right? Except this: frequently, the installer would pop up a window saying it couldn't find some file or other on the CD, why hadn't I put it there, and did I want to abort, retry or ignore? Well, I wanted to abort a long time ago, but I had to keep clicking ignore. Eventually it installed and does seem to work, but with errors and warning messages everywhere over these files it couldn't find.
And here's the thing that gets me: this was a CD, made by Microsoft, and the install program (on the CD) had, clearly, a different list of files than were actually on the CD. The CD was incompatible with itself. This is a huge, major release by Microsoft, it's their flagship developer product, merging VB, C++, C sharp and all manner of other languages into one happy bundle. And it wasn't even compatible with itself.
This afternoon, as I continue to battle this remarkably lemsip-resistant lurgi, I shall begin feeling my way around VB.NET, the slightly-doctored version of VB I have to use in class tomorrow. I'll program the exercises and try to avoid horribly unstructured goto statements. But in my mind will be the battle I had even to get VB installed on my Windows XP computer, and it makes me think more and more that Linux is the only way to go.
The other thing is this: a number of people (people I respect) have told me recently that Microsoft aren't so bad, they're producing decent stuff these days, we shouldn't be too hard on them. I say nonsense. If you want to do anything other than write a letter in Word or listen to a CD on the Windows Media Player, you're in trouble. More security updates than you can shake a stick at, and when it comes to programming... forget it. .NET may well be more complete than PHP and simpler to use than J2EE, but it's such a bear in practice that I can't see myself ever wanting to go down Uncle Bill's road again.
Abort, retry, ignore? You decide.