This is something I wrote up a few days ago, probably around four or so in the morning. So take whatever it says with caution.
I know I should be writing about some other things as well, like how the diybio nyc might be amazingly close to getting a real lab space, or how I’m prepping to stop by for this year’s iGEM jamboree. I also have the pictures from this year’s major diybio nyc event, where we set up a stall on the NYC green market and extracted dnas from the natural produces with common household material (with the passers-by of course). Each of those things would probably make for some lengthy and interesting reading, and the list goes on (my life’s actually kind of exciting right now). Yet whenever I find the time to write something down, nada. Nothing. My mind just shuts down and nothing I can commit to paper or the keyboard seems good enough.
Tonight though, aided by my weird bout with insomnia, I’ll just write something down I’ve been meaning to say for a long time.
I’ve been looking into the history of computing and computer languages recently. I’ve always had some level of interest in computers. Not just the spiffy brand-new muscle machines but in what most people would refer to as ‘retrocomputing’ (I once ended up practicing some AIDA because of that. Ugh), which is a story for another time. It’s not that I think old ways of computing were better than what we have now (protected memory FTW). It’s just that it’s much easier to trace the evolution of the concept of computing when you see beyond the immediate commercial products.
Synthetic biology is effectively a pursuit of engineering biological organisms. Biological organisms are based upon somewhat unified information storage and processing system that has quite a bit of parallels to mechanical computerized systems. I’ve been wondering whether it would be possible to predict the future development of synthetic biology by looking at how computer programming languages evolved (because they deal with information processing systems applied to physical counting medium). Maybe it’d be possible to predict some of the pitfalls that are inherent in developing complex programmable information processing system that will apply to the synthetic biology in the future. Maybe we can bring a conceptual framework to the synthetic biology that would have taken decades if left to mature naturally to within mere years.
While I was rummaging through the texts in both real life and the web (with many of the promising links on the web leading to dead-ends and 404s) I ran into a programming paradigm and environment I was only superficially familiar with before. Smalltalk and Squeak, both the brainchild of the computing pioneer Alan Kay.
Here’s an excerpt from Alan Kay’s biography I found on the net (I can’t find the website right now. I swear I’ll edit it in later, when my brain’s actually working!)
“Alan Kay postulated that the ideal computer would function like a living organism; each “cell” would behave in accord with others to accomplish an end goal but would also be able to function autonomously. Cells could also regroup themselves in order to attack another problem or handle another function.”
This is the basic philosophy behind smalltalk/squeak and object oriented computer programming paradigm. It is no coincidence that Alan Kay’s vision of the ideal computer language and computing environment would take to a biological allegory, since he came from molecular biology background.
While I’m reading through the history of different computing paradigms for the purpose of figuring out how it might be applied to synthetic biology, there’s something else I found awesome and perhaps a little heartwarming. Alan Kay throughout his life as a computing pioneer held onto the belief that the ideal computing platform won’t be a platform capable of crunching numbers the fastest. It will be a platform that can be integrated into the educational function of the user through ease of manipulation and control. Ideal computing platform should be hackable because it makes logical sense to do so.
Can we say the same of synthetic biology? Perhaps not. The direct comparison of a complex biological system to computerized circuits can only take us so far. Yet I can’t shake the nagging feeling that synthetic biology might be looking at some very unique opportunities for change precisely because it is different from regular electronic systems, with documents of the early days of computer and programming already here for our perusal.
A good, elegant system that allows programmable extension must be at the same time easy to learn, since one thing must inevitably lead to the other. And there are classes of systems that both run and learn better compared to other systems. This might become something of an issue of how synthetic biology parts/devices/systems are put together in the future as the capacity of the synthetic biologists to handle complex systems increase.
I think it might be able to pursue this idea further. As it stands this is nothing more than an interesting parallel in concept without substantial scientific reasoning.
Which is why I should get myself to learn smalltalk/squeak sometime in the future. Maybe I should knock on the hackerspaces in the city, see if anyone’s willing to mentor me.