Expanding the definition of coding, and the mechanism
Posted by Andy Singleton on Mon, May 31, 2010 @ 10:45 AM
Juan Enriquez stepped up to remind software developers that the most significant future work in coding is likely to be done with genomes. He works in the emerging industry of synthetic biology. He's suggesting applications like "improving the climate on Mars, designing human organs that fend off disease or cloning cattle that produce powerful vaccines in lieu of dairy products."
This is indeed a trend. Last year I went to visit Tom Knight, one of the inventors of computer science, at his office in the MIT's Stata Center. I was surprised to find him surrouned by petri dishes. Always the pioneer, he has moved his attention from digital code to genomic code.
Coders can bring their skills to synthetic biology. We can turn this around. Biology can also bring it's magic to coding.
I propose the basic idea that innovation has multiple forms - biological evolution, industrial/economic innovation, and human creativity - but a single underlying set of mechanisms. The mechanisms are based on the simple variation and selection process that we learn about when we study darwinian evolution. It's called "exploration and optimization" in engineering circles.
However, the machinery is actually a lot more complicated than that, which is why we still don't understand it fully. We can run evolution on computer programs, "genetic programming," but the results aren't even close to what we get with real evolution, yet. That's why it's such a good area for further study. Code is the product of innovation in its pure form, and if we learn how to make one type of code, we can make other types of code.
Evolution takes a long time to deliver results. It can go 1.8 billion years just working on bacteria. However, it appears to be "punctuated equilibrium". Most of the action is packed into short bursts. We see the same pattern when we run genetic programming. By creating an "arms race" scenario and taking away the tendency to equilibrium, we can prod evolution to run much faster. This creates an artificial process that is related to normal evolution in the same way that a Mach 3 jet airplane is related to a bird.
This is a long term answer to how we are going to generate bigger projects and bigger wins than Web services. Once we understand how innovation and evolution work, we can apply those ideas to computer code, to synthetic biology, and to hardware. How, as a species, we are going to deal with the effects of this takes us into the realm of science fiction, but at least the current innovation deficit will be out of the way.