Programmiersprachen: Erste Pläne zu Go 2 veröffentlicht

Russ Cox hat auf der GopherCon über Pläne für den Nachfolger von Go informiert und den Inhalt als Blogbeitrag veröffentlicht. Derzeit sammelt das Team Ideen; bis zum Release von Go 2.0 könnten durchaus noch fünf Jahre ins Land ziehen.

In Pocket speichern vorlesen Druckansicht 24 Kommentare lesen
Programmiersprachen: Erste Ideen zu Go 2 veröffentlicht
Lesezeit: 3 Min.
Von
  • Rainald Menge-Sonnentag

Das Team hinter Go plant eine zweite Hauptversion der Programmiersprache. Dazu hat Russ Cox einen Vortrag auf der GopherCon 2017 gehalten, die vom 13. bis 15. Juli in Denver, Colorado stattfindet. Auf dem Go-Blog hat er den Inhalt der Session zusammengefasst. Go 2 soll vor allem besser skalieren und Optimierungen vornehmen.

Einige Änderungen lassen sich nicht im derzeitigen Go umsetzen, da sonst nicht mehr alle Programme lauffähig wären. So beschreibt Cox, dass das Team in den ersten fünf Jahren der Go-Entwicklung nahezu jede Woche die Programmiersprache so geändert habe, dass dadurch zahlreiche Programme nicht mehr liefen. Mit der Veröffentlichung von Go Version 1 im März 2012 sollte die Sprache stabil und damit bereit für den Einsatz in produktiven Umgebungen sein und bleiben.

Cox geht mit seinen aktuellen Berechnungen von weltweit einer halbe Millionen Go-Entwicklern aus. Für den Erfolg von Go 2 sei wichtig, sie alle mit ins Boot zu holen. Sie und ihr Sourcecode seien gleichermaßen für den Erfolg für Go verantwortlich, setzten aber auch die Grenzen des Machbaren. Alte Gewohnheiten über Bord zu werfen, um neue zu lernen, sei nur dann sinnvoll, wenn sich der Aufwand lohne. Außerdem dürfe Go 2 nicht das Ökosystem spalten, sondern es müssten auch gemischte Programme funktionieren, bei denen in Go 1 geschriebene Pakete Go 2 Packages importieren – oder umgekehrt.

Das ursprüngliche Go entstand in den ersten Jahren in einem kleinen Team aus fünf Entwicklern. Inzwischen ist die Sprache Open Source und wird in der Community in klar definierten Prozessen gestaltet. Damit sind Änderungen grundsätzlich nicht mehr so schnell möglich. Cox legt in seinem Vortrag genau dar, wie die Prozesse ablaufen und bringt dazu einige praktische Beispiele.

Cox stellt den Prozess dar, über den Änderungen in die Programmiersprache einfließen.

(Bild: golang.org)

Der Beitrag zeigt einige Probleme in Go 1, die Go 2 beheben soll. Dazu gehört unter anderem, dass es aufgrund des Shared Memory von Goroutines zu Data Races und dadurch wiederum zu Abstürzen kommen kann. Allerdings seien Änderungen an der Programmiersprache selbst nicht immer der beste Weg, sondern teilweise Anpassungen in den Bibliotheken sinnvoller: "Es wird auch Änderungen an der Sprache geben, aber nicht alle Probleme lassen sich am besten in der Sprache lösen", meint Cox.

Für den Übergang zu Go 2 schlägt Cox vor, zunächst die rückwärtskompatiblen Teile der Programmiersprache nach und nach in den Go-1-Release-Plan mit einzubeziehen. Sobald der Teil erledigt ist, wendet sich das Team den Änderungen zu, die nicht mehr rückwärtskompatibel sind. Das könnte laut dem Beitrag etwa zum Release von von Go 1.20 sein. Derzeit befindet sich Go 1.9 auf der Zielgeraden, und der Release-Zyklus der Programmiersprache sieht zwei Versionen pro Jahr vor. Das 1.20-Release ist folglich im Februar 2023 zu erwarten. Falls keine Änderungen notwendig sind, die zu Inkompatibilitäten führen, könnte das Team schlicht Go 1.20 zu Go 2.0 erklären.

Jedenfalls starten die Gespräche und Planungen für Go 2.0 ab sofort. Sie sollen komplett in offenen Foren, Issue Trackers und Mailing-Listen stattfinden. Go-Entwickler sollen der Community ihre Wünsche und Anforderungen mitteilen. Dazu verweist der Beitrag auf eine Wiki-Seite mit Erfahrungsberichten. (rme)