Go
A statically typed, compiled language with first-class concurrency.
Go is a compiled language designed at Google for building large server programs and command-line tools. It pairs a small, readable syntax with built-in support for concurrency through goroutines (lightweight threads) and channels, and a fast toolchain that produces single statically linked binaries. The combination — pleasant to read, fast to compile, simple to deploy — has made Go popular for cloud infrastructure software.
Robert Griesemer, Rob Pike, and Ken Thompson designed Go at Google starting in 2007, with public release in 2009. The language deliberately omits features other modern languages have (generics were added only in Go 1.18, classic OO with inheritance is absent, exception handling is replaced with explicit error returns), prioritising simplicity over expressiveness. This minimalism is a defining characteristic.
Many widely deployed pieces of cloud infrastructure are written in Go: Docker, Kubernetes, Prometheus, Terraform, etcd, containerd, Consul, Vault, Nomad, Caddy, Hugo, CockroachDB, TiKV, and many others. The language's straightforward cross- compilation story (GOOS=linux GOARCH=arm64 go build) and modest runtime have been particularly important for distribution.
Install
Debian/Ubuntu: sudo apt install golang Fedora/RHEL: sudo dnf install golang Arch: sudo pacman -S go macOS: brew install go
Authors
- Robert Griesemer, Rob Pike, Ken Thompson (creators)
- Go team at Google and external contributors