• onlinepersona@programming.dev
    link
    fedilink
    arrow-up
    4
    ·
    19 hours ago

    My biggest issues with rust are

    • borrow checker barely ever uses the term “borrowed” and I have to relesen it every time I pick up rust
    • async is absurdly complicated, there are so many gotchas. Streams are actual hell
    • crates are github only and have no namespacing. Java has the best solution IMO with their reverse domains for example com.github.myuser.myproject.somepackage

    It’s good to know I’m not alone. But I’ll never choose C/C++ over Rust. If I need speed and typing, it’s Rust, no questions asked. For everything else, there’s Python. I just wish Rust has better GUI frameworks…

    • TehPers@beehaw.org
      link
      fedilink
      English
      arrow-up
      2
      ·
      19 hours ago

      Your second point has been a focus area for them for years, and we’ve seen it improve with async fn in trait, async closures, etc. Hopefully we see that continue to improve over time.

      The third point has a solution in the works already (at least for crates.io). The accepted (I believe) proposal is that crates themselves act as “namespaces” and you can publish crates like bevy::render or hyper::utils that get loaded under some parent module by the compiler. Publishing crates with names containing :: would be constrained to those who maintain the parent crate (so bevy or hyper in that case).

  • silly_goose@lemmy.today
    link
    fedilink
    arrow-up
    8
    arrow-down
    2
    ·
    1 day ago

    Feels empty and generic like it was written by an LLM. Why did you even ask developers to fill out a survey? You could have asked chatgpt what users thought about Rust too and saved everyone a lot of time.

  • TheAgeOfSuperboredom@lemmy.ca
    link
    fedilink
    arrow-up
    10
    ·
    2 days ago

    This is cool and it’s nice to see some acknowledgement and self reflection.

    I actually like async Rust and I feel that they made the right decisions there. It’s amazing that I can use similar constructs for a web server as well as a small embedded board. But the low level Futures stuff does get hairy. I still don’t really get the relationship between Pin and Unpin, and any time I have to write a Tower Service by hand it feels arcane. Fortunately I rarely have to go down to that level.

    The tacit knowledge is interesting. Is there an ecosystem that doesn’t have that to some degree? Node and Python feel even worse to me, though I admit I don’t work with those as much. Still, if I ever have to look for a Node library, I get worried that I might be inadvertently installing some malware. That said, I am about to sit down with one of my juniors to start on a new Rust project, mainly because I want to help setup the initial crates (tokio, tracing, anyhow, clap, etc…). Efforts like blessed.rs are a good start. Or maybe there are some good “starter kits” using cargo-generate?