Advertisement
Advertisement

Why computer boffins still have to use some of that old black magic

Danyll Wills

Apple fans all over the world will be happy to see that Mac OS 8 came out bang on time. This, of course, is only the first step on a long, long road.

It may seem odd to praise a company for doing things it says it is going to do, but software is a notorious area to work in.

People constantly bring up the analogy of the car or aircraft: if planes or cars were made the way software is, then there would be crashes and disasters all the time.

So what is the big difference? When you build a solid thing such as a plane or a car, you are dealing with pieces of metal, plastic, leather (if you are lucky) and other bits of the real world that are combined to create the final object.

At the most basic level, cars and planes have not really changed all that much in a long time. The engines are fairly standardised today and the laws of physics that govern how a heavy object stays in the air for a few hours without falling also have not changed.

In software, we enter a dark world of the unknown. Despite the fact that we call the discipline 'computer science' there is a lot that is more art - some would prefer to say black magic - than science in the efforts made to make computers do what we want them to.

The various parts of a car that go together to create the vehicle that we travel in are precisely defined and almost never interfere with each other.

The engine, for example, simply cannot come into contact with the brakes in normal use.

In software, these areas are less well defined. We may set aside an area of memory to handle the keyboard, for example, but a graphics program that runs out of control can easily overwrite any part of memory on a PC. That is why it will sometimes 'freeze' on you, requiring a reboot (this is true of PCs, not Unix, of course).

If you forget to tighten the bolts on the wheel of car, you will feel the difference when you drive - the loose wheel will make the car behave erratically. It is true, of course, that all machines have gremlins, problems that seem to have no known cause.

The problem with software is that the cause and effect are even more obscure than they are with mechanical objects.

If I set aside some memory for a sound, for example, and forget to claim it back - something one must do in programming - the result may not necessarily be a funny sound. It could be that the mouse now behaves strangely.

Among programmers it is often said that the difference between a great programmer and a mediocre one is the ability to debug, the ability to find what causes problems.

With all that can go wrong with a large software project (and there is not much that can be larger than creating an operating system), it is amazing that anybody can get the job done on time at all.

Microsoft is constantly delaying the release of almost every product it develops and Apple, as we have seen, had to cancel Copeland altogether.

Now, however, we have OS 8, bang on time. Despite all the possible excuses, Apple did get the product out on time. The reviews have so far been quite positive (we will not get the official launch in Hong Kong until August, so it cannot be reviewed until then).

It is great news indeed that should go some way to keeping the Apple flag flying. Now we all look forward to the first release of the new Unix-based Rhapsody. Can that come out on time, too?

Post