The Robustness of Go
summary
Argues Go provides concrete robustness: GC, bounds checks, and escape analysis prevent most memory corruption, while static typing and explicit error returns catch many bugs early. Lists real failure modes: shared mutable state and data races (use -race to detect), nils, lack of generics, and panic propagation across goroutines that can crash servers. Shows Erlang/BEAM features—process isolation, monitors, live code upgrade—and demonstrates that Kubernetes replaces many BEAM guarantees by offering probes, restarts and rolling updates.
AI-written summary · about
chapters (27)
- 0:00Intro
- 0:31Overview
- 1:14Outline
- 2:13About me
- 2:41What is robustness
- 3:45What is fragility
- 4:20What is Go
- 7:33Scape Analysis
- 9:05Bound Checks
- 9:42Type Safety
- 10:52Interfaces
- 12:53Detecting errors
- 13:52No exceptions
- 14:42Mutual exclusion
- 15:19Channels
- 17:47Data Race
- 18:57NeoPointers
- 20:15Generics
- 21:33Panics
- 23:04HTTP Panic
- 24:15Go is not robust
- 25:08Erlang is robust
- 30:33Let it crash
- 36:51Most Robust Go Program
- 37:54Version Management
- 41:23Hot Code Swapping
- 42:42Dynamic Runtimes








