Ready, steady, Go 1.5

Go 1.5 ist final – und nimmt Abschied von C
Kommentare

Es ist so weit: Die systemnahe Programmiersprache Go wurde in Version 1.5 veröffentlicht. Das Release stellt einen großen Meilenstein dar; nicht zuletzt, weil Google C über Bord wirft und es durch Go ersetzt.

Die seit 2007 von Google entwickelte Programmiersprache Go hat ein wichtiges Update spendiert bekommen. Neben zahlreichen Verbesserungen und Neuerungen hat man sich beim Suchmaschinengiganten dazu entschlossen, C über Bord zu werfen. Grund genug, einen genaueren Blick auf das Release zu werfen.

Go 1.5: C adé

Bereits im Januar dieses Jahres hat Google im Go 1.5 Bootstrap Plan durchblicken lassen, C aus Go zu verbannen. Die C-Compiler 5c, 6c, 8c und 9c waren zu diesem Zeitpunkt bereits aus dem Source entfernt worden – lediglich eine Konvertierung der noch vorhandenen in C entwickelten Komponenten nach Go stand auf dem Plan. Dabei handelte es sich um die Go Compiler, die Assembler, die Linker und cmd/dist. Dieser Schritt wurde mit dem aktuellen Release nun vollzogen; lediglich ein wenig Assembler ist hier und da noch im Code zu finden.

Das Problem, dass eine funktionierende Go-Toolchain beim Wegfall von C erstellt werden kann, löst das Team durch einen kleinen Kniff: So wird für den Build-Prozess von Go 1.5 eine Installation von Go 1.4 benötigt, mit der dann Go 1.5 kompiliert wird.

Doch das ist natürlich nicht die einzige Neuerung.

Weitere Neuerungen in Go

Eine weitere wichtige Neuerung betrifft die Benennung der Tools, die zwar vom Switch von C zu Go unabhängig sind, dennoch dadurch inspiriert wurden. Darüber hinaus wurde die Reihenfolge geändert, in der goroutines gescheduled werden. Auch wenn das eigentlich keine weiteren Auswirkungen haben dürfte, könnte es bei Programmen, die von der Reihenfolge der Abarbeitung abhängen, dazu führen, dass die Applikation ihren Dienst verweigert.

Ein weiterer Breaking Change betrifft die Entwicklung Multithread-Entwicklung. Wurde der Default für die Threads bisher auf 1 gesetzt, nimmt der Wert ab sofort die Anzahl der verfügbaren Prozessorkerne an. Ist eine Applikation nicht darauf ausgelegt, kann das unter Umständen zu unerwarteten Abbrüchen führen. Fehler dieser Art können durch Anpassung des Parameters GOMAXPROCS unterbunden werden.

Außerdem wurde der Garbage Collector einem kompletten Rewrite unterzogen, wodurch die Latenz im Schnitt deutlich unter 10 Millisekunden bleiben soll. Details dazu bietet ein Talk von Rick Hudson, der die Neuerungen des Garbage Collectors auf der GopherCon 2015 in Denver genauer unter die Lupe genommen hat.

Stellen Sie Ihre Fragen zu diesen oder anderen Themen unseren entwickler.de-Lesern oder beantworten Sie Fragen der anderen Leser.

Tools & More

Auch die Tools haben Updates spendiert bekommen:

The release also includes improvements to the developer tools. Support for „internal“ packages permits sharing implementation details between packages. Experimental support for „vendoring“ external dependencies is a step toward a standard mechanism for managing dependencies in Go programs. The new „go tool trace“ command enables the visualisation of  program traces generated by new tracing infrastructure in the runtime. The new „go doc“ command provides an improved command-line interface for viewing Go package documentation.

Einen detaillierten Überblick über diese Änderungen sowie weitere Neuerungen bieten die offizielle Ankündigung sowie die Go 1.5 Release Notes. Die Packages stehen darüber hinaus auf der offiziellen Website golang.org zum Download zur Verfügung.

Go for it!

Seit 2007 entwickelt Google am C-Konkurrenten Go, dessen Syntax dabei weitestgehend am Vorbild C angelehnt ist. Das Ziel ist es, in Go Effizienz und Sicherheit einer statisch typisierten und kompilierten Sprache mit den Vorteilen einer interpretierten Hochsprache, wie beispielsweise die Speicherverwaltung durch einen Garbage Collector, zu vereinen.

Go bietet darüber hinaus Closures, Reflexions, Objektorientierung ohne Klassen mittels Intefaces, Support für die Entwicklung auf Multicore-CPUs sowie Mixins.

 

 

Aufmacherbild: young sad woman behind wet window von Shutterstock / Urheberrecht: Elena Yakusheva

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -