December 10, 2025
Go-fighters enter the arena—then get benched
Golang's big miss on memory arenas
Go skips memory speed trick; comments explode with JS bragging and Odin hype
TLDR: Go shelved 'memory arenas,' a big-pool memory trick meant to boost speed. Comments erupted: JS boosters say the web language is plenty fast, performance folks share horror stories and want escape hatches, and others ask why Java/C# were ignored—because these choices decide how fast real apps run.
Go’s plan to add “memory arenas” — think: one big bucket of memory you fill fast and toss all at once — got iced, and the comments went feral. Fans of esbuild (the turbo‑fast bundler written in Go) mourned the lost speed hack, while skeptics shot back: if you need that much manual control, maybe Go isn’t your language. JS defenders came in hot, claiming the article’s “JavaScript slows outside web” take is bogus, flexing that you can even run game loops in JS if you dodge its garbage collector (the auto cleanup thing Go also uses). The enterprise gang chimed in: where’s Java and C# in this “middle ground” convo? Meanwhile, one commenter dropped a war story so spicy the thread needed a fire extinguisher: when deleting millions of tiny objects, it was faster to kill the whole app than free memory one by one — cue chants of “Arenas would’ve saved us!” Safety purists reminded everyone that arenas can cause “use‑after‑free” crashes (touching memory after it’s been nuked), but others noted Go already tolerates risky features. Odin stans rallied (“Viking compiler when?”), and one philosopher asked: who tracks what’s alive when you mix manual and auto memory? The vibe: Go’s arena was canceled, but the drama is very much live.
Key Points
- •Go is positioned as a middle ground between low-level performance and high-level developer velocity.
- •esbuild demonstrates high performance in Go through low-allocation, non-idiomatic techniques.
- •Go’s garbage collector can be a bottleneck for workloads with many short-lived objects.
- •Dan Scales proposed Memory Arenas to allocate and free memory in large pools using bump-pointer allocation.
- •The Go team put Memory Arenas on indefinite hold due to safety concerns, including use-after-free and issues in libraries like math/big.