Bob Nystrom explains why mixing async and sync code in most languages creates two incompatible worlds — and why that's a deeper design problem than most people realize.
“The moment I read this I understood why async/await felt off. The 'color' metaphor is perfect — it explains a real language design flaw that no amount of tooling can fully paper over.”
2 comments
Join OpenLinq to join the discussion
The part about how async infects everything it touches is the key insight. You don't just change one function — you change every function that calls it, and every function that calls those.
Go's goroutines solve this by making everything uniformly concurrent at the runtime level. Nystrom basically predicted why that design choice matters.