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

> now there is a MVP syntax and everything has just slowed down a lot.

Sadly this is spot on. Seems like after async was delivered there was only one big push from tokio 0.1 to 0.2 to 1.0 and that was it, the ecosystem and/or language maintainers seem to have lost interest in making it better to read and use.



Nobody has lost interest, the language maintainers have been pushing on this problem for years. Scroll back through Niko's blog posts and see how many of them are related to improving async: https://smallcultfollowing.com/babysteps/

The reason that progress appears slow is because the next steps for async improvement have required extending the type system, and doing that properly (making sure not to introduce unsoundness) required a massive overhaul to the type checker, and forming an entire new team solely dedicated to the verification of the type system. Here's the most recent update on that work: https://blog.rust-lang.org/inside-rust/2023/07/17/trait-syst...


I see, thank you for the clarification. Shame that it takes so long. I really need Rust's async benefits without all the baggage and the 6 months trial-by-fire training that it requires, and I need them right now, but it seems I'll be using other languages for the moment, and just scale infrastructure. Which is a real shame because Rust did make many good calls.


AFAIK the focus right now is on supporting `async` in traits, which required a bunch of language features seemingly unrelated like Generic Associated Types, which were released in rust 1.65, and Type Alias Impl Trait, which is still WIP due to some complications.


The fun part is over. At least that is how a rust maintainer described it to me.

When I asked why doing the unfun part (documentation, maintenance, etc.) isn't a condition for allowing people to do the fun part (pushing cool new code), it got no response.


Because open-source projects survive on people having fun improving them.

There just isn't that many people working on the Rust language as a day job, and they all have their hands full. Some of them have been working on foundational stuff that is required to get async rust to work, but it's work taking place over years.

To give an example, the Inside Rust blog recently posted [1] an article about the Rust Trait System Refactor initiative, which is a refactor of one of most complex chunks of the rustc compiler, started earlier this year.

That refactor is required to unlock some advanced lifetime syntax. Advanced lifetime syntax is required for some specific GAT improvements. GAT improvements are required to unlock async traits.

It's not just "people are too lazy to write the documentation". A lot of thought went into this.

[1] https://blog.rust-lang.org/inside-rust/2023/07/17/trait-syst...


While I commend the effort, I am not sure that an even more complex lifetime syntax is what the Rust devs wanted... We'll see then.


I'm not sure if parent is correct about adding lifetime syntax. To my understanding, the new trait solver will fix bugs and make features more consistent ("why can I put a trait bound here but not there?"). People have mentioned 'self for self-referntial structs but I think that's just wishful thinking right now.




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

Search: