Why Virtual Threads Are a Better Abstraction Than Async/Await for Concurrency
By
Armin Ronacher
Summary
The author argues that async/await is a fundamentally flawed abstraction for most programming languages, advocating instead for virtual threads as a superior concurrency model. Drawing from years of experience with async/await-based systems, the author contends that these systems fail to handle back pressure well and introduce unnecessary complexity. The piece reexamines and synthesizes arguments from previous thinkers in the field, ultimately concluding that thread-based concurrency (particularly virtual threads) offers a cleaner, more intuitive approach to managing concurrent operations in modern software development.
Source
Key quotes
· 3 pulledI'm now convinced that async/await is, in fact, a bad abstraction for most languages, and we should be aiming for something better instead and that I believe to be thread.
It's been a few years since I wrote about my challenges with async/await-based systems and how they just seem to not support back pressure well.
In this post, I'm also going to rehash many arguments from very clever people that came before
You might also wanna read
The Async/Await Trade-Off: Solving Readability While Obscuring Dependencies
The article examines the evolution of async/await programming patterns, tracing the history from the C10K problem (handling 10,000 concurren
The Evolution of Async Programming Runtimes: Moving Beyond Thread-Per-Core Models
This article discusses the evolution of async programming runtimes and the shift away from traditional thread-per-core models. It explains h
buttondown.com·8mo agoUnderstanding Asynchronous Programming: Concepts, Guarantees, and Common Misconceptions
This article is a comprehensive technical discussion about asynchronous programming concepts, addressing common misconceptions and explainin
Effect Systems: A Better Alternative to Async Programming for Managing Side Effects
The article explores the concept of effect systems in programming, arguing that traditional async programming models are flawed and that eff
A Practical Guide to Swift Concurrency: Understanding Async/Await, Actors, and MainActor
This article provides a straightforward, jargon-free guide to Swift's concurrency system, focusing on making complex concepts approachable.
Optimizing Async Loops in JavaScript: Avoiding Common Performance Pitfalls
This article explores common pitfalls with using 'await' in JavaScript loops and provides solutions for optimizing asynchronous code perform

Comments
Sign in to join the conversation.
No comments yet. Be the first.