Müssen wir noch einmal neu Lesen lernen?

Bill Gates 1984, erstmals auf dem Cover des Time Magazine.

Vor dreißig Jahren, im April 1984, war Microsoft-Gründer Bill Gates erstmals auf dem Cover des „Time Magazine“. Den Satz, den die Redaktion über das lächelnde Gesicht des damals Achtundzwanzigjährigen stellte, hätte sie ebenso vergangene Woche schreiben können: „Computer Software – Die Magie im Inneren der Maschine“. So gilt es bis heute: Unverstandene Mathematik, zur Magie verklärt, in ein uneinsehbares Inneres verbannt, den Maschinen untergeschoben. Kein massenmediales Infotainment hat an diesem Denken je etwas geändert. Stattdessen beginnt im Januar „CSI: Cyber“ und damit der nächste Versuch einer Verherrlichung angeblicher Allwissenheit tatsächlich omnipräsenter Computersysteme.

Zum Glück erzählt wenigstens im Nischenprogramm noch jemand eine andere Geschichte. Eine handelt beispielsweise von Patriot-Raketen, die heute in Verteidigungssystemen wie Israels „Iron Dome“ zum Einsatz kommen. Über diese fünf Meter langen, dreiundzwanzig Jahre alten Raketen weiß man seit zweiundzwanzig Jahren, dass sie einen gravierenden Fehler in der Flugsteuerung haben. Eine Rakete fing deshalb 1992 ein Geschoss nicht ab, 28 Soldaten wurden getötet. Untersuchungen zeigten, dass der Computer immer mehr sein Ziel verfehlt, je länger er läuft. Die pragmatische Lösung lautet bis heute: Computerneustart alle acht Stunden.

Diesen Ausschnitt aus der Geschichte der Software erzählte jüngst Daniel Germanus, ein Doktorand der Darmstädter Informatikfakultät. Er war Gast bei der „Quelltextlesung“, einer jungen aber inzwischen regelmäßigen Berliner Veranstaltung in den Räumen von Wikimedia. Man stelle es sich wie eine literarische Lesung vor, bei der Menschen auf einer Bühne Zeile für Zeile aus einem Werk lesen und es kommentieren, auf Publikumsfragen eingehen und dabei stets nah am Text bleiben. Und es geht tatsächlich um Kunst. Quelltext enthält zwar eindeutige Befehle, die Maschinen sagen, was sie tun sollen. Geschrieben wird er aber wie Literatur. Die Kreativität und Intelligenz des Autors spielt eine überragende Rolle. Der Text muss interpretiert werden, die Frage lautet: Was wollte der Autor dem Computer sagen? Die vier Veranstalter nahmen jüngst den 45. Jahrestag der ersten Mondlandung zum Anlass, um über kritische Infrastrukturen zu reden. Dabei kamen sie auch auf die Patriot-Raketen zu sprechen. Es ist nämlich so: Die Steuersoftware der Rakete wurde vor ihrem Einsatz mit Papier und Stift mathematisch überprüft. Dieses aufwendige Verfahren konnte überhaupt nur durchgeführt werden, weil eine Programmiersprache verwendet wurde, die sich mathematisch verifizieren lässt. Doch man hätte sie, sagte Germanus, auch experimentell überprüfen müssen. Software arbeitet tatsächlich nur theoretisch zuverlässig.

Wenn nun aber sogar streng auf mathematischer Logik basierende Computersysteme einer kritischen Infrastruktur in militärischer Verwendung ihre Anwender mit unvorhersehbarem Verhalten überraschen – was lässt sich dann eigentlich über jede andere Software sagen? Die Quelltextleser stolperten in diese Frage hinein. Nachdem im April bekannt wurde, dass ein Software-Fehler namens „Heartbleed“ die Verschlüsselung jedes zweiten Servers im Internet bedrohte, sprachen Gabriel Yoran, Lukas Hartmann, Fiona Krakenbuerger und Sebastian Sooth über das Problem, indem sie vor Publikum aus Auszügen des Quelltextes der fehlerhaften Software lasen. Der über Jahre unentdeckte Fehler war zu diesem Zeitpunkt schon von Experten aufgeklärt worden. Aber erst beim Zuschauen der Lesung konnte man als Laie wirklich ein Gefühl dafür gewinnen, worin er bestand und was er bedeutete.

Dass es auch für erfahrene Softwareentwickler häufig nur darum geht, einen Eindruck zu gewinnen, sagte Gabriel Yoran an dem Abend. Nachgefragt, ob es ihm um Empathie für Maschinen gehe, spricht er von „Demut“. In seinem Unternehmen für Sicherheitssoftware werden Probleme nur gemeinsam angegangen. Entwickle man Software – also Lösungen für Probleme —, könne man kaum voraussehen, wofür sie letztlich verwendet wird, sagt er. Man könne auch nicht absehen, ob man gerade an einer Lösung für die Ewigkeit arbeite, oder doch alles über den Haufen geworfen wird, noch ehe es fertiggestellt ist. Software, die im allgemeinen Verdacht steht, die gesamte Welt zu rationalisieren, ist tatsächlich unberechenbar — selbst für ihre Entwickler.

Schritt für Schritt werden in den Quelltextlesungen nun Software-Mythen aufgespürt. Ein Mythos ist die vermeintliche Nähe von Software zur Mathematik. Obwohl Computer letztlich nur mit Nullen und Einsen umgehen können, heißt das nicht, dass man genau weiß, was sie mit Programmcodes machen. Anders als gemeinhin gedacht gilt der Quelltext einer Software nämlich in erster Linie den Menschen. Der Mikrochip, der ihn ausführt, versteht ihn nur, weil andere Programme ihn in Maschinencode übersetzen. Häufig in mehreren Schritten, weshalb es auch noch Zwischencode gibt. Womit befassen sich Softwareentwickler also überhaupt, wenn sie Programmcode schreiben?

Yoran fasst es kurz: Programmierer schreiben Lösungen für Probleme, um deren Kontext sie sich nicht kümmern brauchen und können. Daraus wurde das derzeit dominante Paradigma abgeleitet: Objektorientiertes Programmieren. Das unüberschaubare Ganze wird in Probleme zerlegt, die einzelnen Objekten zugeordnet werden. Der Vorteil. Dem einzelnen Objekt — nehmen wir ein Auto — werden Verhaltensregeln und Eigenschaften — Anzahl an Rädern und Türen und eine Höchstgeschwindigkeit — zugeordnet und es tut, was es soll. Der Nachteil ist aber, dass dieses Tun und Lassen einzelner Objekte im großen Zusammenspiel zu unvorhersehbaren Dingen führt — in dem Falle: zu Verkehrsunfällen. Telefonnetze, die Buchhaltung in Unternehmen, Betten in Intensivstationen, Mobiletelefone und Börsencomputer erledigen häufig allein deshalb ihren Dienst, weil „Trial“ sich gegen „Error“ durchgesetzt hat.

Quellcodekunst

Die Frage, warum die Programmierer von Objekten und ihren Hierarchien derart berauscht sind, statt streng mathematische Funktionen aneinanderzureihen, hat etwas mit dem Alltagsdenken zu tun. Begriffe, Kategorien und Relationen liegen uns nahe. Nun entpuppen sich die Programmierer als praktische Philosophen: Sie suchen nach neuen Weltbildern, da ihnen die Objektorientierung nicht mehr reicht und die korrekte Beachtung mathematischer Logik zu aufwendig ist. Schon seit rund fünfzig Jahren lässt sich Software unabhängig von Hardware entwickeln — in der Quelltextlesung wurde darüber anhand des „Apollo Guidance Computers“ der Mondlandung gesprochen. Unzählige Hochsprachen entlasten seither Programmierer davon, sich wie die Entwickler der Nasa direkt mit Nullen, Einsen und Mikrochips auseinandersetzen zu müssen. Seit kurzem gilt nun aber auch: Softwareentwickler müssen auf die Hardware, auf der ihre Entwicklungen später einmal laufen werden, keine Rücksicht mehr nehmen — auch darauf ging die Quelltextlesung schon ein, als über „Swift“, eine wenige Wochen alte Programmiersprache für alle künftigen iPhone-Apps gesprochen wurde. „Für Software gibt es heute keine Limits mehr“, sagt Yoran. Smartphones beispielsweise bringen unzählige Sensoren mit, per Internet sind sie mit Supercomputern verbunden – alles, was denkbar ist, lässt sich mit ihnen anstellen. Die Frage ist also: Was ist denkbar?

Wer Quelltext schreiben kann, darf sich austoben. Doch die Befreiung, die damit einhergeht, hat auch eine Schattenseite. Der normale Anwender — überblicksweise ein Quelltext-Analphabet —, mit Telefon in der Tasche und Computer auf dem Tisch, erkennt nicht, nach welchen Regeln seine digitale Wirklichkeit gestaltet wird. Von Mitbestimmung ganz zu schweigen. „Code is Law“ schrieb Lawrence Lessig vor fünfzehn Jahren als Warnung; nur wer Code zumindest rudimentär versteht, kann über dessen Wirkung diskutieren. Die „subtilen Beeinflussungsmechanismen“, die hinter jeder Designentscheidung der Software-Entwickler stecken, bleiben weithin unentdeckt, sagt Yoran. Eine „kritischen Theorie der Interfaces“, die Quelltexte ernst nimmt, gebe es nicht. Selbst heute nicht, da jedes Smartphone nur noch aus einem Bildschirm und alles darin aus Software besteht.

Wie notwendig auch bei moderner Fortschrittsbegeisterung kritisches Mitdenken ist, zeigt Quelltextleserin Fiona Krakenbuerger in einem aktuellen Film ihres Projekts „Looking into Black Boxes“. Sie besuchte Felix Katt, den Leiter der IT-Abteilung eines Berliner Unfallkrankenhauses. Jede Entscheidung über einen Patienten wird in dessen Haus elektronisch protokolliert. Die Computer sind bei Visiten dabei, sie kontrollieren Medikationen und überwachen Behandlungen. Dennoch gilt das System nur als „unterstützend“. Angesprochen auf mögliche Fehler, sagt Katt: „Nein, das System ist nicht fehleranfällig.“ Darüber hinaus entscheide noch immer der Mitarbeiter, „die IT kann das Denken nicht ersetzen“. Die Wissensgrundlagen für die alltäglichen medizinischen Entscheidungen sind jedoch längst in den Computer abgewandert. Krakenbuerger fragt also: „Verlässt man sich nicht schon zu sehr auf Software?“ Katt antwortet: „Ich hoffe sehr, dass die Kollegen das nicht tun.“

Hoffnung beschreibt den Stand der Diskussion, auf Seiten der Praktiker. Auch in der sozialwissenschaftlichen Reflexion herrscht weithin Ahnungslosigkeit. Zwar gibt es aufwendige Studien über Nutzerverhalten, von einer neuen Theorie der Gesellschaft ist man jedoch ebenso weit entfernt wie von einem zeitgemäßen Verständnis digitalisierter Organisationen und es gibt auch keine aktuelle Theorie der Interaktion. Große Softwarekonzerne werfen stattdessen billige Nebelkerzen und lassen in hauseigenen Instituten über E-Government, Open-Science und digitale Hauswände als partizipatives Rauschmittel forschen. Auf diesem Niveau operiert auch die Politik, die in der Spähaffäre und der „Digitalen Agenda“ ihren digitalen Analphabetismus offen zur Schau stellt, ohne Hinweise darauf zu geben, dass zumindest im politischen Hintergrund mehr Verständnis für die neuen gesellschaftlichen Grundlagen vorhanden ist.

Es ist ein ungünstiges gesellschaftliches Klima, in dem nun junge Menschen mit wenig Publikum aber viel Ahnung versuchen, eine neue Grundlage für eine differenzierte Diskussion über den Stand der digitalen Dinge zu beginnen – allein dadurch, dass sie Quelltexte ernstnehmen, ihn für Laien lesen und sich dazu gemeinsame Gedanken machen. Man kann ihnen nur Glück wünschen, und mehr Zuschauer.

Diplom-Soziologe aus Jena via Bielefeld in Frankfurt am Main. Kümmert sich promovierend um die Bauernfamilien des 12. Jahrhunderts mit ihrem Problem der erstmaligen "Kommunikation unter Unbekannten" und ist heute Journalist. stefanschulz.com

2 Gedanken zu “Müssen wir noch einmal neu Lesen lernen?

  1. Vielleicht sollten diesen Artikel auch mal die Kollegen lesen, die regelmäßig Jubelartikel über selbstfahrende Autos verfassen. Die Luftfahrt weiß schon, wieso auch dort der Computer immer umgangen werden kann und auch bei eingeschaltetem Autopilot immer jemand danebensitzt.

    Wenn man mal „oben“ anfängt, wird zunächst nur das programmiert, was „denkbar“ ist. Dabei können gefährliche Lücken bleiben – Airbus bzw. dessen Kunden haben da anfangs einiges Lehrgeld bezahlen müssen, als die Computersteuerung eingeführt wurde. Und auch, wenn man aus den Vorfällen lernt, es kann immer noch ein ganz anderer passieren, an den bis dahin keiner gedacht hat.
    Danach kommt dann der Programmcode, der hoffentlich keine Fehler enthält – aber es ist schon bei einem mäßig komplexen System nicht mehr möglich, alle Varianten wirklich sauber zu testen.
    Und danach erst sind wir bei der Übersetzung in Maschinencode – mit den beschriebenen Mehrdeutigkeiten.
    Wie so etwas dann am Ende zusammenhängen kann, ist fast immer nur nach dem Auftreten eines Fehlers zu sehen. Eine der letzten gemeldeten Pannen bei Windows äußerte sich darin, daß die komplette Startsequenz in eine Endlosschleife geriet – und was war anscheinend der Auslöser? Ein Währungskennzeichen! Wie hat das einen Einfluß auf die Startsequenz?
    Beim Test des Updates hat das offensichtlich niemand vorhergesehen. Wegen solcher Effekte wäre es eigentlich notwendig, das gesamte System nach jeder Änderung komplett zu testen – es ist klar, daß das nicht realistisch ist. Und so gibt es eben eine nicht endende Abfolge von Updates und Patches.

  2. Ein komfortables Abrechnungsprogramm für Personalabrechnungen hat ca. so viele Programmcodezeilen wie die Bibel Textzeilen, vielleicht auch 10x so viele.
    Wer soll das lesen?
    Was genau lesen die jungen Leute? Den Quelltext eines Programms das ausdruckt „Hello World“? Sozusagen programmtechnische Haikus? Quelltext kann man nur dem (und zwar gaanz langsam) vorlesen, der diese Programmiersprache genauestens kennt.
    Allerdings: man kann tatsächlich Literatur im Quellcode verstecken. Denn über die individuelle Namensvergabe von Variablen hat man großen Einfluss auf den Klang der Programmzeilen.
    Als Programmierer darf man das aber weitgehend nicht, es dauert etwas länger, in Reimen oder anderen literarischen Formen zu programmieren.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.