• Possibly linux@lemmy.zip
    link
    fedilink
    English
    arrow-up
    10
    arrow-down
    15
    ·
    2 days ago

    Contrary to popular belief, it is possible to write software in C that is very secure. It takes thought but C has the edge with its small footprint and system integration

    • pivot_root@lemmy.world
      link
      fedilink
      arrow-up
      24
      arrow-down
      3
      ·
      2 days ago

      Contrary to popular belief, it is possible to write software in assembly that is very readable. It takes thought but assembly has the edge with its miniscule footprint and zero-dependency runtime.

      • Possibly linux@lemmy.zip
        link
        fedilink
        English
        arrow-up
        7
        arrow-down
        1
        ·
        2 days ago

        I wouldn’t go that far

        The problem with assembly is that it is almost impossible to optimize it as a human. Way back in the day instruction sets were written for humans but these days it is highly unlikely that you will be able to write assembly that can outperform a compiler. The reason primary has to do with pipelining and caching since modern CPUs are extremely complex.

        • fuck_u_spez_in_particular@lemmy.world
          link
          fedilink
          arrow-up
          2
          ·
          18 hours ago

          That’s btw. also a good argument for Rust. Due to the strictness of the language the compiler os able to do optimizations that just aren’t possible (safely) in C or C++

    • anyhow2503@lemmy.world
      link
      fedilink
      arrow-up
      5
      arrow-down
      1
      ·
      2 days ago

      At this point I think the “thoughtful” C programmer is a myth and I don’t mean this as an insult. Even the most careful and experienced C gurus still make mistakes that would be much harder to make, if not categorically prevented in something like Rust. A lot of very secure C software is small in footprint, has had stable requirements for years, experienced thousands of hours of real world testing by users and the scrutiny of security experts. What I’m saying is: it should be easier to write secure software, especially with complex requirements or large attack surfaces.

      I disagree that C has a notably smaller footprint than Rust for most purposes and system integration is in some cases harder in Rust precisely because of the notorious upfront implementation cost that prevents a lot of potential bugs.

    • sabin@lemmy.world
      link
      fedilink
      arrow-up
      7
      arrow-down
      1
      ·
      2 days ago

      Yea I mean it’s possible, but the sooner you bite the bullet and use a more modern language, the sooner you’ll get back to the same level of maturity and start having productivity dividends being paid out thanks to things like being able to get your compiler to prevent use after free bugs and the like.

      Not sure how much sudo specifically needs this, maybe new commits are rare. As long as it stays out of LTS for the time being I’m all for it though.

      Also not quite sure what you mean by “footprint”

      Are you talking about the binary size or the fact that C has a tiny and straightforward language spec?