Was Python eigentlich ist
Warum Python entwickelt wurde
Guido van Rossum hatte eine Sprache, die er mochte und mit der er nicht genug machen konnte.
Er hatte am CWI, einem Forschungsinstitut in Amsterdam, an einer Lehrsprache namens ABC gearbeitet. ABC legte großen Wert auf verständliche Programme. Das schätzte und übernahm er. Die Sprache ließ sich aber auch schwer erweitern, nur umständlich mit den umgebenden Unix-Systemen verbinden und war für manche seiner Aufgaben zu langsam. Unix ist eine Familie von Betriebssystemen, die moderne Systeme wie Linux und macOS geprägt hat. Ein Betriebssystem ist die Software, die einen Computer verwaltet und Programmen Zugriff auf seine Dateien und Hardware ermöglicht.
ABC verlangte außerdem, dass man seinen eigenen eingebauten Editor benutzte. Das machte die Sprache für sich genommen angenehm, aber schwer mit den Werkzeugen kombinierbar, die Programmierer bereits auf ihren Rechnern hatten.
1989 arbeitete er an einem anderen CWI-Projekt, dem Betriebssystem Amoeba, und brauchte eine bessere Möglichkeit, dort Arbeit zu automatisieren. In den Weihnachtsferien jenes Dezembers begann er, eine Sprache zu entwickeln, die den lesbaren Stil von ABC mit dem Zugriff auf andere Systeme verband.
Dieses Ferienprojekt war der Anfang jahrzehntelanger Arbeit, die schließlich eine viel größere Gemeinschaft mittrug.
Was er verbessern wollte
Er wollte einen Nachfolger von ABC, der Programmierer ansprach, die bereits mit Unix und C arbeiteten. C ist eine ältere Sprache für Betriebssysteme und andere Software, die eng mit dem Rechner zusammenarbeitet. Programme sollten für Menschen leichter lesbar und schreibbar werden, ohne vom Rest des Computers abgeschnitten zu sein.
Drei Entscheidungen von Python ergeben viel mehr Sinn, wenn man sie als Antworten auf ABC liest.
ABC ließ sich schwer erweitern. Deshalb wurde Python so entwickelt, dass es erweiterbar ist und in C geschriebenen Code aufrufen kann. Die heutige Form davon hast du in der letzten Lektion kennengelernt: Pakete, die auf schnellere Sprachen zugreifen. Das Ökosystem ist viel größer, als es 1989 irgendjemand hätte planen können. Der Gedanke, Verbindungen nach außen zu schaffen, statt sich abzuschotten, war aber von Anfang an da.
ABC war für manche praktischen Aufgaben zu langsam. Deshalb sollte Python für gewöhnliche Aufgaben schnell genug sein und die aufwendige Arbeit C überlassen. Das ist ein Kompromiss und kein Trick. Wir sehen ihn uns später ehrlich an. Python sollte in praktischen Systemen bestehen können, statt ein Lehrexperiment zu bleiben.
ABC bestand auf seinem eigenen Editor. Python arbeitete deshalb mit den Dateien, Editoren und Systemwerkzeugen, die die Menschen bereits hatten. Eine Sprache lässt sich viel leichter übernehmen, wenn sie sich in den restlichen Arbeitsalltag einfügt.
Nicht die Schlange
Der Name hat nichts mit der Schlange zu tun. Er stammt von Monty Python’s Flying Circus, einer britischen Comedyserie, die 1969 erstmals ausgestrahlt wurde und aus kurzen, fröhlich absurden Sketchen bestand. Van Rossum war ein Fan und wollte einen kurzen, etwas rätselhaften Namen.
Du musst keine Minute davon gesehen haben, denn du bist der Serie bereits begegnet. Der Spam-Sketch spielt in einem Café, in dem sich fast jedes Gericht als Spam-haltig herausstellt. Spam ist Dosenfleisch. Das Wort wird so oft wiederholt, bis es das Gespräch verdrängt. Daher hat der Spam in deinem E-Mail-Ordner seinen Namen.
Deshalb verwendet auch Pythons eigene Dokumentation immer wieder spam und eggs, wenn ein Beispiel ein Wort ohne besondere Bedeutung braucht. Andere Sprachen verwenden foo und bar. Pythons Variante wird dir in der offiziellen Dokumentation begegnen, solange du die Sprache verwendest.
Und deshalb heißt der Assistent auf dieser Website Monty.
Lesbarkeit, die du sehen kannst
Eine dieser Entscheidungen ist in jedem jemals geschriebenen Python-Programm sichtbar. Vergleiche zwei Möglichkeiten, zu zeigen, dass zwei Aktionen zu einer Bedingung gehören. Beide bedeuten: Wenn der Bericht fertig ist, sende ihn und halte den Zeitpunkt fest:
If the report is ready:
send it
record the time
If the report is ready { send it; record the time; }
Die erste nutzt die Position, die zweite Satzzeichen. Python hat die erste zu einer Sprachregel gemacht statt zu einer Geschmacksfrage. Einrückung bezeichnet den Leerraum am Anfang einer Zeile. In Python ist er keine Verzierung. Daran erkennt die Sprache, was zusammengehört.
Van Rossums Argument war, dass dies das Schriftbild übersichtlicher macht. Wenn man weniger Freiheit lässt, den Aufbau unterschiedlich anzuordnen, sehen Programme verschiedener Autoren ähnlicher aus.
Das verspricht nicht, dass jedes Python-Programm gut lesbar ist. Schlechte Namen, ausufernde Abschnitte und unerklärte Annahmen machen jeder Sprache zu schaffen. Die Regel gibt dir einen einheitlichen Aufbau. Der Rest bleibt Arbeit.
Entscheidungen, keine Magie
Ich mag diese Entstehungsgeschichte, weil an ihr nichts Geheimnisvolles ist. Van Rossum nahm eine Sprache, die er respektierte, behielt das, was er schätzte, änderte das, was ihn behinderte, und sorgte dafür, dass das Ergebnis mit seiner Umgebung zusammenarbeiten konnte.
Nichts davon war unausweichlich. Die erste Version war viel kleiner als das heutige Python. Der Schwerpunkt auf Lesbarkeit und Verbindungen zu anderer Software ist aber noch erkennbar. Danach bekamen andere Menschen die Sprache in die Hand. Das ist eine ganz andere Geschichte.
Mehr erfahren
Guido van Rossums Vorwort über Pythons Ursprung ist ein 1996 veröffentlichter Bericht aus erster Hand. Er ist sowohl wegen seiner eigenen Erklärung interessant als auch wegen des Einblicks in den Zeitpunkt, an dem er ihn schrieb. Freiwillige Lektüre auf Englisch.