Barbara Liskov: Neuerungen, die jeder immer schon gekannt hat

Es gibt den Spruch in verschiedensten Varianten, aber hinaus läuft es immer ungefähr auf das hier: dass Neuerungen immer zwei Phasen habe, eine, in der alle sagen “Das kann doch gar nicht funktionieren!” und die zweite, in der alle immer schon gewusst haben, dass es anders gar nicht geht.

Spaghetti oder Struktur?

Neuerungen, die inzwischen jeder kennt: Barbara Liskov beim HLF 2016

Barbara Liskov beim HLF 2016

Davon konnte Barbara Liskov, Turing-Preisträgerin 2008 und zweite Informatik-Promovendin in den Vereinigten Staaten, heute (Freitag) bei ihrem Vortrag beim Heidelberg Laureate Forum (zu Gast an jenem Tag im Ausbildungszentrum der SAP in St. Leon Rot) erzählen.

Liskovs Hauptthema sind die Strukturen von Programmen. In ihrer Studienzeit, sagt sie, habe sie noch Programme geschrieben, in denen alles im wesentlichen hintereinander ablief, eine lange Reihe von Anweisungen plus einige Sprünge hin und her. Insbesondere die Sprünge, sogenannte GOTO-Anweisungen, die einen Sprung in eine andere Programmzeile bewirken, hätten die Struktur damals höllisch kompliziert gemacht: die Struktur habe einem Teller Spaghetti geähnelt.

Go to statement considered harmful

Liskov erzählt anhand verschiedener Fachartikel, wann sich diese Haltung geändert hat. Edgar Dijkstras “Go To Statement Considered Harmful” im Jahre 1968 sei damals noch durchaus kontrovers gewesen. Hier verortet Liskov den Anfang der Entwicklung hin zu einer Modularität mit einzelnen Programmteilen, die voneinander nur das wissen, was beim Programmieren explizit zum Informationsaustausch freigegeben und vorgesehen ist, und ihre Interna brav für sich behalten. Ein weiterer Teil der Systematik hing mit Datentypen zusammen – mit dem Übergang von Programmiersprachen, die nur elementare Datentypen wie bestimmte Sorten von Strings, ganzen Zahlen und Fließkommazahlen kennen, zu solchen (“Objektorientierung“), in denen Datentypen für die zu lösenden Probleme maßgeschneidert werden können.

Auf dem Weg zu diesen Neuerungen waren allerdings noch einige Denkmuster zu ändern. An einer der Denkmusteränderungen war Liskov namensgebend beteiligt: dem Liskovschen Substitutionsprinzip, das ein wichtiges Kriterium dafür festlegt, wie (maßgeschneiderte oder andere) Datentypen ihre Eigenschaften vererben. Wir nutzen die Vererbung in natürlicher Weise in unserem Denken; wenn wir etwa an Paul, einen bestimmten Menschen, denken, dann wissen wir, dass Paul all jene Eigenschaften hat, die Menschen ganz allgemein haben (um das Lieblingsbeispiel der Philosophen zu wählen wissen wir dadurch beispielsweise, dass Paul sterblich ist).

Barbara Liskov beim HLF 2016. Picture/Credit: Christian Flemming/HLFF

Barbara Liskov beim HLF 2016. Picture/Credit: Christian Flemming/HLFF

…das weiß doch jeder!

Als Liskov 2008 für ihre Arbeiten den Turing Award bekam, folgte schnell Phase 2. In ihren (übersetzten) Worten: “Auf dem Internet sind, wie Sie wissen, nicht alle Kommentare nett.” Eine Reihe von Kommentaren lauteten dann auch sinngemäß: Wieso Liskov denn den Turing-Preis bekäme, all diese Dinge wisse doch sowieso jeder? Wie Liskov trocken bemerkte, waren solche Kommentare ein riesiges Kompliment. Und ihr sei erst im Zusammenhang mit dem Turing-Preis vollständig klar geworden, wie verbreitet die Ideen inzwischen waren, die Liskov und ihre Kollegen da entwickelt hatten.