In my opinion, it is unproductive to define a word (life) and then enter deep arguments as to whether or not some entity meets the definition. The debate over whether biological viruses are "living" seems senseless. The debate over whether digital software is "living" is even more pointless. For the sake of this writeup, I'll define the term artificial life to mean digital software that grow, reproduce, and evolve in ways analogous to biological life.

It is unclear how important artificial life will be in the future, but it's fun and not too far-fetched to dream about the impact that it could have on humanity. Currently though, the most important utility for artifical life is to model the evolution of biological life. While we have no way of directly observing the biological evolution which occurred over 3.5 billion years, perhaps we can simulate it digitally in short timespans. My interest in this area arose from a discussion with Caltech scientist Christoph Adami. Dr. Adami developed the Avida artifical life program and authored a textbook "Introduction to Artificial Life."

Adami's research team attempts to tackle questions such as "Does evolution lead to increased or decreased complexity?" Their research, based on information theory and automata theory, found (not surprisingly?) that evolution creates additional complexity because more complex organisms contain additional useful information about their environment. Their software also allows research into, among other things, how digital organisms adapt to their environments, how organisms evolve in different ecologies, whether molecular evolution violates thermodynamical principles (e.g. systems tend toward greater disorder), and how robust and evolvable codes (analogous to DNA) are created (analogous to how life originated from the non-living Earth).

For more information on Adami's research group and its work, visit For information on a distributed computing project with similar ambitions, see The Golem Project.