Born at Google to fix the problems of large-scale server software. Tiny syntax, fast compilation, blazing concurrency — Go is the lingua franca of modern cloud infrastructure.
← Back to Server Sidego toolchain — single binary outputpackage main import ( "fmt" "net/http" ) func handler(w http.ResponseWriter, r *http.Request) { fmt.Fprintln(w, "Hello, world!") } func main() { http.HandleFunc("/", handler) http.ListenAndServe(":8080", nil) } // Goroutines & channels func work(jobs <-chan int, done chan<- int) { for j := range jobs { done <- j * 2 } }
Launch concurrent work with go someFunction(). Communicate via channels — Go's mantra is "share memory by communicating, don't communicate by sharing memory."
No try/catch. Functions return (value, error). The famous if err != nil pattern repeats everywhere — explicit but verbose.
Type parameters arrived in 2022. Used for generic data structures and helpers without losing Go's simplicity.
The go command does it all — build, test, format (gofmt), get dependencies, vet code. One way to format code; arguments end before they begin.
| Category | Tools |
|---|---|
| Web frameworks | Gin, Echo, Fiber, Chi, net/http |
| RPC | gRPC, Connect, Twirp |
| Test | Built-in testing, testify |
| Notable users | Docker, Kubernetes, Terraform, Prometheus, etcd |
Kubernetes, Terraform, Docker, etcd — Go runs the cloud.
Tiny binaries, fast startup, great for serverless.
Cross-compile once, run anywhere — gh, hugo, kubectl.
Proxies, gateways, observability agents.