Source: /cirosantilli/molecular-biology-feels-like-systems-programming

= Molecular biology feels like systems programming
{wiki}

Whenever <Ciro Santilli> learns about molecular biology, he can't help but to feel that it feels like programming, and notably systems programming and computer hardware design.

In some sense, the comparison is obvious: <DNA> is clearly a programmable medium like any <assembly language>, but still, systems programming did give Ciro some further feelings.

* The most important analogy perhaps is observability, or more precisely the lack of it. For the computer, this is described at: <The lower level you go into a computer, the harder it is to observe things>.

  And then, when Ciro started learning a bit about biology techniques, he started to feel the exact same thing.

  For example when he played with <E. Coli Whole Cell Model by Covert Lab>, the main thing Ciro felt was: it is going to be hard to verify any of this data, because it is hard/impossible to know the concentration of each element in a cell as a function of time.

  More generally of course, this is exactly why making any biology discovery is so hard: we can't easily see what's going on inside the cell, and have to resort to indirect ways of doing so..

  This exact idea was highlighted by <I should have loved biology by James Somers>:
  \Q[For a computer scientist, a biologist's methods can seem insane; the trouble comes from the fact that cells are too small, too numerous, too complex to analyze the way a programmer would, say in a <step debugger>[step-by-step debugger].]

  And then just like in software, some of the methods biologists use to overcome the lack of visibility have direct software analogues:
  * add <instrumentation (software)> to cells, e.g. <GFP tagging> comes to mind
  * <emulation>, e.g. <E. Coli Whole Cell Model by Covert Lab>
* The boot process is another one. E.g. in <x86> the way that you start in 16-bit mode, largely compatible into the 70's, then move to 32-bit and finally 64, does feel a lot the way a earlier stages of embryo development looks more and more like more ancient animals.

Ciro likes to think that maybe that is why a hardcore <systems programmer> like <Bert Hubert> got into molecular biology.

Some other people who mention similar things:
* <I should have loved biology by James Somers> highlights the <How computers work?>[computer abstraction layer] analogy between the two:
  \Q[Everywhere you look - the <compiler>, the shell, the <CPU>, the DOM - is an abstraction hiding lifetimes of work.]