/Programmiersprachen: Go 1.9 mit Typ Aliases freigegeben

Programmiersprachen: Go 1.9 mit Typ Aliases freigegeben


Die unter anderem in Docker und Kubernetes eingesetzte Sprache kann nach dem Update mit besserer Performance aufwarten und einige Neuerungen in der Standardbibliothek aufweisen. Außerdem lassen sich nun Aliasse für Typen vergeben.

Google hat Version 1.9 seiner Programmiersprache Go freigegeben. Die meiste Arbeit hat das Team wohl in die Verbesserung von Laufzeitumgebung und Tooling gesteckt, allerdings weist das Update auch Neuerungen in der Standardbibliothek und der Sprache auf. Als wichtigste Ergänzung sind wohl die Type Aliases zu nennen, die vor allem für Refactoring-Aufgaben nützlich sein können. Das Feature ermöglicht es, Aliasse für Typen zu vergeben, so wie etwa byte ein anderer Name für uint8 ist.

Um zu verhindern, dass es beim Zugriff mehrerer Threads auf den Cache zu Verlangsamungen kommt, hat mit sync.Map ein neuer Typ Einzug in die Standardbibliothek gehalten. Dort ist nun zudem ein Paket math/bits zu finden, dass Funktionen zum Zählen und Manipulieren von Bits für vorzeichenlose Integer-Werte bereithält und dafür wenn möglich spezielle CPU-Instruktionen verwendet. Im testing-Paket ist derweil in testing.T und testing.B eine neue Helper-Methode untergebracht, die die aufrufende Funktion als Testhelfer markiert, sodass man bei Bedarf die Stelle des Aufrufs statt der Testfunktion finden kann.

Was die Tools angeht, so ist der Go-Compiler beispielsweise in der Lage, die Funktionen eines Paktes parallel auf mehreren Kernen auszuführen, der Compiler schreibt den lexikalischen Umfang in die erstellten DWARF-Dateien, wenn entsprechende Flags gesetzt sind und komplexe Division ist auch in der gc toolchain kompatibel zu C99. Weitere Verbesserungen in der Garbage Collection, deren Details sich in der Dokumentation nachlesen lassen, sollen darüber hinaus zu einer besseren Leistungsfähigkeit führen.

Go wird bereits seit 2007 entwickelt, der Öffentlichkeit wurde die Sprache 2009 vorgestellt. Ihre Erfinder wollten das Beste aus unterschiedlichen Programmiersprachen vereinen, so ist Go etwa statisch typisiert wie Java und C++, weist den gut lesbaren Code dynamischer Sprachen auf und soll auch für Multiprozessorbetrieb und das Ausführen auf vernetzten Maschinen geeignet sein. Die Relevanz der Sprache zeigt sich unter anderem durch ihr Vorkommen in Projekten aus dem Containerisierungsumfeld wie Docker und Kubernetes, wobei letzteres ursprünglich auch aus dem Hause Google stammt.


(jul)