Python 3.9 Update
Am 5. Oktober diesen Jahres wurde die erste offizielle Version von Python 3.9 veröffentlicht. Jedes grössere Update der vielfältigen Programmiersprache bringt Verbesserungen und Neuerungen mit sich, welche die Anwendung und Performance von Python nachhaltig verbessern.
In neuen Versionen von Python werden oft neue Funktionen eingeführt, welche die manuelle Lösung von Aufgaben ersetzen sollen. Neben solchen Neuerungen werden aber ausserdem viele Verbesserungen an der CPython Runtime, dem eigentlichen Kern der Programmiersprache, vorgenommen. Diese “versteckten” Änderungen haben zum Ziel Effizienz und Performance zu erhöhen.
Mit Python 3.9 kommen neue Funktionen zur einfacheren Manipulation von Strings und Dictionaries hinzu. Ausserdem wurden die Möglichkeiten zum Einsatz von Dekoratoren und sogenannten Type Hints erweitert und verbessert. Neu sind ebenfalls keine Third-Party Bibliotheken mehr nötig, um mit Zeitzonen arbeiten zu können.
Beispiel für die Verwendung von Zeitzonen ohne Third-Party Bibliotheken:

Die Entfernung von Präfixen und Suffixen in Strings konnte bisher nur manuell und mit hohem Aufwand bewerkstelligt werden und war deshalb eine mühsame Arbeit. Durch entsprechende neue Funktionen in Python 3.9 kann dieser Aufwand nun umgangen und damit wertvolle Zeit gespart werden.
Beispiel für die Entfernung von Prä- und Suffixen:

Des Weiteren kommen mit Python 3.9 zwei neue Operatoren für den Dictionary Datentypen hinzu. Mit den beiden neuen Operatoren können zwei Dictionaries zusammengeführt oder aktualisiert werden. Auch diese Operationen mussten zuvor manuell und aufwändig durchgeführt werden.
Beispiel der neuen Operatoren für Dictionaries:

Mit einem Decorator kann das Verhalten einer Funktion beeinflusst werden, ohne diese permanent zu verändern. Dies ist beispielsweise von Vorteil, wenn eine Funktion für eine spezifische Situation angepasst werden soll. Für die Expression des Decorators gab es bis anhin klare Restriktionen, die mit dem Update auf Version 3.9 teilweise aufgehoben wurden und sich somit noch mehr Möglichkeiten in dessen Anwendung eröffnen.
Type Hints, also die Datentypkennzeichnung von Variabeln und Funktionen, dienen zur Sicherstellung von sauberem und beständigem Code. In Python 3.9 sind neu neben den normalen Variabeln auch Datenkollektion wie Listen oder Dictionaries kompatibel mit Type Hints. Bisher mussten dafür externe Bibliotheken genutzt werden. Ausserdem können flexible Annotationen für Funktionen und Variabeln verwendet werden. Beispielsweise verrät der Ausdruck Variable[int, ctype(“char”)], dass die Integer Variable als Char Type in der Programmiersprache C interpretiert werden soll. Diese Annotationen dienen zur besseren Übersicht durch Linter und werden von Python nicht wirklich verarbeitet und durchgesetzt.
Beispiel für die Verwendung von Type Hints in Funktionen:

Für die Version 3.9 wurden ebenfalls viele Änderungen im Kern von Python vorgenommen. Der Parser ist ein Kernelement des Python Interpreters. Er teilt den geschriebenen Quellcode in einen sogenannten Syntaxbaum auf, was für die weitere Ausführung wichtig ist. Bisher wurde der LL(1) Parser verwendet, der sich durch seinen simplen Aufbau auszeichnet. Der Nachteil des simplen Aufbaus kommt bei Hard Cases (Spezialfällen) zum Vorschein, die mit mehr Aufwand umgangen werden müssen. Die Version 3.9 verwendet neu einen leistungsstärkeren PEG Parser, der die Nachteile des LL(1) Parser aufhebt und den selben Syntaxbaum erstellt.
Weitere Neuerungen in Python 3.9 betreffen die Art und Weise, wie Funktionen abgerufen werden. Bisher wurde in den meisten Fällen der tp_call Standard verwendet, da er genug flexibel für alle Fälle ist. Der tp_call bietet allerdings sehr schlechte Performance, was sich in der Ausführungszeit von Funktionen widerspiegelt. Das in Python 3.8 eingeführte vectorcall protocol ist dagegen viel schneller und wird in Version 3.9 standardmässig bei Funktionen wie tuple, set, list, dict, range, etc. eingesetzt.
Die Neuerungen von Python 3.8 auf 3.9 erleichtern den Entwicklern bei soXes ihre Arbeit und machen unseren Code noch effizienter. Aspekte wie der neue Parser oder der vermehrte Einsatz des vectorcall protocols gestalten die Entwicklung von Python Programme noch effektiver und tragen zur Verbesserung der Performance bei. Doch bevor das volle Potential der Neuerungen ausgenutzt werden kann wird es wie bei jedem grösseren Versionsupdate auch bei Python 3.9 eine Adaptionsphase geben, in der beispielsweise externe Bibliotheken aktualisiert werden müssen. soXes arbeitet aber bereits jetzt mit den Neuerungen, um sie so bald als möglich effektiv einsetzen zu können.