Greg Kroah-Hartman… urged fellow contributors to embrace those interested in contributing Rust code to improve the kernel.

"Adding another language really shouldn’t be a problem… embrace the people offering to join us

Thoughts on this?

  • Buffalox@lemmy.world
    link
    fedilink
    English
    arrow-up
    11
    arrow-down
    28
    ·
    edit-2
    15 hours ago

    That does NOT sound like a good idea.

    We’ve turned our development model into a well-oiled engineering marvel,

    Exactly, and I’m pretty sure one of the reasons is that it’s remained on C, and NOT switched to C++, as has been often suggested.
    The second they make it a mixed code base, that’s the same second quality will deteriorate. Mixed code base is a recipe for disaster.

    Edit:

    Torvalds eventually responded by defending the Linux kernel development process and scolding Martin for grandstanding on social media about the issue. Martin later quit as a Linux maintainer and resigned from the Asahi Linux project.

    Seems like Linus isn’t onboard with this.

    But I guess all the downvoters know better?

    opening for a mixed code base is a recipe for disaster.

    Greg Kroah-Hartman:

    Yes, mixed language codebases are rough, and hard to maintain, but we are kernel developers, dammit.

    That’s special pleading, that lacks basis in reality. Still he admits it’s rough to mix codebases.

    I’m not claiming Rust wouldn’t be brilliant in some situations, but the detraction of a mixed codebase is worse than the benefit.

    • sugar_in_your_tea@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      3
      ·
      5 hours ago

      It’s not like Linux compiles down to one binary or anything, most of it is linked together over a pre-determined API. Anything that can satisfy that API (and ABI) can drop in. There are some “magic” bindings, but they still conform to that API.

      Read the rest of Greg KH’s thread, here’s the last half of that paragraph:

      Adding another language really shouldn’t be a problem, we’ve handled much worse things in the past and we shouldn’t give up now on wanting to ensure that our project succeeds for the next 20+ years. We’ve got to keep pushing forward when confronted with new good ideas, and embrace the people offering to join us in actually doing the work to help make sure that we all succeed together.

      And earlier:

      Rust also gives us the ability to define our in-kernel apis in ways that make them almost impossible to get wrong when using them. We have way too many difficult/tricky apis that require way too much maintainer review just to “ensure that you got this right” that is a combination of both how our apis have evolved over the years (how many different ways can you use a ‘struct cdev’ in a safe way?) and how C doesn’t allow us to express apis in a way that makes them easier/safer to use. Forcing us maintainers of these apis to rethink them is a GOOD thing, as it is causing us to clean them up for EVERYONE, C users included already, making Linux better overall.

      Those are solid arguments. As long as the APIs are well designed and documented, a mixed codebase is fine, and you get most of the benefits of Rust where it’s used.

    • farcaster@lemmy.world
      link
      fedilink
      English
      arrow-up
      44
      arrow-down
      2
      ·
      1 day ago

      Moving from C to C++ would also not solve any real problem. C++ of course adds OOP which I think can be nice (not everyone agrees with this!) but it also adds an insane amount of language complexity and instability. Mentally reasoning about C code is hard, reasoning about C++ code is nearly impossible.

      Rust however brings a novel solution to classes of problems like ownership and mutability with the borrow checker. It’s now accepted to be a great tool for writing high performance code while preventing a substantial amount of common, but often subtle, bugs from slipping through. It’s not arbitrarily the first non-C code to be accepted in the kernel. And it’s used in other operating systems like Android and Windows already.

      • sugar_in_your_tea@sh.itjust.works
        link
        fedilink
        English
        arrow-up
        17
        ·
        edit-2
        10 hours ago

        In general, for me, Rust > C > C++.

        I’ve heard people say that C is like a loaded and cocked revolver, and if you’re not careful, you could blow your foot off, whereas C++ is like a loaded and cocked sawed-off shotgun, and if you’re not careful, you could blow your leg off.

          • gedhrel@lemmy.world
            link
            fedilink
            English
            arrow-up
            3
            ·
            11 hours ago

            Whilst it’s gotten a lot better in the -17 and -20 iterations, the fact that there was recently a doorstop book published solely on the subject of C++ initialisation semantics is pretty telling.

            I really like what Herb Sutter’s doing around cppfront; I still wouldn’t use C++ unless I absolutely had to.

      • brucethemoose@lemmy.world
        link
        fedilink
        English
        arrow-up
        14
        arrow-down
        1
        ·
        1 day ago

        Mostly this ^.

        There’s just not really demand for C++ in the kernel; that’s not the case with Rust.

      • mesamune@lemmy.world
        link
        fedilink
        English
        arrow-up
        13
        arrow-down
        1
        ·
        edit-2
        1 day ago

        I think rust would also bring in more developers. So more changes would eventually make its way into the kernel.

    • darklamer@lemmy.dbzer0.com
      link
      fedilink
      English
      arrow-up
      9
      ·
      23 hours ago

      The second they make it a mixed code base, that’s the same second quality will deteriorate.

      I envy your confidence!

      • Buffalox@lemmy.world
        link
        fedilink
        English
        arrow-up
        1
        ·
        15 hours ago

        Maybe I’m wrong, but as I read the article, Linus isn’t convinced this is a good idea either.
        I’m not saying things can never change, but opening for a mixed code base is a recipe for disaster.

        • gedhrel@lemmy.world
          link
          fedilink
          English
          arrow-up
          2
          ·
          14 hours ago

          You’re wrong, but it’s possible the article gave you that impression. Read the mailing-list thread.

          It’s particularly worth reading Ted T’so’s contribution, which (considering his rude behaviour at the recent con led to a previous round of this nonsense) seems much more positive.