Skip to content

Software as a "Living Entity"…

At the recent OOPSLA 2004 conference in Vancouver there were interesting discussions at some of the panel sessions and in the halls about thinking of software as a “living entity”.  If you are thinking about the software lifecycle, should you follow the metaphor relating the aspects of software to real life?

Would you think about and plan for software programmed death? Biologists study programmed cellular death in the human body. There are cells in the brain that need to die to create pathways. There are cells in our bodies that get rid of damaged cells. Should you think about biology and fault tolerant software in the same way? Would you write programs differently if you knew that the software was going to die? Year 2000 focused applications were only good for a certain period of time and then went away. Are destructors and finalization sections enough for objects and programs to get their "affairs in order"? When should a piece of software be retired or shut off? Should it decide when to kill itself? Can software evolve? Okay, you are probably thinking that DavidI has gone off the deep end this time. But, I do think about these things when they come up at conferences.

Richard Gabriel, during the OOPSLA 2004 Onward Breakthrough Ideas open microphone session, said "We design software like a house of cards, we believe in abstraction too much. Biological systems are based on failure and the maintenance of life. How much of our software is based on maintaining itself? Zero – exception handling is all we have."

In the book, "Are We Spiritual Machines?: Ray Kurzweil vs. the Critics of Strong A.I.", Kurzweil says that with the growth of processing power machine intelligence will exceed human intelligence early in this century. Within a half century, Kurzweil says that "nonbiological intelligence will dominate because it is growing at a double exponential rate while biological intelligence is at a standstill." Humankind will "merge with its computational technology." Can evolvability and robustness be found in current software practice? Is IBM’s Autonomic Computing initiative the latest step in the right direction?

Thomas S. Ray’s "An approach to the synthesis of life" and the Tierra software project was motivated by the desire to observe a non-carbon life form based evolutionary process.

Inman Harvey’s PhD thesis introduced the SAGA (Species Adaptation Genetic Algorithms) framework focused on "the different domain of long term artificial evolution, where the task domain is ill-defined and can increase in complexity indefinitely."

What would the impact on software engineering be if we could design information systems that evolved? Imagine software that was adaptive, autonomous, evolutionary, self recplicating, and self organizing. For more information, check out the dissertations related to evolutionary computing at the US Navy’s Genetic Algorithms Archive.

I’m looking forward to the day when my programs tells another program to "Live Long and Prosper".

{ 2 } Comments

  1. Michael Marshall | November 24, 2004 at 1:34 pm | Permalink

    Please don’t include these Amazon IFRAME links in your RSS feed - viewing the blog in FeedDemon is automatically launching the browser, which is a worrying security issue…

  2. David Intersimone | November 24, 2004 at 8:21 pm | Permalink

    will check with John K and Robert L to see what they can do to remove the IFrames. Strange that FeedDemon launches a browser.

Post a Comment

Your email is never published nor shared. Required fields are marked *
Close