Komplexe Systeme sind Scheiße

Posted by Patrick Krusenotto on Dez 29, 2009 in Allgemein |
best_of_creative_computing_volume_2_cover

Ist diese Zeit vorbei?

Eine Polemik gegen Dinge, aus denen sich keine Essenz destillieren läst

Mephisto: Wer will was lebendiges erkennen und beschreiben, sucht erst den Geist heraus zu treiben. Dann hat er die Teile in seiner Hand. Fehlt leider nur das geistige Band

Wann haben Sie zuletzt etwas in Software gesehen, was sie umgehauen hat? Was einfach so fantastisch war, daß sie erst nicht glauben konnten, dass soetwas möglich ist, und was sie direkt ungeheuer nützlich fanden? Keine einfache Frage oder?

Ist Windows Vista(ok, scheiß Beispiel :-) ) eindrucksvoll oder ein LAMPP-Server aus Linux, Apache, PHP, Perl ? Seien sie ehrlich, es ist nicht eindrucksvoll. Es ist einfach nur eine zusammengequrltes Zeuch, bei dem man sich vor allem mit einem befasst: Konfigurieren, Doku lesen und weiter konfigurieren. (Teil meines täglichen Brotes, übrigens)

Ich kann die Eingangsfrage aber aus meiner Perspektive beantworten: Das Vor-vor-letzte wirklich eindrucksvolle in Sachen Software habe ich 1975 gesehen. Es war ein wissenschaftlicher Taschenrechner, den meine Eltern meinen älteren Geschwistern für die Oberstufe gekauft hatten. Er konnte schneller als ich multiplizieren, addieren, dividieren usw. Und er konnte noch sehr sonderbare spezielle Sachen wie “sin”, “tan” - mit denen ich nichts anfangen konnte, bestimmen. Irgendetwas Magisches eben. Dann leuchteten die Ziffern in herrlichen rot und von dem ganzen Teil ging eine wunderbare Aura aus. Daß das mit Software zu tun hatte, wusste ich mit damals 8 Jahren garnicht.

Ich muss aber eine andere Software erwähnen, die ich um das Jahr 1986 mal auf einer Veranstaltung gesehen habe, die sich “Bergische Computertage” nannte und in der Uni Wuppertal stattfand. Die ganze Veranstaltung bestand aus Vorführungen von Computersystemen in einer aberwitzigen Typenvielfalt. Grafiken, die Temperaturgradienten von erhitzten Metallen zeigten, Berechnungen des Apfelmänchens und und Ähnliches. Unter diesen Computersystemen war eines, das mit einem Algebrasystem ausgestattet war. Dieses System konnte wiederum etwas sehr faszinierendes: Stammfunktionen bestimmen. Da das zu Fuß ein ziemliches Gefudel und manchmal sehr frustrierend sein konnte, war ich platt, wie schnell der Kasten entweder eine Stammfunkion ausgespuckt hatte oder zumindest sagen konnte, dass er keine finden kann. Das System war übrigens ins LISP geschrieben und es handelte sich um Macsyma.

Das war 1986! Heute ist fast 2010!

Das nächste Ding, das mich hätte beeindrucken können, tat dies schon nicht mehr. Es war 1987 eine Programmiersprache die für den SUPRENUM (Superrechner für Numerik) entwickelt worden war und über die ich eine Proseminararbeit schreiben sollte. Ein brotiges etwas von einer deskriptiven und imperativen Sprache, ein wirrer Verhau von hybriden Konzepten. Grauslich! Natürlich wurde diese Programmiersprache nie vollständig implementiert und überhaupt war das ganze 200 Mio SUPRENUM-Projekt am Ende ein Griff ins Klo.

Danch habe ich noch hin und wieder ein Highlight gesehen. “DOOM” von id Software zum Beispiel. Vielleicht war das die letze marktgerechte Software, die stabil lief. Danach kam nur noch Matsch.

Woran liegt das?

Die Frage ist natürlich nicht leicht zu beantworten. Zum einen bin ich davon überzeugt, daß Bjarne Stroustroup (der Erfinder des C++ Präprozessors) sein C++ aus reiner Böswilligkeit entwickelt hat und damit die Weltweite Entwicklung des Computers um wenigstens zwei Dekaden zurückwerfen wollte. C ist ja schon eine Zumutung, aber C++ ist ein einmaliger Fehlgriff in der Geschichte der Programmiersprachen. Es konnte auch nur so erfolgreich werden, weil jeder, der OOP nicht schon mit Borland Pascal erlernt hatte, OOP lernen wollte und in diesen Abgrund, den sich auch nur ein Skandinavier bei 6 monatiger Dunkelheit ausdenken kann, hinabsteigen musste. Um diesen perversen Unfug zu bewältigen, kaufte man derzeit Fachliteratur nicht nach Exemplaren, sondern nach Kilos. Voll mit bescheuerten Beispielen von der Taxonomie von Insekten oder der Hierarchisierung von Kraftfahrzeugen, um objektorientierte Programmierung zu vermittlen. Neulich habe ich noch einiger dieser wenig lesenswerten Bücher dem Altpapier überantwortet, aus dem sie hoffentlich irgrendwann als Postkarten wieder auferstehen, auf denen nette Grüße notiert werden. Jedenfalls hätte das arme Papier das verdient.

Zweitens hat Mitte bis Ende der 80 Jahre in der öffentlichen Rezeption und in der Rezeption der Computernutzer dieser eine massive Bedeutungsveränderung erfahren. Das Aufregende an der Computerei in den achziger Jahren war, daß jeder, der damit zu tun hatte, versuchte, herauszubekommen, was man alles damit machen konnte! Jedem, der eine erste Programiersprache erlernt hatte, wurde schnell klar was für ein irres Potenzial in der “Universellen Maschine” steckt. Und es war ungeheuer aufregend, rauszufinden, welche Probleme (Schach, Spiele, Mathe, Datenbanken) man damit lösen könnte, wenn man nur tief genug in die Materie einsteigen würde. Programmieren habe ich als ein einziges intellektuelles Lustgefühl empfunden Aber niemals als Arbeit oder anstrengend. Doch dann sollte alles anders kommen:
Programmierung, die noch von Doneld E. Knuth in seinem Werk “The Art of Computer Programming” als Kunst bezeichnet wurde, sollte auf einmal zu einer Ingenieurstätigkeit heruntergestuft werden. Eine Ingenieurstätigkeit! Pfui!

Himmel!

Ein Ingenieur ist eine Person, die zum Beispiel einen weitern, neuen Rasenmäher konstruiert. Genauso laut und stinkend, etwas anders aussehend aber am Ende auf demselben Prinzip basierend. Das hat mit Programmieren überhaupt nichts zu tun, denn Softwareentwicklung ist ja gerade die Entdeckung eines neuen Prinzips! - So jedenfalls meine Wahrnehmung.

Gleichzeitig verschwanden die vielen visionären Publikationen aus dem Bereich der Künstlichen Intelligenz und das ganze Thema KI überhaupt aus den Bücherregalen. Es erschienen nur noch Publikationen zu einem Thema, das aus Programmierern (mit einem Kopf!) Ingenieure (mit einem Schraubenzieher!) machen sollte: OOP; und zwar zusammen mit einem ebenfalls nervtötenden Begleiter: Nämlich “Grafische Benutzeroberflächen”. Von nun an war die ganze Kreativität fott.

Ich möchte die Verdienste der objektorientierten Programmierung aber nicht schmälern. Ich weiß, das Softwareprodukte wie “Empire Earth” und seine ungezählten Remakes ohne OOP, ohne Konzepte wie “feinkörnige Kapselung” und Vererbung und virtuelle Methoden nicht möglich wären. Auch moderne GUIs nicht. Auf der Anderen Seite muss man einfach sehen, daß dadurch die Tätigkeit des Programmmierers nur in die Breite und nicht in die Tiefe gewachsen ist. Algorithmen verloren im Bewustsein der Entwickler ihre Bedeutung und statt dessen schlug man sich mit Objekten, Vererbung oder manchmal einfach nur noch mit den Tücken eines GUI-Frameworks herum. Damit wurde der Weg bereitet, zu dem was wir heute als modernen Computer ansehen: Eine Maschine, mit der der man sich in Foren oder im Usenet gegenseitig anranzen kann, Pornos oder einfach dummes Zeug aus dem Internet runterläd und das nächste T-Shirt bestellt. Die Goldene Zeit der Programmierer ist erstmal vorbei.

Mit der nahezu unglaublich klobligen und uneleganten JAVA-Technologie konnte noch eins oben drauf gesetzt werden. Mit seiner bürokratischen und gleichzeitig höllisch geschwätzigen Natur beherrscht es derzeit die Welt der Programmierer und der Programmierung. Aber es ist Besserung in Sicht:

Microsoft macht es mit F#, andere mit Haskell, OCaml, Erlang usw. Diese Computersprachen können helfen, dass wir den Focus verlegen und wieder zurückkommen zum knappen, eleganten, und stilsicheren. Eben denjenigen Ideen in der Computerrei, denen man eine Essenz entnehmen kann. Das kann früher oder später dazu führen, das die Figuren in Computerspielen nicht sich nicht mehr so nervtötend dämlich benehmen, der Computer wieder ein interessantes Gerät wird. Dass sich wieder mehr Leute fragen, wie man mehr in die Tiefe der Möglichkeiten eindringen kann, als alles in die Breite zu ziehen.

Reply

Copyright © 2012 Das Algorithmenwerk* All rights reserved. Theme by Laptop Geek.