Many of the advocates of neo-Darwinism argue that abilities of evolution is obvious. The idea is that, given variability in a population, selection and/or environmental change will cause a population to move forward in fitness. Basically, the formula is variability + overproduction + selection = evolution. The problem is that the equation hinges on “variability” and its abilities to create the kinds of variations the Darwinists need.
The problem stems from the “variability” portion. What kinds of variability can happen? Let’s say that the variability is all negative? What happens to evolution then? Let’s say the variability is cyclical rather than directional. What happens to evolution then? The problem that most neo-Darwinists don’t realize is that they have assumed that “variability” will always lend them the type of variability that they want.
The problem is that the production of variability is a harder problem than most Darwinists presume. Because variability is seen in nature, and because it is assumed (usually silently) that these variations are haphazard, it follows for the Darwinist that variability must be easy to create. However, most people from the engineering professions know that this is not the case (hence the Salem Hypothesis). Because biologists work with nature, it is assumed that natural variations come easy. But engineers will tell you that variability, especially mix-and-match variability (which you get with sexual organisms) is actually a difficult achievement.
I once saw a Dilbert cartoon where a salesman was trying to sell a computer that was so easy to use, an idiot could use it. It didn’t have a keyboard or a mouse, it just had one button. Of course, the reason that is funny is because there is absolutely nothing useful that a stupid person could do with a one button machine (a complex system like Morse Code could be established, but then it is no longer simple — you have simply switched one form of complexity for another). With a one button machine, the only states you have are “pushed” and “not pushed”. If the machine is truly idiot-proof, then that means that all possible button states are accounted for. You essentially have a computer that can do two things — it can do one thing when the button is down, and something else when the button is up.
In fact, you can have a computer with a multitude of states and combination of states that is still idiot-proof. You just have to code for all of the possible combinations, and make sure that each possible state makes sense. Such an arrangement is good if you only have a limitted number of tasks you wish to accomplish, and perhaps may need a few independent arrangements of these tasks. You just have to flip the right switches and everything works out fine. In fact, even if you switch the wrong switches you will get a sensible result, even if it isn’t what you were trying to do. The reason for this is that the possible states and their interactions are preprogrammed.
But the problem is that in order to be foolproof, it is not very expressive – the system is limited in its variability to pre-coded arrangements. Any arrangement of switches is coherent, but most of the interesting parts are hard-coded, not in the arrangement of switches.
Now let’s consider a system which is slightly more programmable. Let’s say that you had a fixed set of existing tasks which could be rearranged, recombined, and repeated in fixed amounts. Now you are starting to have a semi-expressive system. This system is much more flexible than previous systems, but it is also much more open to programming errors. However, it is not yet fully programmable.
It is not until we add open-ended repetition constructs that we get a system that is fully programmable. But, with open-ended repetition, it is much more likely that small changes will result in catastrophic errors. It will also mean that rather than workable programs being very near to each other in solution space, they will instead be far apart. In the previous types of systems we conceived of, since the machine was handling all of the complex interactions, nearly every arrangement had some usable function. But at this point, most combinations will actually be unworkable, and there will be considerable distance between workable solutions. Multiple parts of the program will have to be changed simultaneously in order to jump from one workable solution to the next.
So this is why (in fairly simplistic terms) the production of structures is a bigger problem than most neo-Darwinists realize. If we want the structures to be produceable, then we have to assume that the system is parameterized (as in our first few example systems), and not open-ended (as in our last example system). However, this would mean that the majority of the interesting parts of organisms are actually pre-coded, as well as the lines for which they are variable (the number of lines of variability is probably enormous, but yet it is not open-ended – this would mean that evolution does not increase complexity). Open-ended evolution, however, cannot happen because it requires as its substrate a type of system that is too chaotic to be manipulated ad-hoc, but instead requires coordination of parts to move between functional areas.
The reason why engineers are more prone to recognize this is because engineers have to develop systems repeatedly, and know how much trouble it is to get parts to play well together. Adjusting the system requires adjusting multiple parts simultaneously, which can’t be accomplished without a guiding information system (which, in ID circles, is termed front-loaded evolution – which requires the action of an intelligent agent at the beginning) or the creativity and intervention of an intelligent agent at each step.
Most neo-Darwinists incorrectly think that ID’ers don’t understand the process of selection. That is simply not true. The difference is actually that ID’ers properly understand the problem of the generation of variability and the neo-Darwinists just take it as a given. For natural selection to work, each incremental step would need to be selectable. However, if evolution is truly occurring in an open-ended fashion, it would need to navigate a solution space in which most areas of workable solutions are completely surrounded (not just mostly surrounded – completely surrounded) by completely un-selectable space. If variability did happen on a large enough scale to make common ancestry workable (which I don’t think it did), it could only be done by front-loading the information needed for the variability at the beginning.
The problem is the production of variability, and neo-Darwinists have been assuming its veracity for so long that they have forgotten even that they are assuming it.