• onlinepersona
    link
    fedilink
    arrow-up
    3
    ·
    21 hours ago

    Rust ownership and async have been the worst part of my Rust experience. I normally either use a reference or copy and that solves 90% of my problems.

    Rust prides itself on “fearless concurrency” but as I said, async is horrific. I’ve spent way too much time trying to build an pipeline that downloads data from a source and spreads it out to multiple consumers who can also pass data on or terminate gracefully. The experience left me so annoyed that I just moved to a worker based model with Kafka in between and let every worker download the file to do its processing. So much simpler.

    Having to do shit concurrently in rust is amongst my biggest fears because of async. I’d rather use python or even JavaScript which have functional and easy async.

    • BB_C
      link
      fedilink
      arrow-up
      1
      ·
      12 hours ago

      “Fearless Concurrency” predates “async” in rust nomenclature, and points to specific compile-time guarantees around things like thread safety and races (Send, Sync, …).

      It was around when we used event loops and the mio crate (and rayon for parallelism), with no async or await in sight (because they didn’t exist yet).

      Some people actually still prefer to do “concurrency” this way, especially if they wish to stay close to the abstraction level from C land. io_uring also came later which introduced a new OS low-level interface and paradigm for doing “concurrency”.

      “Fearless Concurrency” has nothing to do with how easy you can write async code, especially if you’re someone who struggles with the language basics like ownership.