Friday, June 27, 2008

Self-replication

If I had never learned about DNA and programming languages, and you asked me to build a machine that can build a copy of itself, I would try to build a general-purpose machine that:

1. Inspects any given machine;
2. Figures out how to build that machine; and
3. Builds the machine.

Then I would set the machine on itself.

But, knowing about DNA and programming languages, I would instead do the following:

1. Design a language that can describe how to build any machine;
2. Build a machine that can understand the language and successfully carry out orders; and
3. Translate instructions for building that machine into the language.

Then I would give the machine the instructions for its own making.

The second strategy is easier than the first because designing languages and translating stuff is something you can do without even getting out of bed; whereas designing a machine that can figure out how to build anything it sees in a systematic way seems impossibly hard. And indeed, the second strategy is basically the one that living things use.

In the past, some people believed that animals contained within their bodies the tiny, undeveloped bodies of all their progeny. It was easier to believe this than to believe that animals are capable of building other animals from scratch. The only problem is that each animal would have to contain a practically infinite number of copies of itself -- one for each of its descendants.

We now know that each animal contains a copy of itself -- not a tiny undeveloped fetus, but in the form of information. When animals appear to make physical copies of themselves, they are really just translating this informational homunculus into a physical being. What's being copied is the information; it's easy to copy information.