Martin Banks, Personal Computer World 04/84 - checked

Banks' Statement

April 1984

Someone sidled up to me recently with one of those, you know, significant looks in their eye and whispered: '1984 is going to be the year of interesting operating system developments, did you know that?'.

Under the circumstances, I had to answer that I didn't know what he was talking about, partly because he was speaking in Esperanto. This tended to make the oral/audio communications interface protocol translation problem loom just a little large in my life. This man then wandered off, muttering something that sounded vaguely disrespectful, though I couldn't be sure.

The incident set me to wondering, however. Although, through the benefit of artistic licence, I did manage to interpret what the man said, there are a million occasions every day when two or more people of different cultural and language backgrounds fail entirely to communicate with each other in any meaningful way.

This is not totally dissimilar in general principle to what has happened in the computer business. Each manufacturer, for sound business and technical reasons, has tended to go off and do its own thing. This has meant that each brand of computer is different, not just cosmetically, but fundamentally.

In the microcomputer business the situation has been, on the surface at least, different. Apart from the three early star companies - Commodore, Apple and Tandy, each of which followed the traditional route of producing machines that were compatible only with their own - the micro business threw up a degree of theoretical commonality that was surprising, and which bucked the trend.

The trend bucking was only theoretical, however, as anyone who has tried to stick bits of 'similar' equipment or software together will have found.

On the hardware side, for example, the S-100 bus structure rapidly grew up. Many computers were made to this hardware 'standard', yet the circuit boards from one would, more often than not, fail entirely to work with another, even though they were 'the same'. It was no different in software. There rapidly grew to prominence this thing called CP/M, the operating system to which all self-respecting program developers paid considerable deference.

With CP/M there was a degree of standardisation, in theory at least. A program written to run under CP/M would run on any machine that would run CP/M. Unfortunately, it was never quite that easy in practice. It depended which version of CP/M was in use and what machine it had been prepared for. In practice, each CP/M was different, which meant that it could not be assumed that a program would run on one computer just because it ran on another.

The old tradition of separatist development had, to all practical purposes, managed to rear its ugly head once again. The head is still very much in view, though software technology would seem at last to be shaping up to offer a means of knocking it back down again.

The mention of Esperanto at the beginning offers some pointer. Although that language has singularly failed so far to become the universal verbal communications medium it was designed to be, the need for something like it shows the validity of the attempt. By the same token, the computer industry needs its own Esperanto so that the vagaries of hardware and software separatism no longer become important.

Knowing the computer industry as well as we do by now, it goes without saying that it has come up with a new buzzword to cover this particular problem. This actually falls into a well-defined sub-set of computer jargon that has been around for some time - the Virtuals.

This started with Virtual Memory, which refers to the ability of a computer to swap data rapidly into and out of disk in such a manner to appear as though it is equipped with a large - virtual - main memory, when in practice it only has a small(ish} one. Then came Virtual Machine, which was a method of making one computer configuration appear to a piece of software although it were a different computer.

This latter was a forerunner of the latest addition to the virtuals - Virtual Environment. This type of virtual environment is one where it matters not a jot what language an application program is written in, or what operating system it should run under. With oven ready virtual environment(tm) installed in your computer, it will run. Sadly, the availability of such a product is some way off, but the early signs that it will be a working, practical reality are emerging.

If it works, and if it actually does mark the start of the 'something' l feel it ought to be, then this virtual environment stuff is likely to prove very interesting to the millions of users, both existing and potential, who sit in corners sucking thumbs when it comes to solving multifarious and usually stupid operating problems caused by computers.

The reason it will prove interesting, if it all works, is that it will no longer matter about the details of software. The user will be able to load it into a machine and its operating system will sort out what should be done to make the thing run properly.

No longer will it be necessary for the user to ensure that a newly purchased applications program is written to a specific version number of a specific operating system, or whether the operating system, under which the selected application program label says it has been written, is the one specifically available on a particular computer. The user, who normally has better things to do than kick the cat because the software won't run, will only have to load the disk into the machine - end of story, start of use for application.

For software developers as well this should promote a certain degree of interest. Any method of standardisation in software, however ghastly, brings with it the practical possibility of writing a new application program once only, and then having the entire potential market place available. No more rewriting, tailoring, editing, changing, modifying et al to fit the application into each new operating system/machine environment (there's that word again).

How will this miracle be achieved? Well, just take a look at one particular product.

Buy an IBM PC if you will, and then run PC-oriented applications under the latest version of Concurrent CP/M from Digital Research. This will mean that other, non-PC-DOS programs can be run as well.

The alternative looks even more intriguing. You will be able to purchase, in theory at least, any computer capable of running Concurrent CP/M. This is essentially any of the 8086/8088-based machines with a goodly chunk (256k or more) of memory on board. If it is the latest Concurrent, then that machine will also be able to run PC-DOS Version 1.1 applications software. At a stroke, an IBM-look-alike computer will be turned into an IBM clone, or pretty damned near. It's a long way from the full meaning of 'virtual environment' but it is a step, I feel, in the right direction. When even experienced software developers get caught out in the maze of 'which-version-for-what-machine' permutations (as I have seen happen before) then it's time something was done.

end