• Victor@lemmy.world
    link
    fedilink
    arrow-up
    7
    ·
    16 hours ago

    If anyone has some insight: is Rust more or less verbose than C, generally? Like if Linux would be rewritten in Rust, would the LOC increase or decrease, e.g.?

    • fubarx@lemmy.world
      link
      fedilink
      arrow-up
      2
      ·
      5 hours ago

      Rust has a lot more ‘batteries included’ than C, and the memory ownership model works a lot better than garbage collection or C’s YOLO model. It also has built-in async/await. But you’re pretty much in the same boat as C when it comes to multiprocessing or thread-safety.

      Anyone building a long-running backend service would be wise to take a serious look at Rust. Personally, I’m glad Linus is open to change and isn’t digging his heels in on this one.

      • Victor@lemmy.world
        link
        fedilink
        arrow-up
        1
        ·
        2 hours ago

        I agree with you on Linus. Very pragmatic here, and for the benefit of all in the case of Rust in the kernel.

        And thanks for sharing your insight!

    • psud@aussie.zone
      link
      fedilink
      English
      arrow-up
      15
      ·
      13 hours ago

      It’s easier than C, it’s safer than C, the compiler is more helpful than GCC

      I think it’s fun

      Less verbose? I don’t think so

      Lines of code about the same

      For someone starting out as a programmer for low level programming I would recommend rust

        • mschae@discuss.mschae23.de
          link
          fedilink
          English
          arrow-up
          5
          ·
          6 hours ago

          As someone who has used both (but not for any serious, large projects), I’d say they target different audiences. First and foremost, Zig is not memory-safe in the way Rust is. On the other hand, Zig is way easier to write than unsafe Rust. Rust comes with a lot of features and libraries, while Zig is an intentionally small language, almost minimalistic (kind of like C, but modern).

          There are lots of different tradeoffs being made, so yes, I’ll give the boring answer and say they are good for different kinds of projects :)

          If it’s specifically low level programming (I’m envisioning programs where you need fairly direct control over memory, IO, etc.), you’d probably quickly need a lot of unsafe in Rust, which can quickly get very complicated to use safely. So I’d probably recommend Zig for that purpose.

          • Victor@lemmy.world
            link
            fedilink
            arrow-up
            1
            ·
            2 hours ago

            I should’ve known it’s a “it depends” answer. 😆 It’s programming languages after all. 😉

            Thanks for the insight though, I appreciate it! 🙏

    • HaraldvonBlauzahn@feddit.org
      link
      fedilink
      arrow-up
      11
      ·
      15 hours ago

      I think at the lowest level, it is very similar.

      But with a bit more abstraction, Rust is somewhat less verbose, especially when the same efficiency is required. Thinking im iterators / loops or generics, or enumerations / sum types. Also, the module system, build system, integrated unit tests, and compiler messages are huge gains for productivity.

      • Victor@lemmy.world
        link
        fedilink
        arrow-up
        3
        ·
        9 hours ago

        Cool, thank you. Might tackle Rust next year then.

        This year I’m getting into OCaml. 😊

        • esa@discuss.tchncs.de
          link
          fedilink
          arrow-up
          3
          ·
          8 hours ago

          OCaml should transfer pretty well to Rust. Rust can feel like an ML dressed up in C’s braces.

          Similarly, if you can write in Haskell without having to reach for IO, then you can probably satisfy Rust’s borrow checker with no more effort.

          • Victor@lemmy.world
            link
            fedilink
            arrow-up
            1
            ·
            edit-2
            2 hours ago

            Thanks for that insight. I did some small delving into Haskell years ago, but I found the tooling to be so awkward, and “monads” so confusing and poorly explained everywhere, that I eventually gave up trying to learn more.

            But OCaml seems pretty nice. Familiar, but with hopefully better tooling. 🤞