Google hat eine Vorschau auf die neue Version der Programmiersprache Go veröffentlicht. Version 1.18 fügt Funktionalität für „generische“ Programmierung mit sogenannten „parametrisierten“ Typen hinzu.
Nach eigenen Worten ist es die wichtigste und größte Änderung an der Programmiersprache seit der Veröffentlichung von Go Version 1. Die Idee hinter Generika ist, dass sie nun Funktionalitäten zur Darstellung von Funktionen und Datenstrukturen durch Modifikation der Typen ermöglichen. Dies schließt die 'Allgemeinheit' aus, die durch die Definition eines Schnittstellentyps als Möglichkeit zur Abstraktion der tatsächlichen Daten, die in eine Funktion gebracht werden, zulässig ist.
Google weist darauf hin, dass Go-Entwickler erkennen sollten, dass die Funktionalität zweifellos zu neuen Fehlern führen wird. Sie sollten daher mit Vorsicht an diese „Generika“ herangehen.
Andere Funktionen in Go 1.18 Beta
Zusätzlich zu den oben genannten Funktionen bietet die neue Vorschau auch integrierte Unterstützung für das Schreiben von Fuzzing-basierten Tests. Diese Tests können automatisch Eingaben finden, die Programme zum Absturz bringen oder ungültige Antworten zurückgeben. Go 1.18 Beta bietet auch einen neuen 'Go-Arbeitsbereichsmodus'. Dadurch können Programmierer mit mehreren Go-Modulen gleichzeitig arbeiten. Dies ist laut Google besonders nützlich für große Projekte.
Darüber hinaus fügt Version 1.18 Beta Funktionalität mit einem erweiterten Befehl go version -m hinzu. Dieser Befehl speichert jetzt Details als Compiler-Flags. Mit dem Befehl debug.ReadBuildInfo kann ein Programm nun seine eigenen Build-Details abfragen.
Außerdem wurden in der Vorschau mehr registerbasierte Anrufkonventionen hinzugefügt, die seit Go 1.17 verfügbar sind. Wo diese Funktionalität in der Vorgängerversion nur zur Beschleunigung von Go-Code auf x86- und x64-Systemen geeignet war, ist sie nun auch für ARM64- und PPC64-basierte Systeme geeignet. Dieser soll für bis zu 20 Prozent mehr Geschwindigkeit sorgen.