One thing I've learned studying biology is that, while there are many decent anologies to computers, biology is really operating on a very different paradigm to the sort of programming most of us are used to.
Biology is based on "primitives" like feedback loops. For example, there are many cases where a protein that gets produced at the end of a signaling chain then goes on to stop or otherwise downregulate its own production (a negative feedback loop, positive feedback loops also exist).
Another fact that biology relies on is that increasing concentration of some molecule is essentially equivalent to increasing probability of some reaction occuring. In a negative feedback loop, for example, as the concentration of the end product increases, the probability of the reaction that that product takes part in that inhibits its own production increases. Systems then evolve such that the maximum amount of inhibition is most likely to occur when the end product is at just the right concentration.
I've often thought about making a programming language that simulates this paradigm to some extent; a probabilistic programming language where logic was implemented as feedback loops.
Biology is based on "primitives" like feedback loops. For example, there are many cases where a protein that gets produced at the end of a signaling chain then goes on to stop or otherwise downregulate its own production (a negative feedback loop, positive feedback loops also exist).
Another fact that biology relies on is that increasing concentration of some molecule is essentially equivalent to increasing probability of some reaction occuring. In a negative feedback loop, for example, as the concentration of the end product increases, the probability of the reaction that that product takes part in that inhibits its own production increases. Systems then evolve such that the maximum amount of inhibition is most likely to occur when the end product is at just the right concentration.
I've often thought about making a programming language that simulates this paradigm to some extent; a probabilistic programming language where logic was implemented as feedback loops.