Thursday, July 09, 2009

Software and Genetics: A Comparative Analysis


As I've been reading about and discussing evolution over the past year or so, I've noticed a disconnect in people's minds concerning genetic variation and origins. People seem to gleefully state that variation in a species over time somehow shows that evolution is happening, and thus, the Theory of Evolution must be true!

But there's just one problem. The Theory of Evolution does not simply state that lifeforms change over time. It states that these changes, going backward in time, account for the origins of the species. As I count it, however, these folks have not thought through things very thoroughly.

I'd like to make a comparison between two things. The one must be genetics, since that's what contains the data being passed onto the offspring of a specimen. The other is computer software. At first, this might seem like too simplistic a comparison, but I think you'll see where I'm going with it if you'll persevere.

The genome of any species is merely an extremely long set of repeating chemical sequences known as base pairs. These base pairs are arranged in a certain order that is meaningful to some interpretive mechanism that uses these base pairs to know how to build all the building blocks of a particular cell, and indeed, the entire organism. Even though each cell has only one "type" (with the obvious exception of stem cells), every type of cell has all the information contained in it to rebuild the entire organism if called upon (which it's not).

Now, these base pairs aren't consumed while building the pieces of the cell such as the chloroplasts or the golgi vesicles. Rather, they are interpreted the way a builder uses a blueprint. After the vascuole of a new cell is constructed using the DNA, the DNA is still 100% intact, having all the base pairs in place and in the same sequence.

The many, intricate parts of the cell are described by DNA in a method known to geneticists and bioinformaticists as "coding". They use this term because the way DNA codes for the body is very similar to the way the binary numbering system, the building blocks of all computer programs, codes for software. The user of the software thinks in terms of windows, buttons, pictures, menu items, etc. The organism thinks in terms of fingers, toes, ears and eyes. But beneath each set of abstractions (windows and toes), lies a language that describes to an interpreter how to build them. The interpreter for computer software is called the CPU or Central Processing Unit, manufactured by Motorola, Intel or AMD. The interpreters for DNA coding are several fold. Most internal components of the cell (15 or so categories) in some way interpret either the DNA or the biproducts of the DNA produced by other interpreters.

"Coding" is a good word for the information contained in DNA, because just like the 1's and o's of computer code are not windows, buttons, images, and browsers, so the A, C, T and G of the human genome are not fingers, eye balls, lungs, or brains. But where the computer code needs and interpreter and a hundres or so external hardware devices to manifest anything meaningful, the DNA is interpreted, literaly, by things produced by...DNA! So DNA is the code, the interpreter, the manufacturer of the interpreter, the manufacturer of the whole organism and the source of new DNA!

Software development is a very involved and deliberate process that takes years to master, is fraught with pitfalls and is very much a trial and error process. It can take years to develop a complex software system into something that is featured, performant and robust enough to deploy into a production environment.

The comparison between DNA and Software breaks down at some point. The place where DNA and software breaks down is that the software running on the CPU does not describe how to make, maintain, repair and alter the CPU. That is a whole different level of intelligence which modern technology has not been able to broach.

Science fiction often imagines a world where thinking machines improve themselves and "evolve" independently of their creators. They suppose that once a machine reaches a certain level of complexity, it will be able to continue its upward progress independent of its designers.

While that assertion is yet to be proven, it's interesting that they assume that a very high degree of complexity is required before a machine is able to change independent of its original programming. And they are correct. An even higher degree of complexity would be required for a machine to reproduce itself and upload a copy of its own software to the new unit. Interestingly, if you copied computer software with random copy errors, it would cease to function. DNA doesn't. It manages to cope in nearly all cases. Only when the copy errors are large and dangerous to the offspring does it react defensively and cause the offspring to be sterile, preserving life, but ensuring these errors don't further promulgate into the larger populace. This tendency towards defensive sterilization is also a design feature, not intended by the specimen, but engineered into it's very fiber by its designer.

To pause a moment, consider that when arguing that variation in a modern form shows the origin of that form, one must assume that the unit of life was already at a sufficiently complex state so as to begin the upward progression to its current form. Without that assumption, you have no explanation for how that cycle of creation, variation, reproduction got started. It's like saying, "If I was really smart, I wouldn't have to go to school!" You have to assume the first part for the second part to be true. But the debate on origins is not a discussion of how mankind lost control of some futuristic robotic monster which reproduced and took over the world (i.e. how environmentalist talk of humans), it's a question of how the futuristic robotic monster came together in the first place without the aid of a designer?! How did it achieve the level of complexity and sophistication where it had the ability to decide on its own, envision a more capable self than its current form and design a sequence of events that would lead to that improved state.

When one begins to understand the unfathomable complexity of the inter workings of even a single cell, then the idea of it coming together without an intelligent designer is shown to be a simple impossibility. Bringing a machine (organism) from crude materials (iron, silicon, water, carbon, etc) to the level of being able to recognize non-toxic foods, adjust its behavior to match its environment, consume matter to produce energy, repair itself, reproduce itself and improve in reproduction is ALL of the problem of explaining origins. Once it has reached that level of complexity, variation is a matter of carrying out its original design, whether in direct obedience to its programming or as a byproduct of unintended side affects.

With millions of engineers adding their lives, experience and expertise to the problem of making autonomous machines, we are just now beginning to produce what is called "semi-autonomous" machines which can make simple decisions of navigation with only occasional guidance from humans, but without the ability to self-repair, reproduce or self-improve. We are not even close to this level of sophistication, and the self-improve part is only theoretical. It is not certain that it is even possible. And sophistication alone does not automatically bequeath the abilities listed above. Those machines that have these semi-autonomous characteristics were designed with those abilities in mind. It has never happened accidentally. Most sophisticated machines and systems have none of these traits.

My whole point is this: Many people accept and offer observable variations in species as proof of origins. This is a false assumption. Variation is a deliberate design feature that is currently beyond the technology of or even the dreams of modern scientists and engineers. To think that any entity, mechanical or biological, could achieve this level of targeted sophistication is far beyond faith, its belief in the mathematically impossible. Those that have this faith despite this fact either rebelliously wish to orphan themselves from their Designer or haven't thought things through very well.