Reverse Engineering Life
This XKCD post (mentioned [previously]) really got me thinking too much about the analogy between genetic code and computer code.
Matthew Cobb adds more nuance (h/t Michael C.)
DNA: optimised source code? • 2015 Nov 18 • Matthew Cobb • Why Evolution Is True
Now that the Central Dogma is recognized to be more flexible, it seems clear DNA isn’t really source code. It’s more like a serialized object. While DNA can have other functions other than data storage and transmission1,2, in general you have to process and deserialize it to generate executable code. The language DNA, RNA, and protein are written in is (bio)chemistry and the architecture it’s running on is physics.3
So, basically you have three types of byte code notation4,5,6 that are related but not identical and all capable of interacting directly as well as being directly executed with no sandboxing whatsoever, although one form is typically used for data storage, one for message passing, and one for actual program execution. The message passing notation was originally used for all three purposes7,8,9, but unsurprisingly it was forked and partly deprecated, although bits of legacy code still rely on its versatility.10
Molecular and Cell Biology is basically an attempt to reverse engineer a 4-billion year old OS and architecture by looking only at console messages and error logs.
DNA sequencing finally gave us the ability to read the file system directly but it’s still a long hard slog to figure out the higher level structures/motifs/moieties.11
And even though we now have file system access, there isn’t any source code or even header files. We’re basically just looking at the raw binary (or quaternary?) code.