We are all computers May 27, 2010Posted by Ezra Resnick in Computer science, Evolution.
A computer can be defined as a machine that receives input, manipulates data based on a set of instructions (the computer program), and produces useful output. The defining feature of modern computers – which distinguishes them from all other machines – is their programmable nature. A calculator is a machine for doing arithmetic; an alarm clock is a machine for keeping time; a television is a machine for displaying moving images. A computer can do all of these things (depending on the program it is running), and yet it is not a machine for any of those things specifically. What, then, is a computer for? A computer is a machine for following instructions. It does whatever it is asked to do, provided the request is presented in an appropriate language. This provides enormous flexibility and versatility: a computer can be used to solve problems that had not even been thought of at the time the computer was built. All computers, from cell phones to supercomputers, are equivalent in the sense that in principle they are all capable of computing anything that can be computed.
We are used to thinking of computers as electronic devices, made of transistors, cables, batteries, etc., but they don’t have to be. There are other ways of storing and manipulating information. Optical computing, for instance, seeks to perform digital calculations using light rather than electric currents. Computers could be built from organic components as well. Can we recognize any computers in nature?
An obvious example is the brain. Brains are equivalent to the on-board computers in guided missiles or airplanes. An organism’s brain processes input from the world (sights, sounds, smells, etc.) and triggers appropriate action to facilitate finding food, mating, evading predators, and so on. Simpler brains may be limited to following explicit, hard-wired instructions, such as “if it’s smaller than you, eat it; if it’s bigger than you, run away.” More complex brains can benefit from the flexibility of being able to think ahead and consider the consequences of various courses of action, like a chess-playing program.
If the purpose of a brain is to serve as the on-board computer guiding an organism’s behavior, what is the purpose of the organism itself? What is an elephant for? What is a flower for? Some people might intuitively answer that the purpose of flowers is to make the world pretty to our eyes, or that wild animals are here for us to hunt, but we know now that this human-centered view of the world is wrong. By the way, we should note that the question “what is X for” is not always appropriate, since some things are not for anything. What are rocks for? What is Mount Everest for? Some things simply arise automatically as a consequence of natural forces and don’t have a specific purpose. Living organisms, however, seem to be different from rocks and mountains in that they are complex assemblies of many intricate parts which appear to be designed to be good at specific tasks, just like machines. There is indeed a sense in which it is true to say that birds were designed to be good at flying and fish were designed to be good at swimming, but not in the sense that there was ever a conscious entity who did the designing. Amazingly, all the design work behind living creatures was done by the mindless, automatic process of evolution by natural selection. We’ll get back to that.
Both birds and airplanes are good at flying, but there is a crucial difference. Flying is the whole point of an airplane: an airplane is a machine for flying. But for a bird, flying is just the means to an end. What is the ultimate purpose that all living things were “designed” to fulfill? The answer is: making copies of themselves. A flower is a machine for making more flowers. An elephant is a machine for making more elephants. To be more precise, an elephant is a machine for making copies of elephant genes, that is, copies of the instructions for making more elephants. The elephant (redwood, human) itself is simply the means to this end.
So how does a machine-for-making-more-elephants actually function? Who is carrying out the instructions and doing the physical work? We are now in a position to recognize another biological computer. The instructions for building an elephant (spider, eagle) are encoded in the digital language of DNA, and each of our cells is a machine which knows how to read and execute those instructions.
Richard Dawkins, whose book Climbing Mount Improbable inspired this post, often points out the illuminating analogy between biological viruses and computer viruses. A computer virus is a program that does nothing useful – it merely instructs the computer to duplicate it. Likewise, a biological virus is a strand of DNA encoding the instruction: “Duplicate me.” A computer processor cannot tell whether it is executing a useful program or a virus, and cells cannot tell whether they are copying their own DNA or virus DNA. Viruses take advantage of existing instruction-following and copying machinery, whether in electronic computers or biological cells. They spread because they can.
So our cells follow DNA instructions just like computers executing programs, but wait a minute: modern computers and the software they run were designed and produced by humans. How do our cells know how to perform such complex tasks? And where did the detailed instructions for building elephants and wasps and humans come from? There is another level of computation here, a massively parallel computation distributed in space and time, with information stored in the DNA of generations of living organisms. A spider’s web, an eagle’s wing, a human eye – these impressive feats of engineering are the result of innumerable cost/benefit calculations performed unconsciously over millennia by the computer of natural selection.
All this time we thought that we invented computers, when actually computers invented us. We are all made of trillions of computers, each dutifully following the instructions that keep us going. We are also part of the grand computational process that shaped those very instructions, one tiny step at a time, to be better and better at doing what they do. We are lucky to be able to appreciate what is going on inside us and around us, and to recognize our place in the unbroken chain of information and computation that links us with all life on Earth.