2008-10-13 digital life Komplexität bis zum bitteren Ende Es wird der ``Tag'' kommen an dem die IT komplett zusammenbricht. Bis dahin wird der Mensch immer noch mehr auf sie übertragen und sich noch stärker auf sie verlassen. Wenn die IT zusammenbricht wird sie viel mitreißen. Noch ist es nicht soweit, doch es wird soweit kommen! Außer der Zeit gibt es nichts das ewig vorwärts läuft. Ist dies korrekt, so stehen meine Chancen gut, recht zu haben. Aber ich bin kein Prophet, kein Seher. Ich bin lediglich Beobachter und Gedankenmacher. Deshalb tue ich gut daran, die Weissagungen anderen zu überlassen und mich auf das zu konzentrieren was ich beobachte: Begonnen hat die Computer-Ära mit mechanischen Maschinen. Als die Mechanik zu schlecht, zu komplex, zu ungenau wurde, ersetzte man sie durch Elektrik, dann durch Elektronik. Man kombinierte Bausteinchen zu immer komplexeren Rechenmaschinen. Als der men- schliche Verstand dazu nicht mehr in der Lage war, erzeugte man (Software-)Maschinen die die Arbeit übernahmen. Abseits der Hardware nicht anders: Als Binärcode und seine Repräsentation als Assembler zu kompliziert wurde, nutze man Maschinen (Compiler) um ihn zu erzeugen. Auch ihre Bedienung wurde irgendwann zu umständlich, so setzte man eine weitere Schicht oben auf: Programme die Anweisungen in kleinere Anweisungen übersetzen, die dann wiederum in kleinere Anweisungen übersetzt werden, ... bis man letztendlich bei Einsen und Nullen ankommt. Nach oben aber besteht kein Limit. Ich möchte nicht wissen, wieviele Abstraktionsebenen bei ``moder- nen Programmiersprachen'' vorhanden sind. Und auf der Datenbank- seite das Gleiche nochmal. Ist die Anwendung fertig gebaut, hört es aber noch nicht auf. Plugin- und Addon-Systeme sorgen für eine weitere Ebene. Weshalb aber rege ich mich darüber denn so auf? Die Abstraktion und Kapselung ordnet doch. Würde man nur in Assembler program- mieren hätte man die Komplexität. Abstraktionsebenen eliminieren Komplexität. Nein! Sie verschieben sie nur an andere Stellen. (Okay, sie reduzieren sich auch ein wenig.) Wenn alle paar Jahre eine weitere Abstraktionsebene oder eine neue Technologie die Mainstreamprogrammierung erreicht, steigt jedes Mal die Komplexität des Systems. Vielleicht wird hier oder da Komplexität an eine andere Stelle verschoben -- insgesamt wird sie aber in jedem Fall mehr. Lässt sich auch manche Programmlogik kürzer schreiben, so benötigt ihr wirkliches Verständnis doch vielfach länger. Der Handel geht nur dann auf, wenn man kein Problem damit hat, Scheuklappen für die Bequemlichkeit in Kauf zu nehmen. Es scheint, als hätten allzuviele kein ungutes Gefühl dabei. Man mag annehmen, dass es zum Beispiel bei Autos nicht anders sei. Lässt man die Computersteuerungen bei Seite (da sie zu den Computern zählen), so ist aber ein gewaltiger Unterschied in der Zeit die man benötigt, das eine oder das andere System ganz zu verstehen. Bedenkt man diesen Versuch um 1960 oder 1940, so stellt man schnell fest wie explosionsartig sich die Computer- technologie (und damit auch ihre Komplexität) entwickelt hat. Und es ist noch lange nicht schluss! Konkret: Mozilla Firefox wird als ``simpler, kleiner und schneller Browser'' bezeichnet -- nur das letzte Attribut trifft (wohl) zu. Und es ist ja auch gar nicht mehr möglich, simple und kleine Browser zu schreiben, die den ``modernen Anforderungen'' genügen! HTML, XHTML, CSS, JavaScript, Java, Flash, Feedreader, PDF-Viewer, ... was soll ein Browser denn sonst noch bieten? Man kann diese Anforderungen nicht simpel umsetzen! Plugin-Systeme ändern daran nichts. Browser sind entartet. Man will sie gar nicht mehr um Hypertext-Dokumente darzustellen und Links zu folgen. Das Web basiert ja schon fast nicht mehr auf HTML und seinen Verlin- kungen. Heute kann es passieren, dass man nichts als eine Fehlerseite zu sehen bekommt, wenn man kein aktuelles Flash- Plugin installiert hat. Webseiten sind keine Dokumente mehr, sonder Filme! (Design! But what is Function?) Höher, schneller, weiter -- hauptsache man beeindruckt den Besucher. Schade, dass sich viele von derart schlechten (aber schönen) Informationsprojektionen beeindrucken lassen. Wer das Web vernünftig nutzen möchte, kommt also um diese Plugins nicht herum. (Man möge nur versuchen online zu bestellen ohne JavaScript, Cookies und Bilder zu akzeptieren.) Und da der Browser ja aller Vorraussicht nach sowieso die Benutzeroberfläche künftiger Betriebssysteme sein wird, kann man erwarten, dass es schlimmer wird. Applikationen werden im Browser laufen. Google zeigt es ja heute schon. Zurück zur Komplexität: Weshalb muss der Flashplayer ein Plugin des Browsers sein. Weshalb nicht ein eigenständiges Programm, das aus dem Browser heraus geöffnet werden kann? Es würde die Komplexität der beiden Programme und des Gesamtsystems reduz- ieren. Und wieso werden Anwendungen überhaupt auf einem Anima- tionsplayer ``abgespielt''? Es stecken einfach keine klaren Konzepte dahinter! Man nimmt was man findet und missbraucht es bis zum Limit. ... und dann entwickelt man es in dieser Richtung weiter um das Limit fort zu schieben. Doch weshalb? Es ist nicht nötig! Flash braucht man eigentlich überhaupt nicht -- außer für Anima- tionen, wofür es ursprünglich gedacht war. Aber lassen wir das. Viel bedeutsamer ist die Frage: Weshalb Plugins und Integration statt externer Aufrufe (wie etwa über mailcap-Einträge)? Ein kleines bisschen Bequemlichkeit für einiges an Komplexität. Eine Komplexität die nicht nötig ist. Der unwissende Endanwender wird es vielleicht nett finden, doch er sollte nicht entscheiden wovon er nichts versteht! Die Fachleute sollten in ihrem Gebiet das Sagen haben. Leider entscheidet in unserer Gesellschaft die Masse ... und bei kommer- ziellen Dingen noch viel stärker. Sie jedoch haben keine Ahnung was dahinter steckt, welche Probleme sich dadurch auftun. Die IT wird zu Grunde gehen, weil die die es wissen sollten, auf diejenigen hören, die keine Ahnung haben. Die Leute sollten diejenigen Programme einsetzen, die ihren Zweck (gut) erfüllen, und nicht welche die mehr Features haben. Die Leute sollten Emailprogramme zum Emailen verwenden; Webbrowser zum Surfen; Movieplayer zum Abspielen von Filmen und Download- manager um die Daten runterzuladen; zudem einen (ordentlichen) Texteditor zum schreiben von Text. Eben je ein Programm für genau den Zweck für den es bestimmt ist ... ohne Plugins und In- tegration, wohl aber mit automatischen Aufrufen. Computernutzer sollten die Unix-Philosophie kennen! Und sie sollten mit der Komplexität, der von ihnen verwendeten Software, konfrontiert werden ... damit sie sie ebenso satt hätten wie ich! http://marmaro.de/apov/ markus schnalke