Änderungen in der Umwelt
Was nun die Änderungen der Umwelt betrifft: die “Umwelt” eines Computerprogramms besteht zum einen natürlich aus der Hardware, auf der das Programm läuft (die Geografie und das Klima), dem Betriebssystem (welches ich auch fast zum Klima und zur Geografie rechnen möchte) und den anderen Programmen, die entweder auf dem gleichen System laufen (wobei es hier meist ein mehr oder weniger friedliches Miteinander gibt) oder generell existieren und eine ähnliche Aufgabe erfüllen wie das Programm selber; hier entsteht vor allem der Konkurrenzdruck, der zur Selektion der Programme führt.
Im Verlauf der Jahrzehnte gab es im Bereich der Hardware zahlreiche, meist kontinuierliche Veränderungen, an welche sich die Programme mit der Zeit angepasst haben. Die offensichtlichste Änderung war natürlich die Zunahme der zur Verfügung stehenden Ressourcen – Rechengeschwindigkeit und verfügbare Speichermenge – an welche sich die Programme durch bessere Ressourcenausnutzung angepasst haben (mit dem kuriosen Effekt, dass Programme heutzutage trotz schnellerer Computer noch immer nicht schneller laufen – aber das ist ein anderes Thema). Aber auch nicht so deutlich hervortretende Faktoren können zu den langsamen Umweltveränderungen gezählt werden. So hat sich insbesondere in den letzten Jahren die Anzahl der parallel arbeitenden Kerne in den Prozessoren erhöht, was dazu geführt hat, dass Computerprogramme immer mehr parallelisiert wurden, das heißt mehrere interne Aufgaben gleichzeitig berechnen können. Auch die verfügbaren Auflösungen der Monitore und damit der verfügbare Platz zur Darstellung von Informationen vergrößerte sich, woran sich die Programme natürlich auch angepasst haben.
Neben den langsamen Veränderungen gab es von Zeit zu Zeit natürlich auch immer wieder plötzlich auftretende Neuerungen. Da wäre vor allem auch die Entwicklung von Grafikoberflächen für Betriebssysteme zu nennen – durch ihre Einführung Mitte der 1980er Jahre haben sich teilweise vollkommen neue Bedienkonzepte ergeben, welche relativ schnell ausgenutzt wurden. Selbst die Entwicklung der Personal Computer in den 70ern fand in einem relativ kurzen Zeitraum statt und hat zur Entstehung ganz neuer Programme geführt – schließlich gab es davor praktisch nur “Großrechenanlagen”, die nicht für den Heimgebrauch geeignet waren. Die Entwicklung des World Wide Web schließlich war die letzte große Neuerung, welche die heutige Zeit vollkommen beherrscht und teilweise vollkommen neue Programmkonzepte hervorgebracht hat (seitdem herrscht ein wenig Flaute im Bereich der Entwicklung grundlegend neuer Technologien; ob sich zum Beispiel das Cloud Computing als großer Wurf herausstellt, wird erst die Zeit zeigen können).
Ein wichtiger Faktor in der “Evolution der Programme” ist natürlich aber immer der Konkurrenzdruck anderer Programme gewesen. Zur Lösung eines Problems existieren für gewöhnlich mehrere Programme, welche um “Nahrung” – also Nutzer – miteinander konkurrieren und versuchen, durch immer neue Fähigkeiten ihre Konkurrenten auszustechen. Je mehr Konkurrenten existieren und je “stärker” (also je bedrohlicher für die eigene Existenz) diese sind, desto schneller entwickelt sich ein Programm auch weiter. Umgekehrt führt das dazu, dass sich ein Programm, welches in seinem Aufgabengebiet dominant ist und kaum Konkurrenz hat, relativ langsam weiterentwickelt – ein prominentes Beispiel hierfür folgt gleich noch.
Ähnlich der Evolution kann man die Entwicklung von Programmen aber auch unter dem Gesichtspunkt der Memetik betrachten. Ein Programm würde hier einem Mem, also einer Gedanken- oder Informationseinheit entsprechen, welches durch Kommunikation – in der Regel durch Empfehlung an andere Nutzer – und häufige Benutzung weiter verbreitet wird. Auch hierzu folgen gleich noch einige prominente Beispiele.
Überhaupt: bisher waren das ja alles theoretische Betrachtungen. Die beste Theorie nützt aber nichts, wenn sie nicht mit der realen Welt verglichen wird. Wenden wir uns also einigen Beispielen zu, an welchen ich demonstrieren möchte, wie die Gedanken der Genetik und Memetik auf die Informatikwelt angewendet werden können.
Beispiel: Betriebssysteme
An Betriebssystemen fällt die Evolution von Programmen immer besonders auf, da sie den Gesamteindruck eines Systems bestimmen und ständig präsent sind. Beherrscht wird der Markt hier eindeutig von den verschiedenen Windows-Versionen mit ungefähr 80% Marktanteil, gefolgt von Mac OS, wiederum gefolgt von Unix-basierten Systemen – der Markt ist also relativ überschaubar.
Kommentare (23)