My Universe Logo

Bleifreie Schwalbe macht Bruchlandung

Posted by Jesco Freund at Nov. 7, 2011 12:22 p.m.

In Go: First Contact hatte ich mir einen schnelleren und vor allem zu echtem Multithreading fähigen Python-Interpreter gewünscht. Damals wurde ich auf Unladen Swallow aufmerksam gemacht, ein Projekt, das zu jener Zeit auch die Unterstützung Googles genoss. Doch offenbar hat man sich dort entschieden, sich eher auf Go zu konzentrieren – das Unladen Swallow Projekt wurde zur verwesenden Projektleiche.

Nicht unerheblich zum Scheitern dürften auch die hohen technischen Hürden beigetragen haben. So gelang es nicht, durch Einsatz eines JIT und eines Garbage Collectors sowie Verzicht auf den GIL ein besseres Laufzeitverhalten zu erreichen – im Gegenteil, viele Module liefen auf den Entwicklungsversionen des Unladen Swallow Codes langsamer. So verwundert es auch nicht, dass letztlich auch PEP 3146 auf der Halde toter PEPs beerdigt wurde.

Doch was bedeutet das Ende von Unladen Swallow? Für viele Python-Programme erst mal gar nichts. Der Standard-Interpreter (CPython) bietet für die meisten Einsatzzwecke ausreichende Geschwindigkeit. Die Python Standardbibliothek ist nach wie vor eine reiche und gute Sammlung nützlicher Programmbausteine. Auch parallele Programmierung ist mit Python nach wie vor möglich, nur ist man eben auf die Nutzung des multiprocessing-Moduls festgelegt, wenn tatsächlich parallele Ausführung von Programmteilen benötigt wird.

Für die Zukunft von Python bedeutet das aber, dass die Sprache einen Makel weiter mit sich herumschleppt: Es wird auf absehbare Zeit nicht möglich sein, Threads tatsächlich parallel auszuführen. Durch die steigende Verbreitung von SMP-Systemen ist das aber auf Dauer nicht akzeptabel, da es die Eignung von Python zu sehr einschränkt. In einigen Bereichen lässt sich das kompensieren (z. B. durch Ausweichen auf multiprocessing), in anderen aber nicht. So wünschenswert es aus meiner Sicht wäre, aber solange hier keine Lösung gefunden wird, ist Python für mich keine Allzweck-Waffe für den Programmier-Alltag.

No comments | Defined tags for this entry: Go, google, programming, python

Comments

No comments