Friday, January 25, 2008

When I look up at the sky, all I see is 0s and 1s

Andrew Bird sings in his song Masterfade, "When you look up at the sky, all you see are zeros, all you see are zeros, and ones. My previous post reminded me of this line, as well as a number of other things. As a computer scientist (code monkey, really), I am very capable of seeing things as zeros and ones. To a lay person, the idea that complex structure is dictated by DNA is difficult to grasp, but not to someone who majored in computer science.

Every piece of software is composed entirely of zeros and ones. Every message you send over the internet, every pixel displayed on your monitor. Starting with and gates and or gates (or nand gates), you can design a processor which works entirely on zeros and ones, something you do in freshmen or sophomore year of college. You then write computer programs in hexadecimal, which is a condensed representation of binary. You have larger structure, assembly, to make it easier to use. If you considered DNA to be the zeros and ones, take the proteins to be assembly code. You can then write a compiler to write more complicated programs in a simple format. The C compiler takes C code and converts it to assembly. You can look at this as kind of like building organs.

Obviously this isn't a perfect analogy, but it is one which makes the whole process seem a lot simpler. If we could create this complex structure in a matter of less than a century, imagine what could happen over a billion years. One more parallel I'll draw is this. Regardless of what you have, man, fish, insect, fungus, bacteria, you have the same basic DNA. The same is true of Java, C++, python, perl. Despite the vast differences, the underlying structure is completely the same.

No comments: