Rice And The Fly

We are told by genetic researchers that it takes about 15,000 distinct genes to describe a fruit fly. It takes about twice that to describe a human, and about three times that to describe a grain of rice (actually, the whole rice plant, not just the grain).

With varying interpretations in the air right now as to how it could be the case that more instruction sets go into the rice than the fly or the human, I feel computer programmers may have valuable experiential insight to add to the analysis.

In past decades, scientists, when forced into an educated guess, vastly overestimated the number of genes they suspected they had. Most of the debate split hairs in the realm of 150,000 distinct genes. And in the face of scientific discovery, some researchers went on the record as feeling a bit deflated by the actual counts, in overt compliance with the "more is better" theory.

But while rice genes contain voluminous independent instructions, the instructions all turn out to be extremely context-specific. They don't have much use outside of a closely defined set of circumstances. The genes which define the chemical compounds that make the root system resistant to low-moisture conditions, are unlikely to have much to say to other areas of the plant. Drought tolerance in the leaves, for example, may be an entirely different operation.

With humans, however, one gene can provide a multitude of functions. And its herein the developer observer of biological science receives justification for and inspiration towards great abstraction and flexibility in any instruction set we design or encounter.

Already, we know that in the code we write as software developers, less is usually more. But it may be a bit misleading to describe the human genome merely in terms of efficient code reuse. The human genetic script also exhibits a tendency towards flexible multi-purpose instruction modules. I suspect this cannot occur in our work without extensive variability and commonality analysis of the processes we will support. For example, we strive to build a drought-resistance module whose delegates confer with both the roots, and the leaves.

Whether our knowledge of software development simply affords us some clever insights into the genetic discoveries of the day, or whether the genome holds powerful lessons to reshape the technique of the modern programmer remains to be seen.

-- LukeSamaha


Don't look to Nature's encoding for any tips, only look at the phenotypes that have succeeded. Nature is a very bad programmer, but a very good tester. -- SunirShah


I wish I'd said that! Don't worry, you will.


The quip is catchy, oft repeated, and accurate on one level. But, I wouldn't rule out natural systems as an occasional, inspirational force in technology. Many major technological advances have come from insights into nature. StephenWolfram's (creator of the Mathematica programming language) A NewKindOfScience, work with cellular automota, etc. demonstrate this very nicely.


EditText of this page (last edited October 17, 2006) or FindPage with title or text search