15 Jahre Go: Googles Programmiersprache feiert Geburtstag

Rückblick zum Jubiläum im November 2024: wie aus dem Ärger über lange C++-Builds eine Sprache für die Cloud-Infrastruktur wurde
Aktualisiert:
Abstract
- #Go
- #Programmiersprache
- #Cloud Computing
- #Innovation
Von der 45-Minuten-Kompilierung zu Docker und Kubernetes: die Geschichte von Go bis 2024
Angenommen, Sie starten einen Build und können in der Zwischenzeit in Ruhe Mittag essen gehen. Bei großen C++-Projekten war das bei Google vor knapp zwei Jahrzehnten kein Scherz, sondern Alltag. Aus genau diesem Ärger entstand Go, eine Programmiersprache, die im November 2024 ihren 15. Geburtstag feierte. Was als Nebenprojekt von drei Entwicklern begann, war zu diesem Zeitpunkt ein Fundament moderner Cloud-Infrastruktur.
Dieser Beitrag erschien zum Jubiläum im November 2024 und beschreibt den damaligen Stand. Eine aktuelle Einordnung der Sprache mit ihren Stärken und Grenzen finden Sie im Beitrag Go-Programmiersprache: Stärken, Grenzen und Zukunftsaussichten.
Wie Go aus Frust über lange Build-Zeiten entstand
Drei erfahrene Entwickler bei Google
2007 begannen drei Entwickler bei Google mit den Überlegungen zu einer neuen Sprache: Robert Griesemer, Rob Pike und Ken Thompson. Alle drei brachten viel Erfahrung mit. Griesemer hatte unter anderem an der JavaScript-Engine V8 gearbeitet, Thompson hatte Unix mitentwickelt. Sie wollten ein Problem lösen, das mit der Größe der Codebasen bei Google immer drängender wurde: Die Software wurde langsamer gebaut, schwerer verstanden und mühsamer gewartet.
Der 45-Minuten-Moment
Rob Pike erzählte später gern eine Anekdote: Hätte das Kompilieren eines Programms damals nicht 45 Minuten gedauert, gäbe es Go heute nicht. Hinter dem Witz steckte ein ernster Kern. Lange Wartezeiten bremsten ganze Teams aus, und die Komplexität von C++ machte große Projekte schwer beherrschbar. Go sollte beides angehen.
Welche Ideen die Sprache prägten
Kernprinzipien und Designziele
Die Entwickler setzten sich wenige, klare Ziele:
- eine einfache, gut lesbare Syntax
- Skalierbarkeit für große Codebasen und große Teams
- effiziente Nebenläufigkeit, also das gleichzeitige Abarbeiten vieler Aufgaben
- schnelles Kompilieren trotz statischer Typisierung, bei der Datentypen schon beim Übersetzen geprüft werden
Ein Maskottchen mit Spezifikation
Typisch für die Entwicklerkultur rund um Go: Selbst das Maskottchen, der Go Gopher, wurde sorgfältig dokumentiert. Für die Figur gibt es ein eigenes Model Sheet, also ein Zeichenblatt mit ihren Merkmalen und Gestaltungsregeln, was bei Programmiersprachen ungewöhnlich ist.
Was Go technisch auszeichnete
Goroutines für einfache Nebenläufigkeit
Mit den Goroutines brachte Go ein Konzept mit, das parallele Programmierung deutlich zugänglicher machte. Goroutines sind sehr leichtgewichtige Ausführungsstränge, die die Laufzeitumgebung selbst verwaltet. Ein Webserver kann so jede eingehende Anfrage in einer eigenen Goroutine bearbeiten, ohne dass der Speicher knapp wird.
Ein Garbage Collector in einer Systemsprache
Ungewöhnlich war die Entscheidung für einen Garbage Collector, also eine automatische Speicherbereinigung. Für Systemsprachen galt manuelle Speicherverwaltung lange als Standard. Bei Go erwies sich die automatische Variante als gute Wahl, weil sie viele Fehlerquellen beseitigte, ohne die Leistung für typische Serveranwendungen zu stark zu belasten.
Der Weg zum Erfolg
Von der Systemsprache zur Sprache der Cloud
Ursprünglich als Systemsprache gedacht, entwickelte sich Go schnell zu einer bevorzugten Wahl für Microservices und Cloud-Infrastruktur. Kleine, eigenständige Programme ohne externe Abhängigkeiten ließen sich leicht in Container verpacken und verteilen.
Meilensteine der Entwicklung
- 2009: offizielle Ankündigung als Open-Source-Projekt
- 2012: Version 1.0 mit dem Versprechen, dass Programme auch mit späteren 1.x-Versionen funktionieren
- 2015: Go 1.5, dessen Compiler vollständig in Go selbst geschrieben war
Go in der Softwarelandschaft von 2024
Bekannte Projekte auf Go-Basis
Docker, Kubernetes und Terraform, drei der wichtigsten Werkzeuge der Cloud-Welt, sind in Go geschrieben. Diese Projekte zeigten, dass die Sprache im Produktiveinsatz auch bei sehr großer Last trägt. Wer 2024 Container betrieb oder Infrastruktur als Code verwaltete, nutzte damit fast zwangsläufig Software in Go. Wie sich Go zu dieser Zeit gegenüber Python und Rust positionierte, beschreibt der Beitrag Python, Go und Rust im Vergleich.
Pläne des Go-Teams zum Jubiläum
Zum 15. Geburtstag kündigte das Go-Team an, Go besser für KI-Anwendungen zu rüsten und Werkzeuge aus der KI zu nutzen, um Entwicklerinnen und Entwicklern Routinearbeit abzunehmen.
Was Go nach 15 Jahren ausmachte
Die Geschichte von Go zeigt, dass Verzicht ein Erfolgsrezept sein kann. Die Sprache bot weniger Sprachmittel als viele Konkurrenten, dafür schnelle Builds, gut lesbaren Code und eine durchdachte Nebenläufigkeit. Für Teams, die 2024 Backend-Dienste oder Cloud-Werkzeuge entwickelten, war Go deshalb eine naheliegende Option. Wer cloud-native Anwendungen plant und dafür Unterstützung sucht, findet auf unserer Themenseite Cloud Native Apps: Beratung, Coaching und Seminare weitere Informationen.
Häufige Fragen zu Go
Ist Go eine gute erste Programmiersprache?
Für viele Einsteiger ja. Die klare Syntax und die umfangreiche Standardbibliothek erleichtern den Einstieg, und weil Go in vielen professionellen Projekten steckt, lässt sich das Gelernte schnell praktisch anwenden.
Warum wird Go besonders im Cloud Computing eingesetzt?
Go verbindet effiziente Nebenläufigkeit, schnelles Kompilieren und geringen Ressourcenverbrauch. Das macht die Sprache gut geeignet für Cloud-Anwendungen und Microservices, die viele Anfragen gleichzeitig bearbeiten müssen.
Wie unterscheidet sich Go von anderen Programmiersprachen?
Go setzt auf Einfachheit, eingebaute Unterstützung für Nebenläufigkeit und kurze Kompilierzeiten. Anders als viele andere Sprachen verzichtet Go bewusst auf komplexe Sprachmittel, um Code klar und wartbar zu halten.
Kategorien
Schlagworte