• Ephera ( Ephera@lemmy.ml ) 
    link
    fedilink
    English
    arrow-up
    37
    ·
    9 months ago

    Yeah, gonna be interesting. Software companies working on consumer software often don’t need to care, because:

    • They don’t need to buy the RAM that they’re filling up.
    • They’re not the only culprit on your PC.
    • Consumers don’t understand how RAM works nearly as well as they understand fuel.
    • And even when consumers understand that an application is using too much, they may not be able to switch to an alternative either way, see for example the many chat applications written in Electron, none of which are interoperable.

    I can see somewhat of a shift happening for software that companies develop for themselves, though. At $DAYJOB, we have an application written in Rust and you can practically see the dollar signs lighting up in the eyes of management when you tell them “just get the cheapest device to run it on” and “it’s hardly going to incur cloud hosting costs”.
    Obviously this alone rarely leads to management deciding to rewrite an application/service in a more efficient language, but it certainly makes them more open to devs wanting to use these languages. Well, and who knows what happens, if the prices for Raspberry Pis and cloud hosting and such end up skyrocketing similarly.

    • who ( who@feddit.org ) OP
      link
      fedilink
      English
      arrow-up
      12
      ·
      edit-2
      9 months ago

      many chat applications written in Electron, none of which are interoperable.

      This is one of my pet peeves, and a noteworthy example because chat applications tend to be left running all day long in order to notify of new messages, reducing a system’s available RAM at all times. Bloated ones end up pushing users into upgrading their hardware sooner than should be needed, which is expensive, wasteful, and harmful to the environment.

      Open chat services that support third party clients have an advantage here, since someone can develop a lightweight one, or even a featherweight message notifier (so that no full-featured client has to run all day long).

    • SorteKanin ( SorteKanin@feddit.dk ) 
      link
      fedilink
      arrow-up
      6
      ·
      9 months ago

      Rust programs can definitely still consume a lot of memory. Not using a garbage collector certainly helps with memory usage, but it’s not going to change it from gigabytes to kilobytes. That requires completely rethinking how things are done.

      That said I’m very much in favour of everyone learning Rust, as it’s a great language - but for other reasons than memory usage :)

        • mitchty ( mitchty@lemmy.sdf.org ) 
          link
          fedilink
          arrow-up
          2
          ·
          9 months ago

          Memory leaks are more than possible in rust. Rust type system prevents things like free being called on an already free resource. It very much also allows not calling free even when nothing references things. It also makes things like arena allocation a fun endeavor compared to other systems languages. It’s not impossible just trickier. Rust isn’t a panacea, you would need something more like idris with its type system to programmatically enforce resources are freed at runtime during the compilation phase. But a fully dependent type system is very much a bleeding edge thing.

    • .clone() everything!

      I do kind of agree in a way though. Rust forces you to think a bit about memory and the language does tend to guide towards good design. But it’s not magic and it’s easy to write inefficient Rust too. Especially if you just clone everything. But I personally find Rust to be a good mix of low level control that feels sufficiently high level.

      Garbage collected languages can be memory efficient too though. Having easily shared references is great!