Das Go (offiziell ohne den Beinamen Golang, der nur als Suchbegriff geprägt wurde) ist eine statisch typisierte, kompilierte Programmiersprache, die ab 2007 bei Google entstanden ist. Ihr Anspruch ist bewusst eng: einfache Sprache, schnelle Builds, gute Nebenläufigkeit, eine einzelne Binärdatei als Ergebnis.
Go hat sich in den letzten Jahren als bevorzugte Sprache für Cloud-Werkzeuge, Netzwerkdienste, CLIs und Infrastruktur etabliert. Docker, Kubernetes, Terraform, Hugo, viele Datenbank-Tools — all das ist in Go geschrieben.
Designentscheidungen
Go ist absichtlich klein gehalten. Es gibt keine Generics-Akrobatik (wenn auch seit Go 1.18 Generics in einer pragmatischen Form vorhanden sind), keine Vererbung über Klassen, keine Exceptions. Stattdessen: Strukturen mit Methoden, Interfaces als Verträge, expliziter Fehlerwert als zweites Rückgabeargument. Das wirkt anfangs unbequem, fördert aber lesbaren, vorhersagbaren Code.
Nebenläufigkeit
Die zentrale Stärke ist das Goroutine-Modell: leichtgewichtige, vom Laufzeitsystem verwaltete Funktionen, die parallel laufen. Kommunikation erfolgt über Channels — typisierte Pipes zwischen Goroutines. Damit entstehen nebenläufige Programme, die ohne tiefe Threading-Kenntnisse handhabbar bleiben.
Werkzeuge und Build
Go bringt sein Werkzeug-Ökosystem mit: go build, go test, go fmt, go vet, Module-System mit go.mod, Standardbibliothek mit HTTP-Server, JSON, Crypto, Templating und mehr. Builds erzeugen eine einzelne, statisch gelinkte Binärdatei — ideal für Container, Server-Deployment und CLIs, die ohne Laufzeitumgebung auf fremden Systemen laufen sollen.