• Ephera@lemmy.ml
    link
    fedilink
    arrow-up
    41
    ·
    5 months ago

    the port does not have any immediately benefits to end-users or gives us any new special features. However, it improves the future maintainability and bug-fixing capability of the dev team compared to the C++ base.

    I remember them also specifically talking about an issue regarding asynchrony. If I remember correctly, it was that their current job system doesn’t actually execute background jobs in parallel. They even had a massive pull request ready to fix this in C++, but did not feel confident in it not introducing a ton of bugs.

    But the most important reason is fun. Fish is a hobby project. The core team wanted to switch to Rust, because it would be more fun. This also resulted in tons of new contributors suddenly offering help. So many people trying to find “rational” explanations like you’d expect them from a company, when completely different dynamics apply in a volunteer project.

    • asdfasdfasdf@lemmy.world
      link
      fedilink
      arrow-up
      20
      ·
      5 months ago

      What’s interesting to me is that IMO Rust is fun because of legit, pragmatic benefits. E.g. I don’t think debugging runtime errors is fun. Seeing all the compile time stuff Rust catches is fun for me. My employer doesn’t care what’s fun, but they do care about me shipping features instead of bugs, so we’re kind of on the same page.

      • ProtonBadger@lemmy.ca
        link
        fedilink
        arrow-up
        16
        ·
        5 months ago

        Yeah, I’ve done C++ for a couple of decades. So much less time is spent debugging with Rust, I love it. We have powerful processors and compilers, they’re meant to do tedious work for us, might as well let them do more to ensure “correctness” for us.

        Besides I love the simple things like Option and Result.

      • Ephera@lemmy.ml
        link
        fedilink
        arrow-up
        10
        ·
        5 months ago

        Yep. Where I notice it the most is frontend stuff. We’ve been using a WebAssembly framework, particularly Leptos, where you get to write HTML+CSS+Rust.

        And normally, a colleague and I despise frontend, i.e. JavaScript. Like, it’s kind of cool, because you get a visual result, but the crimes against humanity you have to commit in terms of code readability were very visible to use.

        And yeah, Leptos and Rust are a lot better in that regard, which boosts productivity. Particularly when a backend request fails, you get a Result, which you can pass as one value to the display code and just display either the data or an error. That’s huge, because you make a lot of backend requests.

        One downside in productivity and fun is that there obviously aren’t yet as many component libraries, so if you want a toast notification, you might need to implement that yourself.

        But still, we almost had to seriously ask that colleague to pause dishing out frontend features, because he was enjoying it so much.

    • tyler@programming.dev
      link
      fedilink
      arrow-up
      5
      ·
      5 months ago

      They’re not immediate benefits. It allows them to implement an oft asked for feature that was not possible with the previous codebase.