/ Software-Entwicklung / Google bringt eine Python-Runtime in Go

Google bringt eine Python-Runtime in Go

Python-f791d13aea2a7017.jpeg
Gerfried Steube an Januar 5, 2017 - 2:23 pm in Software-Entwicklung

Das Projekt namens Grumpy übersetzt Python-Code nach Go. Grund dafür ist wohl Eigenbedarf für YouTube, was wiederum der Grund dafür sein dürfte, dass Grumpy ausschließlich auf Python 2.7 ausgelegt ist.

Google hat eine Alpha-Version eines Projekts zur Übersetzung von Python-Code in die vom Internetriesen entwickelte Programmiersprache Go vorgestellt. Unter dem leicht ironischen Namen Grumpy, was sich mit „mürrisch“ nach Art von Statler und Waldorf aus der Muppets-Show oder der Grumpy Cat übersetzen lässt, verbindet das Projekt eine Runtime und einen Transcompiler.

Der übersetzte Code läuft auf der Runtime und ist weitgehend zu CPython kompatibel. Auch die Struktur der Bibliotheken ist an die in C verfassten Referenzimplementierung angelehnt. Langfristig soll Grumpy als Drop-in Replacement für reinen Python-Code taugen.

Nebenläufigkeit als Vorteil gegenüber CPython

Der Fokus bei der Umsetzung liegt auf nebenläufigen Programmen. Gerade dabei ist das Team wohl bei der Optimierung anderer Runtimes immer wieder auf Grenzen gestoßen. Go ist von Hause aus auf Nebenläufigkeit und verteilte Dienste ausgelegt. Laut dem Blogbeitrag zeigt Grumpy vor allem bei einer wachsenden Zahl von Threads seine Stärken im Vergleich zu CPython.

Dass das Projekt auf Eigenbedarf Googles zurückgeht, zeigt sich auch daran, dass es auf Python 2.7 beschränkt ist. Daran soll sich wohl zunächst nichts ändern. Der Internetriese verwendet für CPython 2.7 für das YouTube-Frontend. Zum einen ist das Team dabei wohl immer wieder an Grenzen gestoßen, zum anderen läuft 2020 der Support für Python 2.7 aus.

Weitere Details finden sich im Beitrag auf Googles Open-Source-Blog und im GitHub-Repository. Letzteres enthält den Code unter Apache-2-Lizenz. Das Projekt besitzt aktuell Alphastatus, aber die meisten Sprachkonstrukte sollen bereits funktionieren. (rme)

Read more on: Source

Kommentare sind deaktiviert