Last Modified: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?



Homepage / Publications & Opinion / Archive / Daily Telegraph: Harddrive

Artificial life may find the meaning
THE EXPANSION in software size and complexity is overtaking the remarkable advances in computer hardware speed and storage density. A sustained doubling of hardware capabilities every 12 to 18 months since 1960 seems to be no match for applications that required 0.5Mb of RAM 10 years ago but now demand more than 5Mb. So, we now have Power PCs apparently running slower than a 386 of only a few years ago. What is happening? Will the software industry continue to consume all future hardware gains, ignore optimisation, and provide ever more complex and unwanted facilities embedded in more and more lines of code?

At the present rate of software expansion, we will soon need a supercomputer to write an office memo. And it is not just PC-related software; it is true of almost all commercial, defence and engineering systems - software keeps expanding. It is as if we have learnt nothing from our decades of working with hardware. Superficially, the engineering differences between hardware and software seem minimal, and the cost of software manufacture is often greater. So why do we not optimise and worry about software cost and efficiency?

Could it be that software is something so new and complex that it will defy all our efforts at analysis? Or is it just that we have never before had problems with thousands of loops and input/output functions? If this is the case, we could be in a new realm of the unknowable - well beyond our mental capacity to decode. So what are we to do? Well, we can continue on our present course and suffer a continuing, and probably terminal, slowdown. Alternatively, we can pin our hopes on new programming languages, such as Java, that are tighter, smarter and better organised. Perhaps these will help us to take the vital step to software building blocks that can be glued together in an understandable and efficient manner.

In the mechanical world, we built bridges of wood, stone and steel, investigated the material properties, and later discovered molecules and atoms. In the software world, we seem to have started with the electrons and have yet to discover molecules, let alone the concept of wood, stone and steel. We lack any suitable abstractions to form a systematic view, and we know nothing of the general properties. Software modules, discrete building blocks, might be the fix we need. However, progress in this direction has been slow and there may be a new alternative.

Developments in artificial life systems now see genetic mutation and exchange creating a different richness of solutions. Software that writes itself in a similar manner to the evolutionary process of life is now a crude reality. Control systems requiring millions of lines of code have been replaced by less than 1,000 evolutionary lines, and purists now worry about not understanding the way the machines do it. The truth is that we are not all that clever about understanding how we do it either; the complexity is generally well beyond a single human mind. So, here is a new world of machine-generated code, where machines program and learn, and we unknowingly use the tools produced. Most impressively, the machines may soon watch us, learn from our habits as they change and continually modify the code to meet our requirements.

For the most part, people do not understand people, or machines. The big question is, will the new machines understand machines and people? I hope so, for it would be a great breakthrough to get some understanding into software.

Peter Cochrane holds the Collier Chair for the Public Understanding of Science & Technology at the University of Bristol. His home page is:
http://cochrane.org.uk

All materials created by Peter Cochrane and presented within this site are copyright ? Peter Cochrane - but this is an open resource - and you are invited to make as many downloads as you wish provided you use in a reputable manner