3 ms·
To put a different spin on what others are saying, asynchronous IO is a different programming model for concurrency that's actually more ergonomic and easier to
by necovek 2y ago
To put a different spin on what others are saying, asynchronous IO is a different programming model for concurrency that's actually more ergonomic and easier to get right for an average developer (which includes great developers on their not-highly-focused days).
Dealing with raciness, deadlocks and starvation is simply hard, especially when you are focused on solving a different but also hard business problem.
That's also why RDBMSes had and continue to have such a success: they hide this complexity behind a few common patterns and a simple language.
Now, I do agree that languages that suffer from the "color of your functions" problems didn't get it right (Python, for instance). But ultimately, this is an easier mental model, and it's been present since the dawn of purely functional languages (nothing stops a Lisp implementation from doing async IO, and it might only be non-obvious how to do "cancellation" while "gather" is natural too)