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

Maybe you could express your concern differently? There are definitely a lot of ins-and-outs about many aspects of Rust. It operates differently from many other languages, sometimes in surprising ways.

I agree that in some areas there could be better guidance. Is Tokio the runtime most people choose? Yes. Would most people be fine choosing that for their daily work? Yes. Might you want to choose a different one? It depends on what you’re doing, others have different goals and tradeoffs. Are there interface choices regarding things like Send + Sync or IO interfaces/traits you pick that will have impacts on how you structure your code to make it portable across runtimes? Absolutely.

And finally, can Rust be better in regards to async development? Yes, everyone agrees that it should be. My big thing is that we really need async traits in the language. We have an excellent work around with the async-trait macro until we get support for it in the language, but you need to discover that, and then recognize some of its idiosyncrasies in certain situations.



Well one big thing so many have mentioned here and elsewhere they simply want to plain sync code and maybe make some http / database calls etc but library ecosystem at large has made it close to impossible to write without async.

But I guess we can go like this:

1) Will community welcome a sync crate ecosystem? Yes.

2) Should people write sync code at all? depends...

3) Can some one write RFC for rust team if they need some feature in Rust? Certainly.

4) Should someone write libraries missing in ecosystem? Yes, community will love it.

Now everything is well and good.


I’m guessing that the reasoning behind this is that it would make things simpler if there were synchronous/blocking interfaces into libraries?

I’ve regretted that every time I’ve done it in my career, especially in network programming. All the different error conditions and potential blocking conditions that tcp connections can end up in are just easier to deal with on async interfaces.

I guess a different question I would ask is, what can we do to make async programming easy enough in Rust such that people don’t feel a need to reach for synchronous/blocking interfaces?




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

Search: