Computer programming and DNA coding share two patterns relating to diversity. I take two examples from DNA These are both examples of the need for two biological facilities to be coded in DNA, which are mostly alike, yet have necessary differences. There are two ways to exploit commonality and yet provide diversity. DNA uses these different patterns in the two situations mentioned above. Computer programmers exploit the same two patterns, and often agonize over which is better.

I take it from popular articles that I cannot now find, that DNA codes for fingers and toes with common DNA and accommodates the necessary differences by selectively expressing certain proteins contingent on chemical signals that differ between the environments of toes and fingers during morphogenesis.

The solution for hemoglobin, by contrast, was to copy the DNA some few hundred million years ago, and let the two copies diverge with little or no subsequent evolutionary improvements being common to both. The software industry calls this forking. If I recall correctly there are about 5 identifiable copies of the hemoglobin DNA only two of which remain functional. Duplicating genes is normally harmful and the greater symmetry is how makes it so uncommon.

Computer programmers will recognize the respective advantages of these two coding patterns. With one copy