From 2006 through 2017, Dutch entrepreneur and software developer Bert Hubert contributed from time to time to a web page where he listed many of the ways the workings of DNA can be likened to coding decisions by programmers. Some of his thoughts:
The human genome is about 3 gigabases long, which boils down to 750 megabytes. Depressingly enough, this is only 2.8 Mozilla browsers.
DNA is not like C source but more like byte-compiled code for a virtual machine called ‘the nucleus’. It is very doubtful that there is a source to this byte compilation – what you see is all you get.
It is easier to imagine a potential source with no code than it is to imagine a code with no source but we are offered no further explanation. However, the pace picks up when we get to epigenetics, the changes we acquire during our lifetimes that are passed on through several generations without altering our DNA:
Although the actual relevant changes in the DNA of an organism rarely occur within a generation, substantial tinkering goes on by activating or deactivating parts of our genome, without altering the actual code.
This can be compared to the Linux kernel, which at boot time discovers what CPU it is running on, and actually disables parts of its binary code in case (for example) it is running on a single CPU system.
He also sees a computer analogy to “junk DNA” (non-coding DNA which was, at one time, thought to be accumulated garbage from the meanderings of evolution):
There are lots of possible explanations for the massive amount of non-coding DNA – one of the most appealing (to a coder) has to do with ‘folding propensity’. DNA needs to be stored in a highly coiled form, but not all DNA codes lend themselves well to this.
This may remind you of RLL or MFM coding. On a hard disk, a bit is encoded by a polarity transition or the lack thereof. A naive encoding would encode a 0 as ‘no transition’ and 1 as ‘a transition’…
The thing to note is that sometimes, transitions need to be inserted to make sure that the data can be stored reliably. Introns may do much the same thing by making sure that the resulting code can be coiled properly.
Hubert acknowledges that the whole concept of “junk DNA,” is a “minefield.” Indeed, in 2014, “politeness” became a casualty of the dispute. In 2013, he added to the page, “It is very clear that ‘junk dna’ is a misnommer, but as to its immediate function, there is no consensus.” Since then, non-coding DNA has been found to serve many functions, so he was certainly thinking in a fruitful direction.
He compares the body’s fight against cancer to computer security, in terms of inevitable trade-offs:
A cell cannot clone unless very stringent conditions are met – a ‘secure by default’ configuration. It is only when these safeguards fail that tumors can grow. Like with computer security, it is hard to strike a balance between security (‘no cells can divide’) and usability.
Compare this to the well known Halting Problem, first described by the founder of Computer Science, Alan Turing. Perhaps it is as impossible to predict if a program will ever finish as it is to create a functional genome that cannot get cancer? Bert Hubert, “DNA seen through the eyes of a coder,” Amazing DNA
I of course do not say there is a CPU in there faithfully executing for-loops! I do say it has all the elements we use in programming to do things, however.Bert Hubert, “DNA: The Code of Life” at Medium
Well now, that is odd. DNA is a computed system with no CPU and no programmer?
Hubert is a fan of Richard Dawkins, particularly of The Selfish Gene (1976), of which he says, “In this book, Dawkins explains evolution from a ‘gene’ standpoint rather then from a ‘species’ standpoint. It turns out to make a lot more sense this way and helps understand how genes power you, and not the other way around. It is not that genes help you do what you want to do, you ARE the genes.”
He also recommends The Blind Watchmaker: Why the Evidence of Evolution Reveals a Universe without Design. (1986). He apparently believes, with Dawkins, that nature can appear to act intelligently even though there is no underlying intelligence. Intelligence, we are to believe, comes into existence for free and its products are programmed by nothing but laws of nature exerted on randomness.
We don’t see anything like this in computers, so why should we believe it of nature? It could be believed only as an act of faith, against the evidence.
Hubert is much more convincing, as well as entertaining and enlightening when he is describing what he actually knows:
Hat tip: Eric Holloway
See also: Do we just imagine design in nature? (Michael Egnor)