Ein Einstieg in die Programmiersprache Go, Teil 1

Die ursprünglich von Google entwickelte Programmiersprache Go wird zunehmend beliebter. Tatsächlich bietet sie einige Vorteile.

Sprachen  –  322 Kommentare
Ein Einstieg in die Programmiersprache Go, Teil 1

(Bild: iX)

Go ist für eine Programmiersprache noch recht jung. Die Veröffentlichung der ersten stabilen Version 1.0 ist etwas mehr als sechs Jahre her. Seitdem hat Go rasant an Popularität gewonnen. Zweimal war sie "Programming Language of the Year" bei TIOBE – 2009 und 2016. 2018 ist Go die "Most promising programming language" im "The State of Developer Ecosystem" von JetBrains. Vor allem bei systemnaher Infrastruktursoftware ist Go nicht mehr wegzudenken: Docker, Kubernetes, etcd, Consul, NATS, Packer, Prometheus, Traefik und Vault sind alle in Go geschrieben. Alles prominente Projekte, die heutzutage für den Betrieb einer zeitgemäßen (Cloud-)Infrastruktur unverzichtbar sind.

Auf den ersten Blick erscheint der Erfolg etwas merkwürdig. Denn Go sticht nicht gerade durch Innovationen hervor. Im Gegenteil: Go lässt viele Dinge vermissen, die bei einer Programmiersprache selbstverständlich scheinen: Exceptions, ein Typsystem mit Typhierarchie und generischen Typen, kovariante Funktions-, Methoden- und Rückgabeparameter oder einen Option-Typ zur Vermeidung des "billion-dollar mistake" (Null reference). Trotz und manchmal auch gerade wegen der Einschränkungen, lassen sich mit Go etliche Aufgaben des Programmieralltags gut und schnell umsetzen.

Die Ursprünge von Go

Go entstand 2007 ursprünglich bei Google, ist aber seit 2009 – weit vor Version 1.0 – ein Open-Source-Projekt auf GitHub. Gründungsväter sind unter anderem die Bell-Labs-/UNIX-/C-Berühmtheiten Rob Pike und Ken Thompson. Der Google-Ursprung ist klar erkennbar. Go soll Herausforderungen stemmen, die vor allem Google hat: Skalierung auf allen Ebenen, auf viele Prozessoren beziehungsweise Cores, auf große Codebasen, auf große Entwicklerteams sowie auf viele und schnelle Deployments.

Die Handschrift der Gründungsväter ist ebenfalls unverkennbar: Große Ähnlichkeiten mit C, nicht nur auf der Syntaxebene, sondern auch beim Abstraktionsniveau und den Designzielen. Ebenso die zahlreichen Anleihen bei Plan9, einem Betriebssystem, das Pike und Thompson bei Bell Labs entwickelt hatten.

Der Artikel beschreibt Im Folgenden einige der hervorstechenden Merkmale von Go, die trotz des Verzichts auf Innovation Go von anderen Programmiersprachen abhebt.