The way I look at this is I have a reasonable understanding of rust. I'm not an expert but I can more or less do whatever computation I need to do, use crates, and so on. But with async it's like learning another language. Somewhat of an exaggeration, but it's not just what code you need to write, but also being able to read the error messages from the compiler, understanding the patterns and so on. So yes, it's probably fine, but it does take work.
Yes, the ergonomics sucks. But to be fair, Rust's ergonomics kind of suck too, especially when you do anything remotely complicated. Unfortunately, I think that's just a natural consequence of Rust's memory safety guarantees.
So yeah, it's probably fine, and maybe it can't be much better, but it still kind of sucks to use (esp. if you're new to it).
It takes work for sure, but admittedly I didn't find it that much of an undertaking. I'm writing a highly-parallelized 3d game engine with async/await. Am up to a few thousand lines and it's running very efficiently.
It's been pretty care-free so far. The biggest pain-point was starting before async traits were stabilized. I think a lack of good instructional material is what has hindered it the most.
I think this is enviable with low level languages. You simply can't abstract away as many things.
I stopped worrying about this when I had a project with two async runtimes (tokio and bastion) and it worked fine without any special setup.
Rust
Welcome to the Rust community! This is a place to discuss about the Rust programming language.
Wormhole
Credits
- The icon is a modified version of the official rust logo (changing the colors to a gradient and black background)