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

    Yeah, it’s not optimal, I don’t think anyone argues that it is. It has a bunch of ways to shot yourself in the foot, no questions about that, people were writing books about that for decades. Not like there is an optimal language that doesn’t allow you to make some stupid mistakes.
    But also, a lot of that non-optimality is what gives it advantage. Well, that and enormous amount of legacy code and expertise.
    Sometimes you need to pass around raw pointers without caring about memory ownership, and for that situation it’s optimal. I’m glad you have your mandatory curly brackets, but sometimes I just want my microcontroller to blink an LED and for that I’m in turn glad that I can be as quick and dirty as my filthy mind allows me.
    And for serious projects we’re all MISRA compliant anyway, and it mandates curly brackets for ifs and proper cases for switch.

    • iopq@lemmy.world
      link
      fedilink
      arrow-up
      1
      ·
      9 hours ago

      Let’s not get too abstract. Just because Rust made its own mistakes doesn’t mean it didn’t fix the mistakes I pointed out

      Serious projects have huge memory safety issues that don’t exist in Rust. More than half of security CVEs are due to the nature of C. Rust just has fewer bugs like Heartbleed because it doesn’t let you do a buffer overrun

      • Nalivai@lemmy.world
        link
        fedilink
        arrow-up
        1
        ·
        4 hours ago

        that don’t exist in Rust

        That’s because serious projects basically don’t exist in Rust. Yet, probably, Rust seem to be a good language that people like, so those are to follow, but for now they’re rare.
        Or don’t, if we discover that Rust has some other issue that only happens when the project grows old enough.
        Personally, I’m sticking to the devil I know, the one that has almost 60 years of accumulated knowledge and best practices.