Heute soll es einmal um ein ganz anderes Thema gehen, nämlich darum, wie die Theorien der Genetik und Memetik auf die Welt der Computerprogramme angewandt werden können. Aber Achtung – der folgende Text entspricht meiner persönlichen Meinung, stellt gewissermaßen eine (unbewiesene) Theorie dar – es sollte sich also niemand mit Sicherheit darauf berufen. Eine Diskussion darüber würde mich aber wie immer freuen.
Genetik
Mit den grundlegenden Prinzipien der (in erster Linie durch Charles Darwin allgemein bekannt gewordenen) Evolution kennen sich ja sicherlich die meisten der Leser hier aus. Die “Grundeinheit” der Evolution ist ja das Gen oder genauer eigentlich, die DNA, jene Doppelhelix aus Nukleinsäuren, die unsere Erbgutinformationen repräsentiert. Mittelbar mit der DNA verbunden sind so wichtige Begriffe wie Mutation, Selektion und Fitness. Das Grundkonzept der Evolution – soweit man hier im wissenschaftlichen Sinne überhaupt von einem Konzept reden kann – ist, dass die Lebewesen mit der besten Angepasstheit an ihre Umwelt auch die größte Chance haben, zu überleben und sich zu reproduzieren. Weniger gut angepasste Arten müssen sich entweder anpassen und damit neue Arten hervorbringen (was natürlich kein aktiver Vorgang ist) oder werden über kurz oder lang aussterben; da sich aber die Umwelt ständig ändert, sind auch die meisten Lebewesen dem Druck der Veränderung ausgesetzt. Umweltänderungen können zum einen auf Grund langsamer klimatischer und geografischer Änderungen stattfinden, aber auch durch “spontane” Änderungen (gern auch “Katastrophen” genannt), wie etwa große Vulkanausbrüche oder Meteoriteneinschläge (manch einer mag auch die Menschheit an sich zu diesen Katastrophen rechnen, da sie innerhalb sehr kurzer Zeit gewaltige Änderungen auf unserem Planeten hervorgerufen hat). Ein weiterer wichtiger Umwelteinfluss ist aber auch die Entwicklung der anderen Arten in der Umgebung; findet bei einem Beutetier/Prädator eine Änderung statt, so muss sich auch der Jäger/Gejagte anpassen, um auf die geänderten Umweltbedingungen zu reagieren (auch das ist natürlich kein aktiver Vorgang – kein Lebewesen kann sich dazu entscheiden, sich zu ändern, sondern es geschieht rein passiv über Mutation und Selektion!).
Für den folgenden Text gilt: ich bin kein Evolutionsforscher, hoffe jedoch, mit meinen Aussagen in Bezug auf die Evolution nicht allzu sehr daneben zu liegen.
Memetik
Eine modernere, 1976 von Richard Dawkins beschriebene Theorie ist die Mem-Theorie. Dabei werden Meme als grundlegende Gedankeneinheiten bzw. Informationseinheiten definiert und beschreiben im Grunde bestimmte kulturelle Konzepte und Informationen. Die Theorie geht davon aus, dass sich diese Meme durch Kommunikation verbreiten und dabei – ähnlich den Genen der Evolution – veränderlich und einem Selektionsdruck unterworfen sind. Der wichtige Punkt hierbei ist meiner Meinung nach übrigens die Kommunikation, ein im Gegensatz zur Mutation bewusst ausgeführter Vorgang, der zur Verbreitung von Informationen führt. Man mag von der Mem-Theorie und ihrem Nutzen halten, was man mag; im Folgenden möchte ich mich dennoch des Begriffs des Mems bedienen und ihn auf die Welt der Informatik anwenden.
Anwendung der Theorien auf Computerprogramme
Betrachtet man die Entwicklung von Computerprogrammen über die letzten Jahr(zehnt)e hinweg, so lassen sich einige (vorsichtige) Analogien zur Genetik und Memetik finden. Bezogen auf die Genetik gibt es da natürlich die “triviale” Sichtweise, dass Computerprogramme ständigen Mutationen unterliegen, wobei ihr zugrundeliegender Programmcode gewissermaßen das Erbgut, also die DNA darstellt, welche (durch Programmierer) verändert wird. Inwieweit hier allerdings noch eine Analogie zur Genetik vorliegt, ist zumindest diskussionswürdig, da sich Programmcode nicht zufällig ändert, sondern zielgerichtet modifiziert wird (etwas, das genau gegensätzlich zur Mutation von Genen stattfindet). Auf der anderen Seite hat man aber auch den Effekt der Rekombination (der zweigeschlechtlichen Fortpflanzung in der Tier- und Pflanzenwelt), wenn nämlich mehrere Programme miteinander verschmelzen (etwa bei der Ausnutzung von Programmbibliotheken).
Interessanter als die Betrachtung der Analogien auf Ebene der Gene sind meiner Meinung nach aber die Gemeinsamkeiten zwischen der Selektion der Evolution und den Mechanismen des “Überlebens” von Computerprogrammen. Genauso wie jedes Lebewesen mit seiner Umwelt interagiert und dort einem Selektionsdruck unterworfen ist, reagieren Computerprogramme auf veränderte Einflüsse in der IT-Umgebung. Und genauso, wie sich Lebewesen auf langsame und plötzliche Änderungen ihrer Umwelt sowie bei ihren Beutetieren, Jägern und Nahrungskonkurrenten einstellen müssen, reagieren Computerprogramme auf die gleichen Änderungen. Lebewesen benötigen zudem irgendeine Form von Nahrung und eine Gelegenheit zur Fortpflanzung, um zu überstehen; für Programme gilt das gleiche, wobei hier “Nahrung” und “Fortpflanzungsgelegenheit” in einer Einheit kombiniert werden, nämlich in uns, dem Nutzer, da ein Programm dadurch überlebt, dass es genutzt wird.
Kommentare (23)