Google hat Go 1.7 veröffentlicht

Go 1.7: An der Sprache ändert sich wenig, dafür am Compiler

Tom Wießeckel

© Shutterstock / Saran Poroong

Google, genauer gesagt das Team hinter der C-Alternative Go, hat Go 1.7 veröffentlicht. Auch wenn es wenig Änderungen an der Sprache gibt, stecken dennoch viele Neuerungen im aktuellen Release.

Neben einem neuen Port für IBMs z-Systeme sowie ein neues Context-Package gibt es vor allem einige Verbesserungen im Compiler zu vermelden – vor allem das SSA-basierte Compiler-Backend findet in der Community Beachtung, kommt es doch mit zahlreichen Tools, die es Entwicklern ermöglichen, direkt damit zu interagieren.

Go 1.7

Ein Jahr, nachdem Googles Go C über Bord geworfen und den Compiler direkt in Go implementiert hat, hat das Team nun Go 1.7 veröffentlicht. Bemerkenswert an diesem Release ist vor allem die Tatsache, dass es kaum Änderungen an der Sprache selbst gibt – dafür wurde unter der Haube an einigen Schrauben gedreht, die sich vor allem am Compiler-Backend bemerkbar machen, dass nun der Static-Single-Assignment-Form folgt, die das letzte Jahr über entwickelt wurde.

Der Vorteil des neuen Backends liegt vor allem darin, dass er in der Lage ist, fortgeschrittene Optimierungen wie die Bounds Check Elimination in kürzerer Zeit durchzuführen. Aktuell steht der Compiler, bei dem das Team einen Performance-Boost zwischen fünf und 35 Prozent beobachten konnte, nur für die amd64-Architektur zur Verfügung. Das Team arbeitet jedoch daran, in künftigen Releases weitere Backends zu SSA zu konvertieren.

Einen ersten Überblick über die Funktionsweise von SSA und die für Entwickler zur Verfügung stehenden Tools bietet Paul Smiths Blogpost, in dem er sich ausführlich mit dem Thema auseinandergesetzt hat.

Weitere Neuerungen

Im Frontend des Compilers wurde auf ein kompakteres Export-Format gesetzt, das wesentlich effizienter verarbeitet werden kann. Dadurch wird die für das Compiling notwendige Zeit verkürzt. Außerdem sollten Entwickler eine Verkleinerung der Binaries von etwa 20 bis 30 Prozent bemerken.

Durch Arbeiten am Garbage Collector sowie Optimierungen an der Standardbibliothek sollten in Go geschriebene Programme in Go 1.7 außerdem etwas schneller ausgeführt werden.

Eine weitere wichtige Änderung betrifft das Package Context, das nun vom x/net-Repository als context in die Standardbibliothek integriert wurde. Der Support für context wurde außerdem auf die Packages net, net/http und os/exec ausgeweitet.

Gute Neuigkeiten gibt es auch im Bereich des Testings und der Benchmark; die Zauberformel lautet hierarchische Tests und Benchmarks. In Go 1.7 ist es Entwicklern nun möglich, Subtests und Sub-Benchmarks zu definieren, ohne dafür eigene Funktionen schreiben zu müssen.

Alle weiteren Neuerungen rund um Go 1.7 findet man in den Release Notes. Go 1.7 steht ab sofort auf der Projektseite zum Download zur Verfügung.

Verwandte Themen:

Geschrieben von
Tom Wießeckel
Tom Wießeckel
Thomas Wießeckel war von 2009 bis 2017 Redakteur bei Software & Support Media. Seine Themengebiete umfassen Webtechnologien und -Entwicklung sowie die Bereiche Mobile Development und Open Source. Er arbeitete an regelmäßig erscheinenden Magazinen wie dem PHP Magazin mit und hat das Magazin Mobile Technology ins Leben gerufen. Vor seiner Zeit als Redakteur hat er als freier PHP- und Frontend-Entwickler gearbeitet.
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.