iX 5/2018
S. 116
Praxis
Programmiersprachen
Aufmacherbild

Go-Tutorial, Teil 1: Grundlagen und Struktur

Get set, go!

Googles Programmiersprache Go orientiert sich syntaktisch zwar an C, soll aber durch die Unterstützung von Nebenläufigkeit auch besser für den Einsatz in skalierbaren Netzen und Cloud-Umgebungen geeignet sein.

Es war einmal eine Sprache namens C. War? Nein, natürlich ist sie weiterhin – und zwar erfolgreich. Doch im Jahr 2007 dachten Ken Thompson, Rob Pike und Robert Griesemer darüber nach, wie ein moderner C-Nachfolger auszusehen hätte. Heraus kam die Sprache Go.

Die Ähnlichkeit dieser jungen Sprache mit ihrem Ahn kommt nicht von ungefähr. So entwickelte Ken Thompson mit B die Vorgängersprache zu C, gemeinsam mit Rob Pike war er als Entwickler der Bell Labs im Unix-Team tätig. Auch Robert Griesemers Sprachen sind eher der C-Familie zuzuordnen. Er wirkte an der Java HotSpotVM sowie Googles V8-JavaScript-Engine mit.

Das Ziel war es, eine Sprache mit einfacheren Strukturen und Schlüsselwörtern für eine bessere Lesbarkeit zu erzeugen. Auf Pointer sollte verzichtet und der Speicher automatisch verwaltet werden. Neu hinzukommen sollten zudem flexiblere Typen, Nebenläufigkeit und eine einfache Bibliothek. Simple Kommandos sollen das Leben des Entwicklers erleichtern und Binärprogramme für mehrere Plattformen erzeugen können. Was dabei herausgekommen ist und wie man Go einsetzt, zeigt ein dreiteiliges Tutorial.

Den Einstieg macht das übliche „Hallo-Welt“-Programm. Davor steht noch der Download des Sprachpakets von http://golang.org. Angeboten werden Installationsprogramme oder Pakete zur manuellen Installation für unterschiedliche Plattformen. Eine Entwicklungsumgebung gehört nicht zum Lieferumfang, das Paket enthält die Kommandozeilentools und die Standardbibliotheken. Mit JetBrains GoLand steht inzwischen zwar eine vollwertige IDE zur Verfügung, aber viele Entwickler greifen gern auf ihre gewohnten Editoren wie vim oder VSCode mit den zugehörigen Makropaketen zurück.

Was muss man jetzt für den Einstieg mit „Hallo Welt“ wissen? Der Code wird in Packages organisiert, das einleitende Statement eines Programms bezeichnet das Package, auf das der Compiler zugreifen soll. Ein Package darf aus mehreren Dateien bestehen, die nicht zwingend in ihren Namen den des Package, zu dem sie gehören, enthalten müssen. In der Regel spiegelt sich der Name des Package aber im Namen des Verzeichnisses wider, das die Dateien enthält. Es befindet sich unter $GOROOT/src.