Monday, October 18, 2004

18 October 2004: Basic

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.


Sarahbelle said...

I find it amusing that after all the foul thoughts voiced by both you and I during my VB class at university, that now you have to teach it! My sincerest condolences, mate...and I especially found it interesting when I heard there are some Microsoft products that are not even compatible with each other! And those products are supposed to be the modern, technological advances of our time??! If that's the case, we have quite a ways to go, don't you think?! :)

DuncMcRae said...

Hey Sarah!
Yes... I remember your VB class all too well! Actually the course I'm teaching isn't too different to yours -- we're not going too in-depth, which is a good thing. But yes, the irony of my having to teach VB is not lost on me, given the things I have said about it in the past. I'm trying to hide my cynicism from the class. Although this week it's been more like trying to hide my stomach flu from them.
Anyway -- are you blogging too now? Can't wait to read it!! Hope you're doing well - how's work, life, being married etc??? Sounds like you're loving it! :-)