From Alec Cawley
Bentley says: “Unlike computer software, nature’s code is not full of bugs.” On the contrary, nature’s code has all too many bugs. Organisms suffer from genetic and embryological defects, sometimes crippling and sometimes lethal. Even when developmentally perfect, organisms eventually crash (or in other words, die) within a finite time. Nature does not produce perfection; it produces systems that work long enough to do something useful before they crash. Which is what, de facto, designed software does.
Humans can write software that conforms exactly to its specification. It is not easy and it is not cheap, which is why it is often not done. But it can be done. A major software manufacturer recently stopped having two teams implement the same specification – to create systems with different bugs that would not crash at the same time – in favour of having twice as many eyes scrutinising the specification for errors.
As with human-written software, evolutionary software cannot develop defences against problems to which it is never exposed. The virtue of evolutionary programming is that it puts the major emphasis on testing, traditionally the poor relation of programming. In this, it is to be admired. However, modern software development techniques such as extreme programming also emphasise testing early and often, and to good effect. The problem is not actually technical, but rather one of management and marketing.
Newbury, Berkshire, UK
