Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I had already replied to this article over on lobste.rs but I'll link to that from here.

https://lobste.rs/s/iovz9o/state_async_rust

The tl;dr is that I think this entire async concern stuff is ridiculously overblown. I suspect the vast majority of Rust devs, like myself, not only accept the current state as "fine" (couple things to work on) but are very happy with the decisions tokio made.

Things like "oh no you have to use Arc" are really acting like that's more than a trivial change. Or "you have to use Mutex" when you don't. Or "you can accidentally block" as if that's not the case with regular threads too, and in that case I acknowledge that async can make things trickier there. Or "tokio is so popular" as if that's not exactly because of the decisions it made early on that appealed to rust developers.

Sorry but it's just not that big of a deal. The warts I run into are in cases where I'm trying to do stuff like zero copy, async, abstracted deserialization. That can be a pain right now (and is being worked on). 99% of the time it's a matter of just writing `async` or `await` and not worrying about anything. In fact, I almost never use `tokio::spawn` anyways except at the binary level - these problems virtually do not impact me.

Source: I have written 10s of thousands of lines of async Rust, probably 100s of thousands.



> these problems virtually do not impact me.

I'm confused, what are you suggesting? That Rust hits a global sweet spot already, the complainers are struggling because they are holding it wrong, and there shouldn't be an attempt to change anything?


I think I was clear - that the critiques are overblown and that these problems aren't nearly as significant as portrayed. Sure, there may be some "holding it wrong" going on, idk. A couple of blog posts aren't really representative of the overall feeling from devs like myself - that things are more or less fine.

As for changing things, I wouldn't really change any issues brought up here. I'd like to see some things smoothed out, like async traits, tooling to identify hot loops that are blocking without yielding, and things like that. Otherwise, nope, working as intended as far as I'm concerned.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: