| November 24, 1997 |
| We live in a time of
information technology revolution. You are presently
participating in one of the most significant developments
of information technology ever. New technological tools
are allowing us to deal with so many different aspects of
our lives as bits of information. In many ways, we,
ourselves, are just information. Postulate #1: DNA is a third-generation language ... or is it a fourth-generation language? In the parlance of software development, a language such as C is considered a third-generation language. The code must pass through two additional generations before the computer will execute it. The first-generation language is machine code -- 0011010001. The second-generation language is assembly code -- MOV D1,0xDEADBEEF. The third generation is the C code -- double d = 3735928559. In the process of protein synthesis, DNA is transcribed to RNA, and RNA is translated into a sequence of amino acids. The amino acids are the first generation. The RNA is the second generation, and the DNA is the third generation. The analogy is pretty good. DNA contains coding and non-coding regions called exons and introns. C code contains coding and non-coding regions called code and comments. It's interesting that molecular biologists are spending so much time trying to decipher the exons. When trying to decipher some new C code, most programmers will spend a good deal of their time focussing on the comments. Here's a challenge for all you creationists out there: Unlock the secret language of the introns, and find me a comment near the genes encoding the enzymes responsible for the production of histamines that reads: "HACK ALERT: These histamine molecules could cause a recursive mucus loop. -- GOD 0/0/0." It's still not clear how these sequences of amino acids are folded in their appropriate three-dimensional structure. In a sense, this folding process is a language of its own, possibly pushing DNA up to the fourth-generation level. Perhaps our creator was a Visual Basic programmer. Maybe that's why we consume all our resources and move so slowly. All life forms are programs in execution, but there are no programmers around to fix bugs. Evolution serves as quality assurance. It's hard to imagine how this situation works. It's as if a software company fired all its programmers after the first version. For each subsequent version, the release or build managers flip some bits or cut and paste and some code, pretty much at random. Each release manager flips different bits and pastes different code. As the updated versions find their way into customers' hands, those receiving positive responses will continue to sell, and those receiving bad responses will be dropped very quickly. Or maybe this situation is the only one that makes sense. As software evolves, it tends to become more complex. At some point, it will become so complex that no one will be able to understand it any more. Programmers will not be able to fix bugs without introducing lots of new ones. The complexity or degree of adaptation of life today has accumulated over millions of years. These days, we simply can't find good enough engineers to fix our bugs. Oh well, if we can't really fix any of our problems, maybe we should just rewrite in Java. |
* * * |