Industry is constantly searching for technologies to maximize profits and minimize costs. Software industry is no exception (the world software market exceeded $300 billion).
Actually some computers can process quadrillions floating-point operations per second (10^15 flops). It would be technically possible to implement on such computers the paradigm of unguided evolution (random variation + selection) for obtaining new programs by randomly modifying old programs. So, why software houses pay legions of human programmers to develop ex-novo applications when an automatic process could do the job? They could save truckloads of money by automatizing, at least in large part if not in toto, the software development work flow.
To have an idea, let’s perform two simplified calculations about the speed of biological evolution (BES) vs. the speed of computer aided evolution (CAES).
Biological evolution speed
Consider an initial population of 10^9 bacteria with generation/ reproduction time = 40 minutes, and mutation rate = 0.003 mutations per genome per generation. We have an initial biological evolution speed BES = (0.003 x 10^9) / (40 x 60) = 1250 mutations/sec.
Computer aided evolution speed
Consider a single 10^15 flops computer and suppose, for the sake of argument, that a program “mutation” needs an equivalent of 1000 floating-point operations. We get a computer aided evolution speed (CAES) = 10^12 mutations / sec.
Since, according to Darwin, unguided biological evolution was able to spontaneously produce all 500 million species on earth (from bacteria to man) in 3 billion years (biological evolution time = BET), computer aided evolution could automatically produce software containing an equivalent overall amount of functional complex specified information in what we call “computer aided evolution time” (CAET). In other words, we state that the product of “speed x time” is equal for biological evolution and for computer evolution:
CAET x CAES = BET x BES
CAET is then = (BET x BES) / CAES
CAET = (3×10^9 x 1250) / 10^12 = 3.75 years
Evolution applied to software programming would produce software equivalent to the organizational information that present and past organisms contain in less than 4 years. Then, again, why software houses don’t save billion dollars in employers by applying Darwinian evolution to the software creation?
My short answer: because Darwinian evolution works exactly zero, when the goal is to create systems. It is fully incapable to create the least system in principle. If it were capable to do that just a little, software producers would use it. To put it differently, if Charles Darwin was right Bill Gates would be far richer than he is…
I know in advance the objection that evolutionists could rise. They always deny all: “it is false that software industry doesn’t use evolution; in fact there are evolutionary algorithms”, or something like that.
My counter-objection: evolutionary algorithms (EAs) are programs designed to converge by iteration to a particular solution for a very specific problem. To recall EAs to refute my affirmation that informatics industry doesn’t use evolution to create software is nonsense like to say that, for example, in mathematics, the iterative methods to find the approximate root of an equation (like Newton’s method) can create the entire mathematics. In other words, EAs are designed routines that can be useful in certain cases to solve very small sub problems. I wrote “in certain cases” because in some other cases EAs fail and fail spectacularly, exactly as it happens – in certain conditions – for iterative methods in math. The bottom line is that EAs are toys that can do nothing to solve the big picture, the total creation of an entire software project from zero. Here the analogy is strict: EAs are unable to create new software applications, like Darwinian evolution is unable to create new organisms. And software producers do know that.