Programmiersprache: Go 1.13 im August, Go 2 wirft seinen Schatten voraus
Das nächste Release der Programmiersprache wird auch Features enthalten, die eigentlich für Go 2.0 anvisiert waren.
![Programmiersprache: Go 1.13 erscheint wohl im August](https://heise.cloudimg.io/width/610/q85.png-lossy-85.webp-lossy-85.foil1/_www-heise-de_/imgs/18/2/7/0/4/0/0/0/go-ca51e0641cc1eaf5-5c6fd874d8768876.jpeg)
- Alexander Neumann
Während sich Go-Programmierer wohl früh im August über Version 1.13 der Programmiersprache freuen dürfen, wird durch einen Blogbeitrag deutlich, dass auch Arbeiten für Go 2.0 schon in der Entwicklung für aktuelle Go-Versionen von Bedeutung sein können. Die von Google-Angestellten 2009 vorgestellte Programmiersprache hatte bereits 2012 ihre Version 1.0 erreicht. Seitdem spielt auch die Entwicklung an Go 2.0 eine Rolle.
Denn Go 1.13, das nun als erste Beta vorliegt, umfasst wohl auch Sprachänderungen, die aus einer großen Liste an Vorschlägen für Go 2 stammen. Doch war es Ziel, diese erste Auswahl an Vorschlägen relativ klein und unumstritten zu halten. Auch sollte absehbar sein, dass sie eine relativ hohe Chance hatten, den Aufnahme- und Freigabeprozess zu überstehen. Die Änderungen mussten außerdem rückwärtskompatibel sein.
Kommen und Gehen
Die ursprüngliche Vorschlagsliste, bestehend aus allgemeinen Unicode-Identifiern, binären ganzzahligen Literalen, Trennzeichen für Zahlenliterale, vorzeichenbehafteten ganzzahligen Verschiebungszahlen, wurde anscheinend sowohl beschnitten als auch erweitert. Die allgemeinen Unicode-Identifikatoren haben es letztlich nicht geschafft, da es an einem rechtzeitig festgestellten Dokument zur Ausarbeitung mangelte. Erweitert wurde der Vorschlag für binäre Ganzzahlliterale. Er führte nun zu einer umfassenden Überarbeitung und Modernisierung der Zahlenliteralsyntax von Go.
Hinzugekommen ist schließlich auch der Go-2-Entwurf zur Fehlerprüfung, der teilweise akzeptiert wurde. Es heißt schlichtweg "try" und soll den Boilerplate eliminieren, der bei den Anweisungen typischerweise mit der Fehlerbehandlung in Go zu beobachten ist. Der Einsatz geschieht nach dem Prinzip func try(expr) (T1, T2, ... Tn), wobei expr meistens ein Funktionsaufruf ist, der n+1 Ergebniswerte der Typen T1, T2 ... Tn und error für den letzten Wert erzeugt. Wenn expr zu einem Einzelwert auswertet (n ist 0), muss dieser Wert vom Typ error sein und try gibt kein Ergebnis zurück. Der Aufruf von try mit einem Ausdruck, der keinen letzten Wert vom Typ error liefert, führt offenbar zu einem Kompilierfehler.
Baldiger Auftakt für Go 1.14
Als Nächstes wird sich das Go-Team auf auf die Version 1.14 konzentrieren. Hier geht es um Vorschläge wie eine integrierte Go-Fehlerprüfungsfunktion, die Möglichkeit, überlappende Schnittstellen einzubetten, den Weg, die Konvertierung von string(int) in go vet zu erkennen, sowie um die Einführung von Kryptoprinzipien. Die endgültige Entscheidung zur Aufnahme der Features wird wohl Anfang November 2019 getroffen.
Siehe dazu auf heise Developer:
(ane)