What Async Promised and What It Delivered

https://causality.blog/essays/what-async-promised/

Article

TL;DR: Async/await solved callback hell but introduced function coloring, silent failures, and new deadlocks.

Key Takeaways

  • Unhandled promise rejections created an entirely new silent failure class that callbacks didn’t have
  • Go goroutines and Java Loom virtual threads avoid function coloring entirely by design
  • Zig went furthest — removed async/await from the language altogether

Discussion

  • [jasode]: Go and Java Loom explicitly chose no function coloring; Zig removed async entirely
  • [paulddraper]: Java also has silent unhandled rejection failures identical to JavaScript’s
  • [andrewstuart]: Async is hard to learn but massively rewarding once internalized
  • Community agreed async/await traded one class of bugs for another; Go/Loom approach now looks prescient.

Discuss on HN


Type Link
Added Apr 22, 2026
Modified Apr 22, 2026