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.
| Type | Link |
| Added | Apr 22, 2026 |
| Modified | Apr 22, 2026 |