As a professional (wet) biochemist and also a coder, my personal feeling is that biology is much, much shallower. However, the knowledge required is broader but incomplete. If you're trying to, say optimize an enzyme, beyond molecular biology, you'd do well to incorporate knowledge from biochemistry (is this an active site amino acid? Maybe I shouldn't touch it. What sort of yield changes can I expect if this enzyme catalyzes the rate-determining step vs. not), cell biology (will adding this amino acid sequence send it to the wrong compartment?), biophysics (will changing this residue mess up the protein fold?), electrochemistry (is the electrical potential of this iron-sulfur cluster consistent with the process I want?) etc etc.
A lot of 'biohackers' are script kiddies that just ctrl-c/ctrl-v gene sequences and hope that it works. That's why you see a lot of gene synthesis companies claim a offer of "codon optimizing" a gene. It's something that sounds hard, sounds critical, and gets something done. The rest of it is much, much harder, and requires actual thought.
DNA is like a programming language for a biological computer, a living cell. However, we don't know nearly everything there is to know about a living cell. We can't predict its mechanisms. There is no debugger. The compiler didn't come with an instruction manual. The code bootstraps itself into its own machine and runs in an environment we can't predict. And the syntax has been obfuscated and optimized by a genetic algorithm that's been running in parallel on quintillions of cores for a billion years.
Because the code executes on an unknown machine in an unpredictable physical environment, many features we might expect to see in a programming language are missing. This might be what he meant by "shallow".
And, just to finish off, the machine is stochastically nondeterministic.
Without knowing how much more there is to know about biology, how can we expect to see certain features or not? What about tasks that are supremely efficient in biology but resource intensive "in silico"? I'm having a hard time fathoming biology as shallow in any way. The fact that it's bootstrapped and live, that you don't get to restart the computer or cut the flow of information makes it all the less shallow to me, unless I'm misunderstanding how that word was used.
And this is a personal feeling, but there is less encapsulation, in biology. There are less 'categories' of things that build on top of each other that you have to learn, but those categories are immense and the knowledge in each of those is incomplete. I suppose you could say the knowledge in some of programming is 'incomplete' by virtue of closed-source encapsulation (trust us, this hardware works like you think it does), but that is somewhat artificial.
This is what I came up with in a hurry for biology:
...elements
atoms
chemicals
nucleic acids
genetic circuitry
peptides
proteins
multiprotein complexes
microcompartments
organelles
cells
clusters of differentiation
organs
organisms
communities...
Care to fill in or improve the list?We have a good grasp on protein folding, but we're not to the point where we can fully synthesize proteins from raw genetic sequences. It would be great if we could get there in our lifetime.
I disagree that you could look at Google's source code and know much about the data center. You would have to have a lot more knowledge about infrastructure which is completely hidden from you. And that's about where we are with proteins. We can figure out the protein, and then try to simulate what it would do, but it's not easy or straight forward.
So your analogy with Google source code would be like, you could simulate what a data center might be like, but you're just guessing and could be way off.
I think the point of the comic is that if you look at Google source code, it's NOT straight forward to understand. You can read it, sure. Anyone can read an operating system worth of assembly, too. But knowing what it does, that's a hard problem (without running it). And that Google's code is only a few years of optimization by people trying to keep the code comprehensible instead of billions of years of optimization with no care for readability or organization.
Second, evolution is susceptible to getting caught in local maxima/minima. Though it's hard to argue that we could engineer ourselves to a higher peak, because we can't really see any other peaks at the moment.
But otherwise we should assume that zeroes in the derivative are uncommon, and thus we're probably not at one.