The Birth of Go
September 21, 2007: three engineers, one whiteboard, and a shared impatience with slow builds. How Go was designed, and why it went public two years later.
Software & systems engineer · Barcelona · BSc & MSc @ UPC
I build high-performance software, AI tooling, and privacy-first systems. This blog is a space where I document my technical journey and write about whatever piques my interest.
Featured
September 21, 2007: three engineers, one whiteboard, and a shared impatience with slow builds. How Go was designed, and why it went public two years later.
Every headline bug in Go 1.1.2 reported that it had worked. The sharpest of them zeroed your process's file limit and returned nil.
Go 1.1.1 patched both enforcers of Go's memory safety at once: a compiler that could write your data over a function's return address, and a garbage collector that could free memory still in use.
A year after freezing the language, Go 1.1 recompiled the same code faster and shipped a tool that found data races.
Go 1.0.3 was 223 commits the release note called minor. Three of them: a decompressor crash, an RSA signature OpenSSL rejected, and a compiler that rounded.
Go's second point release fixed two ways a map could crash on struct or array keys, one of them a struct hash that XORed its own fields back to zero.