This is a fun parallel, but I feel like it fails to go the other direction.
How is DNA different from programming?
This is important to understand because those differences are the foundation of our intuition about how DNA operates. We can't let ourselves fall into the misunderstanding that cells are like computers. In particular, the ideas of random mutation and populations are inherently different from software.
Imagine a piece of code whose bits slowly decay over time. Where functions compete with functions in every other program on the filesystem to see who is most efficient. Where scripts need to constantly copy themselves to other folders simply to maintain their integrity.
Its this kind of stochastic and unreliable environment that I think a lot of people forget about when talking about DNA. Yes it is a consistent heritable genetic library, but it is also in a constant state of change. Genes are strange little islands in a sea of noise.
Adding to that conceptual challenge is separating in time the various components of the regulation and manipulation in the above analogies. Low-level programmers have an intuition of the 'time-cost' value of various hardware calls - the various caches, RAM, HD, network, etc. and how they can be many orders of magnitudes different even if the API considers them identically.
Life goes the other way and requires you not only to integrate over nanoseconds, but also over petaseconds. And at most scales in between there are mechanisms of regulation and operation.
> Imagine... Where functions compete with functions in every other program on the filesystem to see who is most efficient. Where scripts need to constantly copy themselves to other folders simply to maintain their integrity.
How is DNA different from programming?
This is important to understand because those differences are the foundation of our intuition about how DNA operates. We can't let ourselves fall into the misunderstanding that cells are like computers. In particular, the ideas of random mutation and populations are inherently different from software.
Imagine a piece of code whose bits slowly decay over time. Where functions compete with functions in every other program on the filesystem to see who is most efficient. Where scripts need to constantly copy themselves to other folders simply to maintain their integrity.
Its this kind of stochastic and unreliable environment that I think a lot of people forget about when talking about DNA. Yes it is a consistent heritable genetic library, but it is also in a constant state of change. Genes are strange little islands in a sea of noise.