Dieses von Nikolaus Wirth beschriebenen Phänomen wird inzwischen auch als „Wirthsches Gesetz“ bezeichnet. Demnach wird der Fortschritt bei der Hardwareentwicklung durch immer ineffizienter programmierte Software ausgeglichen. Nun ganz so schlimm würde ich es nicht sehen. Aber ich will mal dieses Thema aus einer anderen Perspektive aufgreifen. Und zwar will ich die Stationen der Benutzerfreundlichkeit von Anwendungen bei PC’s Revue passieren lassen.
Als die 8-Bit-Rechner einen Hauptspeicherausbau von annähernd dem Maximum was adressiert werden konnte, so 48 bis 64 Kbyte hatten, konnte man mit CP/M die ersten Anwendungsprogramme betreiben. Wer mal mit Wordstar, DBASE oder Multiplan gearbeitet hat, weiß aber auch von den Einschränkungen. Wordstar hatte kryptische Tastenkombinationen. Formatierungen gab es als Steuerzeichen auf dem Bildschirm und genauso wie bei Multiplan konnte man beim Scrollen sehen wie sich jede Zeile neu aufbaute. Dbase lieferte Datensätze langsam zurück, 1-2 pro Sekunde.
Unter MS-DOS und 16-Bit Rechnern wurde die Software schneller, konnte größere Datenmengen bearbeiten und zum Ende hin gab es sogar eine Andeutung des Ausdrucks durch fett, Unterstreichen oder Kursiv auf dem Bildschirm, wenn allerdings nicht im richtigen Font.
Die nächste Stufe war die grafische Oberfläche. Erstmals war es möglich die reale Welt irgendwie auf dem Computer abzubilden, wenn auch mit Krücken wie Icons für Dateien. Aber immerhin musste man sie nicht mit Befehlen kopieren, sondern konnte sie mit der Maus verschieben, wie im richtigen Leben. Für die Anwendungen bedeutete dies auch, dass nun der Bildschirm den Ausdruck wiedergeben konnte, angefangen von Texten über Bildschirmmasken.
Wie bei der Textoberfläche dauerte es dann Jahre bis Jahrzehnte bis diese Oberfläche perfektioniert wurde. Wenn ich zum Beispiel die Grundfunktionalität von Winword 2 nehme und sie mit Openoffice heute vergleiche, so ist letzteres natürlich schicker, es geht heute Online-Rechtschreibprüfung und Grammatikprüfung, aber die Grundfunktionen haben sich kaum geändert. Dabei ist heute ein Rechner 100-1000 mal schneller als der, auf dem WinWord 2 lief.
Nun scheint es den nächsten Schritt zu geben, nicht auf dem PC sondern einem Smartphone. Es wird mit Gesten gesteuert, erkennt Sprache und antwortet mit Sprache, was dazu geführt hat dass nun nach den zahllosen Leuten die bisher schon alleine redend durch die Gegend gelaufen sind, weil sie mit jemanden anderen telefonieret haben noch viel mehr dazu kommen werden, die bald mit niemanden mehr telefonieren, sondern ihrem Smartphone reden. Aber es ist eine weitere Stufe der Benutzerfreundlichkeit, denn nun muss ich keine Menüpunkte mehr lernen, nicht mehr selbst suchen, sondern ich kann eine umgangssprachliche Frage stellen.
Betrachtet man sich diese Entwicklung, so ist sicher der Computer seitdem um den Faktor 10.000 schneller geworden. Wenn man nur die Anzahl der Transistorfunktionen nimmt, dann liegen zwischen einem Z80 und dem schnellsten Intel Prozessor heute rund der Faktor 200.000. Ist die Software um so viel leistungsfähiger geworden? Oder ist sie viel langsamer geworden? Ich denke man kann es nicht allgemein beantworten. Nehmen wir nur mal den Desktop von Windows. Er war unter Windows 3 einfarbig, heute ist er transparent, Fenster scheinen durch, es gibt Verläufe. Wer sich technisch auskennt weiß, das es viel einfacher ist eine Fläche monochrom auszufüllen, als jedes Pixel transparent in Abhängigkeit vom Hintergrund zu setzen. Dafür geht sicher viel der Mehrrechenleistung drauf. Das nächste ist die Perfektionierung von Anwendungen. Bei Textverarbeitung erkennbar in Hintergrundformatierung, Grammatikprüfung und Assistenten die Hilfestellung geben und den Anwender überwachen. Auch dafür braucht man mehr Rechenleistung. Irgendwann ist dann ein Stadium der „Vervollkommnung“ erreicht und mehr Leistung bringt nicht mehr Nutzen, dann denke ich, ist der Schritt reif für ein völlig neues Bedienkonzept wie eb4m heute die Sprachsteuerung und das Parsen umgangssprachlicher Ausdrücke.
Das zweite ist natürlich auch, dass die Softwareentwicklung sich ändert. Früher wurde sie in Assembler programmiert, dann in C. Heute dominieren interpretierte Sprachen wie Java, C# oder es wird gar der Code vom Anwendungsprogramm interpretiert wie bei Javascript oder Flash. Bibliotheken wachsen an und damit auch der Overhead. Man muss sich nur ansehen wie groß ein „Hello World“ mal war und wie groß es heute ist.
Zuletzt entwickeln sich Systeme historisch. Altlasten werden weiter geschleppt, es wird nur erweitert und selten neu begonnen. Alleine dadurch werden sie langsam. Es ist kein Zufall, das die Sprachsteuerung bei Smartphones eingeführt wurde und funktioniert, während man auf dem PC seit 20 Jahren erst mal das Sprachsystem trainieren muss und wenn dann kann der PC Text erkennen und abtippen, aber er kann nicht den Inhalt verstehen und dann mir eine Auskunft erteilen. Es ist viel einfacher ein Gerät vom Tabula Rasa aus zu entwickeln das genau dies kann, als das alte System Windows um diese Funktionen zu erweitern. Dabei ist der Prozessor in einem IPhone um ein vielfaches leistungsschwacher als ein aktueller Prozessor von AMD oder Intel.
Ich denke die letzten beiden Punkte, die Altlasten und die immer stärkerer Programmierung in interpretierenden Sprachen sind die Hauptgründe für das Wirtsche Gesetz.