DNA and Assembly Language
Many people think it's amazing or surprising that the DNA between any two people is 99.9% the same. In fact, 50% of a human DNA is the same as a banana's. I think this totally makes sense, and I was surprised that we're even that different from a banana. All living organisms are composed of cells. And cells are composed of the same basic elements (there is some variety but it's basically the same). And the elements in cells are composed of the same organic molecules. Much of the machinery at each of these levels is basically the same across all organisms. For example, cell replicating, cell membranes, etc generally work the same for everyone. So that's what we have in common with an algae.
I think this is a little like comparing the differences between Microsoft Office and vi and expecting the pattern in their assembly language instructions to be very different. Office is a lot bigger and more complicated than vi. But at the end of the day, all programs have the same general structure in machine instructions. Data is loaded and stored, values in the registers change, basic logic and arithmetic operations are performed, and the program counter is manipulated in different ways to simulate function calls, recursion, or exception handling. This pattern is the same for all programs. At the end of the day, the same CPU can execute all programs. And the CPU only understands opcodes and operands. So it's not surprising that the patterns must be the same.
Based on the analogy, it's the same for living organisms. The actual organism is analogous to the software. The DNA is analogous to the assembly language instructions. Protein is analogous to transistors. And the biochemistry between the organic molecules is analogous to the physics that control the components of a CPU. Complexities in one abstraction layer are isolated from the other layers.
Instead of comparing to software, another analogy is that the brick laying patterns for a small house and a castle are basically the same. But I like the other analogy more.
I think this is a little like comparing the differences between Microsoft Office and vi and expecting the pattern in their assembly language instructions to be very different. Office is a lot bigger and more complicated than vi. But at the end of the day, all programs have the same general structure in machine instructions. Data is loaded and stored, values in the registers change, basic logic and arithmetic operations are performed, and the program counter is manipulated in different ways to simulate function calls, recursion, or exception handling. This pattern is the same for all programs. At the end of the day, the same CPU can execute all programs. And the CPU only understands opcodes and operands. So it's not surprising that the patterns must be the same.
Based on the analogy, it's the same for living organisms. The actual organism is analogous to the software. The DNA is analogous to the assembly language instructions. Protein is analogous to transistors. And the biochemistry between the organic molecules is analogous to the physics that control the components of a CPU. Complexities in one abstraction layer are isolated from the other layers.
Instead of comparing to software, another analogy is that the brick laying patterns for a small house and a castle are basically the same. But I like the other analogy more.