And a biochemist can learn the basics of Python about as easily as a programmer can learn how to operate basic lab equipment. A biochemist could no more easily add to human knowledge about compiler optimization than a programmer is likely add anything to protein folding. If anything, I would say the opposite of what you claim is true -- programmers are more likely to be interested in leading-edge science as a hobby than the other way around.
And protein folding is much more useful to humanity than compiler optimization. Does anyone even work on compiler optimization anymore?
Protein folding is the biochemical equivalent of string theory. It's fun to talk about, but the practical applications are perpetually 20 years away.
As a computer scientist, I also understood that compiler optimization is a mature field with most of the low-hanging fruit already picked. So, I guess I'm confused and will ask respectfully what problems in compiler optimization make it a thousand times more useful than protein folding and associated medical problems?
Short answer:
Compilers are used for real work, every day. Nobody is using protein structure prediction for anything practical, and they likely won't be for decades more. At this point, it's blue-sky research.
Long answer:
"Immediate application" is one of those bits of academic-speak that really means "is related to", but sounds better to grant review boards. While it's true that protein folding is important (after all, most biological processes are mediated by folded proteins), it's not true that protein structure prediction is important. It would be great if we could predict protein structures accurately, but we can't, and until we can, it's not a practically useful discipline.
Even the very best, crystallographically determined protein structures are barely sufficient to do rational drug design, and predicted structures don't come close to that level of quality. For example: we can sometimes (very rarely) predict very small (<150 residue) protein structures to within 1 angstrom RMSD of their experimentally determined shapes (i.e. >2 angstrom resolution, in the best case). However, the interactions important to drug binding, protein design, etc., don't start until a tenth of that (scales of ~0.1 angstrom).
Throw in the fact that the vast majority of proteins are much larger than 150 angstroms, and that we keep creating cheaper, faster, more automated ways of getting actual experimental information on structure, and the role of protein structure prediction looks increasingly marginalized. It's definitely a cool, fun problem -- just not a very practical one.
For whatever it's worth, my first papers were on applying the state-of-the-art method (you've heard of it...I think you're paraphrasing the lab's PR) for protein structure prediction to genome annotation. To call the approach useful was/is a stretch, and that's for a much easier application than drug design (in fact, we were trying to find a practical application for protein structure prediction, and it was the most likely thing we could think of!)
I wouldn't go quite that far. The research is definitely speculative, but lots of interesting things can come from speculative research. My point is that you don't do research into protein structure prediction with the intent of finding anything useful. It's basic science.
We can (and occasionally do) learn things from computer models of proteins. But the PR in this field has been seriously exaggerating the results of a few of the more prominent researchers. We're a long way from curing diseases or designing drugs with this stuff.
Backchannel me, and I'll be happy to provide you with references to the papers I wrote/helped write. Most of them aren't open access, unfortunately.
"the vast majority of proteins are much larger than 150 residues."
But, you still don't answer the question. What problems in compiler optimization are more important than problems in protein folding? You seems to indicate that protein folding is a basic science problem and not a "practically useful discipline". In fact, your statement "It would be great if we could predict protein structure accurately, but we can't, and until we can, it's not a practically useful discipline" says that the because the problem isn't solved, it's not important, but it will be important when it's solved. So, trying to solve the problem is important, no?
But, you don't say anything about compiler research, and specifically compiler optimization research and development, which you claimed is much more important. What specific areas in compiler optimization (or just in compiler design) are more important than protein structure prediction and modeling?
My first comment was that compiler optimization is about a thousand times more useful than protein folding. I stand by that remark. However, at the beginning of my long answer, I mistakenly wrote that protein structure prediction is not important, when I had meant to write that it is not useful: protein folding is an important biological process, but protein structure prediction is not particularly useful, for the reasons I've mentioned.
It's not my place to say which area of research is more important. That's a subjective question, and the answer depends on your value system, your outlook, and your willingness to wait. Obviously, I think that compiler optimization is more useful, because compilers are actually in use today. In 100 years...who knows?
That said, I think you're laboring under the assumption that compiler optimization is a "mature" field, and that it is "solved" (and therefore less important), whereas protein folding is not "solved" (and therefore more important). The thing is, people have been doing protein folding research for at least fifty years -- it is a very mature field, and the low-hanging fruit has been picked. I think that a new researcher is equally likely to make significant gains in either field, but that the potential for practical impact is still much greater in compiler design.
Compilers are used on a daily basis for real work; protein structure prediction is not. For this reason alone, research into compilers is more useful.
I find myself in my early 30s knowing an awful lot about database applications, but zero domain knowledge. I can go into any field and implement a spec, but I don't understand any of it. Someone wants a graph of this data in their application, I'll give them a great graph, but I look at it and it's just squiggly lines to me. I just feel like I'm missing something.
And if it wasn't for the programmers who get excited about languages and pioneer different uses of them, the biochemist would most likely never even know there is this tool available for them to use.
But if you haven't learned anything new about programming since two days after you started, you're doing it wrong.
Maybe it is only the lack of hands on tutorials that is the problem, though. There are tomes of biochemistry books, but I suspect after reading them you are still not sure what to do.
To do anything interesting self-directed work in the life-sciences, you have to get a PhD and by then, your hands are still tied down to the government because you have to write grants to NIH. Unlike programming, where you hatch a idea, Google sample code-sources, dive into a hackthon and build a prototype after one evening of intense programming. Biochemistry takes months of patience, where you micropipette and shake test-tubes, use the PCR machines. It is hard to deciper the details, you can't step-through the codes of DNA (at least yet) or trace the memory stacks of the cells that you are studying. Coming from a programming background, I was so frustrated in Biochemistry.
Also you should know that the life sciences is slowly being transformed into a information sciences (Bioinformatics). There's a movement in the field called System Biology, that treats the body/a cell/macromolecular as a finite automata, the DNA the source code, and the protein products it makes the output. Sounds familiar?
I think the key in science is to do something that is interesting and pleasurable in both the long and short term. My electrophysiologist friends like it day-to-day, and also like the long term agenda of it. Sounds like you liked the long-term agenda of biochemistry, but not the day-to-day.
Probably similar lessons apply to hacking. For me, I got out of it: I didn't like how I felt after looking at a glowing monitor for 12+ hours a day, week after week. I like programming this intensively when I feel like it, but not when I'm pressured to do so for some business goal.
"I think the key in science is to do something that is interesting and pleasurable in both the long and short term."
I discovered that this (the hard way, after a decade buildng enterprise software) is true for software dev too. Now I do algorithm intensive work and there's more to do than I have time in this lifetime to do.