Bugs, Errors and "Features"

Written by TAD

Why does so much new software (and especially Operating Systems) contain so many bugs?

Time = Money

There seems to be more and more software patches appearing every day. Take that money grabbing software company that we all love to hate, M1cro$oft. Their track record hasn't been very good, has it? An article not so long ago in a computer magazine reported that there was over 6000 bugs in Windows 98. How come that such a large company with so many programmers and the "visionary" Gill Bates can create such bug ridden software? And more importantly, why do so many suckers (sorry, people) still buy their products, and even defend M1cro$oft at every opportuntity?

You might have seen crowds of punters cheering in simple-minded unison at the sight of Gill Bates on a stage looking rich and smug. I don't really mind either of these attributes, but shouldn't he be smug after creating a good, clean Operating System rather than the bug ridden ones he keeps on selling?

The PC problem

One problem which 'may' explain the vast number of bugs in PC software is the large number of different hardware components and their ancient roots in 1970's technology. With cheap clones, clones of clones or just plain incompatible hardware is it not so surprising that the PC crashes or locks up so often. Things are slowly, oh, so slowly getting better with agreed standards and specifications, but there are still so many holes in these documents that problems will still appear.

On the old 8-bit and 16-bit machines all the hardware was designed and built together from the start. You knew that one C64 worked like another or that one Amiga A500 would have the same hardware as another one. The upgradability of the PC is both a blessing and a curse. Although new PCs are coming out with almost a complete system (a sound-card, modem, 3D card) there will still be problems, but thankfully it will not be as bad as it once was.

The sheer number of different modems, video cards and other add-on components must be a real nightmare to Operating System programmers. How many times have you found that it supports every piece of ancient hardware, except yours? The solution... to find the correct device drivers and hardware settings, even this is no guarantee of it working.

One of the problems seems to be that hardware manufacturers like to add their own custom tricks and features to their hardware. The "open design" of the PC seems to be a fitting description, because you regularly need to "open" the damn thing to get it to work!

Take a look at video-cards and the mess which was created before VESA (and is still being continued today). Everything was reasonably okay until people started to make their own SVGA video cards. Before this all the other screen resolutions and modes were well documented, good news for the poor old programmers. Back then you knew for sure that mode 13h would give a resolution of 320 x 200 with 256 colours. But what happened with the SVGA modes? Suddenly mode N on one video card wouldn't work on a different video card, even though both supported the same resolution and number of colours. The result? Chaos. Coders were slagged off for being lazy swines and users/players got really pissed off. Some may have even sold their PC and got an Mac or a games console.

We need standards, flexible standards

Thankfully people like VESA did try to help this stupid situation by introducing a standard set of interfacing routines, but most of the damage had already been done.

But now we have VESA version 3 and history seems to be repeating itself again. So instead of having many different video cards, you now have many different versions of the standard interface which was meant to do away with all the different standards. ARRGGGGGHHHH!!!!!!

The future will mean that more and more pieces of electronics will be connected together, from washing machines to toasters, from microwave ovens to life support machines. And most of these things will need to be extremely crash-proof, running non-stop 24 hours a day. If one piece of hardware fails or is incompatible then an entire system would be really bad news.

A hard solution?

One of the so-called advantages from having a soft Operating System instead of one in ROM is that it can be easily upgraded with the minimum of fuss (or that's how M1cro$oft and others would have us believe), but it also means the entire Operating System is open to virus attack or data corruption. Hands up who hasn't had to re-install Windows more than once... I am sorry to keep going back to the days of 8 and 16-bit machines but at least on them when a program crashed the reset was guaranteed to give a working Operating System once again. There was NO chance of a virus or part of the ROM going missing because of a disk fault. Games consoles are in the same boat, you can't upgrade them with a new Play Station CD or a patch from the Internet. You know that if a game bombs out then inserting a different game and hitting the reset will result in a working console once again.

Hardware (for me anyway) seems to be far, far, far more reliable than software ever is. To put this another way, consider how many times you have failed to log on to the net, now compare that against the number of times that your telephone has failed... See what I mean?


Is this is latest craze in programming.... or the recorded message on the M1cro$oft customer support phone line? (Heh heh.) The thought behind this is that small, individual components' communication with each other to make things easier, more efficient and reliable. Something which the electronics world has been doing for decades!

The hardware makers are also partly guilty for the PC problem. Having built all their fancy new features they seem very reluctant to give away example code, technical documents or free programming libraries to the people who will be using their hardware. It's kinda like selling video-recorders but not including the instruction manual... very helpful, I DON'T THINK!

So the result is that coders will use their own hacked or trial-and-error methods to program the hardware. If they are lucky then it will work, if not it may crash every so often. The result is that users and coders will look for other, easier to program for hardware, and the chip makers go out of business and wonder why.

With each new, more bloated version of the PC windows operating-system there seems to be more and more bugs, but why? Most other companies seem to improve their products, making them more slim-line, quicker and reliable. The OS should be a natural progression of previous versions, keeping those features which work and improving those which do not.

I installed Internet Exploder version 5 the other day (yes, exploder!) and less than three hours later it was replaced with version 4. Why? Well, after two major crashes (one reset my PC for no visible reason) and seeing that some of the most useful features had been replaced with something worse I can't understand the design mentality behind M1cro$oft. If this is the creation of Gill Bates then he is more lame than I previously thought (new depths etc.) I have said it before that Apple seems to have a much clearer vision of the direction in which it should be going. I just hope that the PC stops being designed in such a random way, it needs some clear design strategy and strict specs which every hardware maker can follow to the letter and the ancient 1970's technology finally taken out into the back yard, a shotgun placed to the base of the neck and finally put out of its feeble misery.

Most new users don't care about using 1980's software, or that a game written in 1990 works on their new mega-deep-thought-faster-than-light PC. They just want an easy to use machine which isn't controlled by one megalomaniac (whether it is Jeve Stobs or Gill Bates).

Closing words

For me, the Windows upgrade path is one which I am forced down rather than something I want to follow to "gain" all the fancy new features that Gill Bates wants to force onto the world. Just give me a clean, small and above all else, something which is reliable!

A GUI interface should mean a user-friendly Operating-System, not something which the user keeps getting stuck with. In short take the "GOO" out of "GUI".

Happy coding.


TAD #:o)