PEP 572 und der Rückzug des BDFL
by Viktor Garske on July 13, 2018, 2:09 p.m., with 4 commentsDie Programmiersprache Python sollte den meisten technisch versierten Lesern, die bereits einige Erfahrungen mit Programmierung sammeln konnten, bekannt sein. So setzt diese Sprache auf Einfachheit und Lesbarkeit und greift seit über 20 Jahren zu teils kontroversen Mitteln wie einem Zwang zur Indentation mit Leerzeichen (oder auch Tabs) für Blöcke und (mehr oder weniger) dem Verzicht auf einem klassischen Trennzeichen wie dem Semikolon.
Nicht nur, dass bereits viele Programmierer Python aufgrund dieser Charastika verachten, gab es aufgrund eines Änderungsvorschlags intern viele Proteste. Dies hat im Endeffekt nun dazu geführt, dass der Python-Gründer van Rossum von seiner Leitungsfunktion zurückgetreten ist - aber eins nach dem anderen.
PEP 572
Programmiersprachen werden ebenso wie die durch sie ermöglichte Software laufend weiterentwickelt. Während bei z.B. C++ in bestimmten Abständen neue Versionen wie C++17 veröffentlicht werden, läuft dies bei Python in ähnlicher Weise. Grundlage hierfür bilden die Python Enhancement Proposals, kurz PEP, die als Spezifikationen eine Diskussionsgrundlage für z.B. mögliche neue Features schaffen. Aber auch Empfehlungen wie z.B. die Code style guide in PEP 8 werden hierüber verbreitet.
PEP 572 wird mit "Assignment Expressions" betitelt und beschreibt eine neue Möglichkeit, bestimmte Ausdrücke als Variable für einen untergeordneten Scope zuzuordnen - ich nenne es quasi "with statements auf Stereoide" (stimmt nicht ganz, with statements haben einen anderen Zweck). Ein Codebeispiel:
ohne PEP 572:
env_base = os.environ.get("PYTHONUSERBASE", None)
if env_base:
return env_base
mit PEP 572:
if env_base := os.environ.get("PYTHONUSERBASE", None):
return env_base
Der Code wird damit kürzer, aber bleiben die "Maxime" der Python-Sprache (Einfachheit, Lesbarkeit, ...) erhalten? Diese Entscheidung überlasse ich euch. Mir selber würden zwar auf Anhieb einige Anwendungsbereiche einfallen, es wären aber ähnliche, wo ich jetzt schon zu ternären Operationen greife.
Rückzug
Am 11. Juli 2018 wurde die PEP 572 und ihr Vorschlag akzeptiert. Überraschend hat sich gestern Guido van Rossum in einer E-Mail mit dem Titel "Transfer of power" in der Mailing List gemeldet.
Er möchte laut Mail nicht mehr für eine PEP so intensiv kämpfen müssen, die am Ende trotzdem zu so viel Verachtung führt. Aus diesem Grund zieht er sich permanent aus dem Entscheidungsprozess zurück und gibt somit das erstmals für ihn eingeführte Amt (so die allg. Annahme) des Wohlwollenden Diktators auf Lebenszeit, das mittlerweile in viele andere Open Source-Projekte adaptiert wurde, ab. Der BDFL ist das Oberhaupt eines Projektes und hat dort immer das letzte Wort. Zurückzuführen ist dies auch auf gesundheitliche Gründe, so die Mail. Für die nächste Zeit werde er dennoch als Core Developer aktiv sein. Nun benötige er jedenfalls eine Pause.
Die Projektführung ist jetzt vakant, da van Rossum keinen Nachfolger benannt und diese Entscheidung an das Projekt übergeben hat. Er habe jedoch hinsichtlich des Tagesgeschäfts keine großartigen Sorgen um die Nachfolge.
Am Ende seiner Mail verweist der Entwickler, der Python 1991 veröffentlicht hat, auf den Code of Conduct als Grundsatz. Wer diesen "nicht mag", solle das Projekt freiwillig verlassen.
Aus meiner Sicht ist es nun wichtig, dass Python die Frage um die Projektleitung zeitnah löst. Guido van Rossum wünsche ich auf diesem Wege alles Gute und schätze seine bisherige Arbeit.
Wissenswertes
Python entstand als ABC-Nachfolger und kleines Projekt für die Weihnachtstage im Dezember 1989 und ist heute - je nach Betrachtungsweise - eine der wichtigsten und nachgefragtesten Programmiersprachen. Aktuell in Version 3.7 und der auslaufenden Version 2.7 erhältlich, ist es Grundlage für viele wichtige Programme.
Guido van Rossum ist seit 2013 bei Dropbox angestellt und war vorher von 2005 bis 2012 bei Google tätig.
Viktor Garske
Viktor Garske ist der Hauptautor des Blogs und schreibt gerne über Technologie, Panorama sowie Tipps & Tricks.