In practical perspectives, I’m mostly concerned about computer resources usage; I have computer resources constraints. So using Rust would benefit on that. But it is for a Web application backend. So, is it worth it having to learn Rust + Tokio + Axum, … in this specific situation? Also, that this is mostly for initially prototyping an application. Also considering if I add developers in the future, they would most likely not be familiar with Rust, but with more popular frameworks such as Node.

  • GissaMittJobb@lemmy.ml
    link
    fedilink
    arrow-up
    10
    ·
    1 year ago

    Consider the constraints and select technology accordingly. You mention being concerned about compute resources, try to elaborate on that.

    Are you doing it for ideological purposes? Is your hardware exceptionally constrained? Economical limitations? You will necessarily spend a lot more time compiling when using Rust, so that might eat up any compute savings if the scale of the project is small enough.

    If time is a concern at all, then learning a different stack is almost always going to be a losing proposition. Rust is also not the most prototyping-friendly language in my experience - hacking together stuff in Python is almost always going to be faster - but it’s by no means impossible.

    If for educational purposes, then I recommend Rust, as it is fun and teaches you new ways of thinking about your code.

    Finally, the fact that few people know Rust is a real underrated disadvantage you definitely want to consider.

    Best of luck with your endeavor.

  • Knusper@feddit.de
    link
    fedilink
    arrow-up
    9
    ·
    1 year ago

    I mean, what kind of resource constraints are we talking about? If it’s low-powered hardware that can’t run Node.js, then it’s obviously going to be worth it…

  • anlumo@feddit.de
    link
    fedilink
    English
    arrow-up
    6
    ·
    edit-2
    1 year ago

    For prototyping, if you don’t already know Rust, it’s probably not worth it.

    When you really know Rust it’s IMO easier to write a web server in Rust than node, but there is a long road to getting to that level.

    • fr33d0m3@mastodon.social
      link
      fedilink
      arrow-up
      0
      ·
      1 year ago

      @anlumo @nyl you wouldn’t prototype a software using a tool that’s made for speed and memory safety. Rather aim for a tracing bullet. Prototypes are imho a waste of time

      • anlumo@feddit.de
        link
        fedilink
        arrow-up
        3
        ·
        1 year ago

        I think prototypes are fine to answer specific questions. However, I think it’s often the case that management doesn’t understand what a prototype is and thinks that this is just the alpha release of the real product.

        Rule of thumb: if you don’t throw away all of the code after having answered that question you were writing it for, it’s not a prototype.

        • nous@programming.dev
          link
          fedilink
          English
          arrow-up
          1
          ·
          1 year ago

          Because of that prototypes should be small - no more than a week or so worth of effort. Anything larger means it will take even longer to rewrite it from scratch which management will never like and is overall just a waste of time. Most of the time you don’t actually want a prototype - you want a MVP written in the language of the final project as it will become the final product.

          Really the only time I would write a prototype in a different language then the final product is when you don’t yet know the language you want to (or more likely, need to) use or you know another language vastly more than the target language. The time saved by the language is often just not worth it overall when you are reasonably competent in both languages.

  • arc@lemm.ee
    link
    fedilink
    arrow-up
    5
    ·
    edit-2
    1 year ago

    I think if you know Rust then I think Rust + async is going to perform better and consume less resources than NodeJS by a LOT. It should also work more reliably on embedded devices, or even docker containers because memory isn’t going up and down like a yoyo because of GC.

    That said NodeJS is more immediate and might lend itself to better prototyping / RAD and you might not care enough about performance to justify using a compiled language. A lot of web servers aren’t doing enough that you would even notice a difference in performance.

    Another reason for Rust might also be because it’s more energy efficient. I wish Amazon and other cloud services would put a heavier cost penalty on efficiency. I wonder how many cloud web apps are running bloated stacks to serve up content which could be done with a fraction of the energy.