Not because of the technical decisions behind async/await, but because of the async ecosystem, especially the runtimes.
Picture a Rust user when the feature came:
- You can use it with future combinators!
- No, actually, use it with a macro library that almost works but not really.
- Here is Tokio (with a lot of moving parts).
- Wait, async std is much simpler (again, almost seems to work but not really).
- Wait, here is Smol, which is truly simpler (or at least smaller but not used).
=> You get "async fatigue."
I can understand the position: let's not commit to anything before seeing what sticks on the wall.
It might have worked for Serde (even that is debatable by some).
But as a user, it's hard to follow, and you get the impression that this feature is not the stable foundation you can build on.