Whether software viruses can be regarded as a form of life has long been the subject of heated debate, and turns on the issue of whether the object under discussion is able to reproduce itself independently.
But now the debate is set to be taken a stage further, with the theory that software can beget other software, and so improve the way we use it.
Dr Chris Winter, technical group leader for applied research and technology at BT's Martlesham Heath Labs, subscribes to this theory. Not only that, he even believes he can prove it. 'If we can make software simpler, faster and more productive, then we can reduce its cost, boost quality and speed delivery.
'Software just for managing networks is a multimillion-pound market, so if we can improve software productivity tenfold, then you begin to appreciate the payback.'
Winter has a point. Software is becoming highly complex, large and expensive. The downside of the the latest generation of office suites is the computing resources they gobble up, with a typical piece of suite software containing a 100Mb of code.
'100Mb of code is equivalent to what builds the whole of your body - it's the amount of information in your DNA,' explains Winter. 'The last time I peered at a Windows program, it was about the same size. That's deeply worrying. If I can produce your entire brain with less information than it requires to write a word processing program, then we ought to be thinking about software development in a different way.'
Rather than search for the answer in conventional programming, Winter suggests the solution may be to learn from nature and build systems which are more biological, and which can automatically adapt to change and think for themselves.
BT is attempting to develop such technology at its labs, using programming techniques which mimic biological evolution. A great deal has been learned by modelling evolutionary processes and using them to design more intelligent programs which automatically adapt to change, as nature does, and which use intuitive reasoning to anticipate problems or mistakes.
'This has become necessary because today's software is brittle and inflexible with no fault tolerance. Just a small error makes the entire program fail, as programs are designed to be accurate rather than robust,' says Winter. 'But if programs gave an acceptable but inaccurate answer we would be in a new computing regime. Thus, logic-based programs need expensive specification procedures and costly test harnesses. They are difficult to maintain and are unreliable - precisely because they are accurate.'
'Soft' or biological computing can reduce costs, improve reliability and enhance performance. The solution, according to Winter, is to create progenitor programs which each produce offspring, and in turn breed to produce more intelligent generations.
BT has written a demonstration program to illustrate software elements combining, de-combining, mutating and selecting, and dying off. 'This is software being used to design further software and it can be done much faster and more cheaply than by human programmers,' claims Winter.
As computers are sequential, logical thinkers, the biological approach will introduce randomness and an ability to adopt soft criteria, such as dynamic modelling, which will adapt to changing circumstances.
Simple techniques such as genetic algorithms already exist, but can produce only very small programs. To try and produce large programs, BT has been building complex simulations to answer questions such as 'Why are there only two sexes?' to find out the fastest way of evolving code.
The conclusions were simple but profound - in biology, two sexes may be best, but in a computer many sexes may be better. It depends on the problem you're trying to solve.
In biological organisms there is also no distinction between the machine and the program, so can we change the architecture of the computer so that it continuously modifies its own function? Winter thinks so. 'New chip technologies enable the computer to create its own hardware. Allied with evolutionary techniques being developed for software, this gives us the possibility of self-optimising hardware systems.'
A biological cell is like an information processor, constantly measuring the state of the outside world and taking appropriate actions which it does through a network of proteins processing the information. Although information drifts around in a disordered fashion, it still reacts intelligently.
To test the idea, BT has created a computer that works by having the information drift around inside it, bumping into processing sites, similar to proteins in biology. The processors recognised patterns in the strings of data and either broke the data string into two pieces, or joined the low end of one to the high end of the other. 'The result was a soup of data that was sorted into strings of increasing length of ordered numbers,' says Winter. 'Thus a very simple computer was built.'
According to Moore's Law, computing power grows by a factor of 100 every 10 years. The current prediction is that in about a decade computers will be able to write code faster than human programmers can. By 2010 computers will write programs on demand. From that point on, the whole dynamics of the software industry will change.
'Programs are being produced that we didn't design, the machines have done it,' says Winter. 'Under our control, they could begin to make subjective judgements.'
New interfaces Virtual worlds
Biological organisms often show coordinated behaviours, such as flocking. These have been mimicked by the graphics design community to create lifelike behaviours in computer simulations. Such flocks often only need three or four lines of computer code for each boid (or flock member) to produce surprisingly robust and complex behaviours.
Can this be used to improve computer interfaces? BT has been experimenting with flocks (using birds and fish as visual metaphors) that learn and evolve new behaviours, and convey information by the way they behave.
'For example, you release a boid into a virtual world that carries with it a series of topics of interest to you,' says Winter. 'By observing who it flocks with and for how long, it becomes possible to identify at a glance others present in the world that you would like to talk to. The flocking behaviour can represent the closeness of match to a set of noisy data in a way that the human eye is very good at picking out.'
The process is called dynamic visualisation and these boids can also be used for network management and scheduling.
Do you agree?
Have your say on this article