Wednesday, May 14, 2008

Everything that's old is new again

As I was reading today about Verizon joining the LiMo Foundation it struck me how ideas get recycled. Specifically here I'm talking about computer operating systems and all these new systems being based on Linux, which is substantially a UNIX clone. In the beginning there was UNIX (okay, in the beginning their was Multics) dominated by the command line and then the rise of the graphical operating systems like Mac OS and Windows that baked their own kernel foundations. Now we find ourselves, in a way, moving back to UNIX.

The graphical operating systems were viewed as what would run on desktop computers in the future. This prediction was both right and wrong. It's true that the interface of the graphical systems was the future (and now present) of desktop operating systems, but their original underpinnings reverted to their predecessors. Windows of all flavors now runs on the NT architecture, which while not having a strict UNIX heritage, borrows many (although not enough) concepts from UNIX. Maybe if they'd borrowed more, the disaster that is Vista wouldn't have happened. Mac OS explicitly moved to UNIX when Apple bought NeXT and used this as the basis of Mac OS X. NeXT itself was based the Mach kernel and was very UNIX-like. Apple rolled in a BSD layer to OS X, solidifying Mac OS X as a UNIX operating system, which it recently gained certification as.

The question then comes to me, why did this happen? In fact, I think we see all over the place three phases of development. Phase I strikes into new territory, Phase II moves further into the territory with the idea that most of the ideas from Phase I were really flawed and should largely be abandoned, and Phase III often looks backs and realizes the things Phase I got right and puts them as an underpinning of the new ideas from Phase II. I think this shows very well in operating systems. Phase I produced these massive, powerful operating systems that were hard to use. In Phase II we decided that these complex systems were just all wrong and we needed to start from scratch focusing on ease of use. Now, in Phase III, it turns out Phase I was right about the power that the operating system needs and Phase II was right about the ease of use. As a result, we've put the underpinnings from Phase I back in and adapted Phase II interfaces to run on them.

There are probably many ways to explain this cycle back to UNIX kernels that we've taken, and perhaps betters. The lesson I try to take from all this is if you decide that a solution in a new problem space is completely off target, take a step back, there's probably a lot it go right. Apple commercials said "There is no step 3", I'm trying to get rid of step 2.

Monday, May 12, 2008

life, n.: a broader defintion

Recently I began thinking about how to classify life, in a broader sense. My main motivation for this was to answer the question of how to classify "alien life" in a broader sense.

The definition that I think I've heard most is that "life" is something that reproduces. This is unsatisfying for a couple of reasons. The first reasons being that does this make a computer virus alive? You might say, but a computer virus isn't "organic". However, if we get down to it, organic's definition is based on its ability to be used by "life". The second reason why this definition is unsatisfying is what if we encountered a species that never died and therefore had no reason to perpetuate itself through reproduction? For that matter, what about people who can't reproduce, they are certainly not dead.

My proposed definition for life is, "that which exports entropy from itself." Life is the one thing that we know in the universe that seeks to maintain or lower its level of entropy by exporting local entropy to the surrounding environment. Something that is alive does not continually move to a lower and lower energy state. It is true that all "life" on this planet does eventually die, but not without an attempt at preservation. It is perhaps then a consequence of death that life reproduces. This makes life being defined by reproduction even less satisfying because it means the definition of life is really dictated by the reality of death.