Mittwoch, 4. März 2009

Physophy (and IT): Evolution as a software system

Evolution is . . . Evolution is the main part of modern biology, and one main part of modern biology is bioinformatics! The core of the evolution is the development of a software system (based on genes and proteins etc), but function-wise it is a compact, special, adaptive software system with controlled adaptability:
This software orders the detailed construction of organisms.
What is missing today, is an analysis and modeling of evolution as a software system!
There are several aspects of commercial and industrial (human-made)software which are helpful in understanding, e.g.
  • it is easier to reuse running code than to develop new,
  • similar: reusing established subroutines allows hierarchical structures,
  • flexibility on the code level requires building blocks,
  • flexibility on the execution level requires configurator capablity.

But you need more (and most of it is new and non-trivial):

  • preparation of self-modifying code
  • close interconnection between program and storage
  • mechanisms for easy reconfiguration,
    adaptive to "more or less mutations wanted",
  • i.e. management of the "mutation distances".

The "mutation distance" determines the probability of again useful software after a random software mutation. What is needed are software engineering models how to achieve these functional features - and then see how much is directly implemented in genomics, proteomics and transcriptomics.

This software engineering science is the engineering discipline of biology - a wonderful field of exciting and relevant research, much more scientific than ruminating the (of course also important) human software generation processes...

Many people are not aware that evolution takes place on the software level, not on the level of visible features (phenotypes)!

“I made this program longer than usual because I lack the time to make it shorter.” - paraphrasing Blaise Pascal (after ).


  1. I read your blog post - it is very interesting. But I believe that at present state the software is not capable to evolve itself (more here: People are the main driver behind it - and the main problem that software itself cannot grasp purpose and meaning of self functionality. IT cannot evolve in meaningful for us way. That is why you still need programmers as translators of human ideas to computer language. At least if you want to have useful for humans programs.

    As I understand you are interested in mechanics of the self-evolving process, I don't have much knowledge in this area and will be interested if you have any ideas. But still - I don't think that evolving software by itself will be useful for humans in the near perspective.

    Do you agree?

    Andriy -

  2. Dear Andry,
    thanks for good comment - I agree that commercial sw will have an "intelligent designer", hopefully. But I mean if you are SW researcher, I see some new SW functions which could model the biological evolution, e.g. to make SW which can be internally mutated - and still have some meaning and be valid. Maybe SW could then explain how evolution worked - at the end, the genome is a large combined processing and SW system (I learned this from Ray Kurzweil).

    And again: Your blog has so artistic pictures!