31join
to vote

What Color Is Your Function?

journal.stuffwithstuff.com

Read article ↗

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
siddharthexpertCurator·451 rep·3/5/2026

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.

marcoexpertExpert·568 rep·3/6/2026

Go's goroutines solve this by making everything uniformly concurrent at the runtime level. Nystrom basically predicted why that design choice matters.