Linus Torvalds Speaks on the the divide between Rust and C Linux developers an the future Linux. Will things like fragmentation among the open source community hurt the Linux Kernel? We’ll listen to the Creator of Linux.

For the full key note, checkout: Keynote: Linus Torvalds in Conversation with Dirk Hohndel

  • @[email protected]
    link
    fedilink
    English
    16 hours ago

    If you believe in ADTs, limiting mutation, & a type system that goes beyond Rust’s affine types + lack of refinements (including a interleaved proof system), you could be writing kernel code in ATS which compiles to C.

  • @[email protected]
    link
    fedilink
    3417 hours ago

    You can’t improve and break silence without discussing and making changes. The existing maintainers won’t live forever, having Rust in the Kernel is a bet on the future. Linus wouldn’t have adopted and accepted Rust, if he wasn’t thinking its worth it. And looks like it was already worth it.

    • @[email protected]
      link
      fedilink
      English
      -34 hours ago

      I think you’re correct except for “having Rust in the Kernel is a bet on the future”. That’s something the techbro’s would say.

      • λλλ
        link
        93 hours ago

        Do you have something against it? People hate on it like it’s a fad or whatever. But, the people who like it, LOVE it.

        Rust is the most admired language, more than 80% of developers that use it want to use it again next year.

        https://survey.stackoverflow.co/2023/#overview

        Rust is on its seventh year as the most loved language with 87% of developers saying they want to continue using it.

        https://survey.stackoverflow.co/2022/#overview

        8 years in a row. I can understand the perspective of someone who spent years honing their craft in C/C++ and not wanting to learn a new language. But, the Harassment of the “Rust in Linux Lead” is ridiculous. I’m not saying you are harassing. But, saying it’s a tech bro thing is just negative and doesn’t do justice to how many devs just like rust.

        • @[email protected]
          link
          fedilink
          English
          145 minutes ago

          I only have something against the syntax, but nothing against anything else about it, nor is my comment meant as a negative against the language. What I referred to was simply about how that stupid sentence is not a good comment and completely personal opinion. I am sure a lot of programming languages would have gotten the same label at one point in time. And many times they have been superseded by the next big thing.

  • kbal
    link
    fedilink
    4111 day ago

    I took notes for the benefit of anyone who doesn’t like their info in video form. My attempt to summarize what Linus says:

    He enjoys the arguments, it’s nice that Rust has livened up the discussion. It shows that people care.

    It’s more contentious than it should be sometimes with religious overtones reminiscent of vi versus emacs. Some like it, some don’t, and that’s okay.

    Too early to see if Rust in the kernel ultimately fails or succeeds, that will take time, but he’s optimistic about it.

    The kernel is not normal C. They use tools that enforce rules that are not part of the language, including memory safety infrastructure. This has been incrementally added over a long time, which is what allowed people to do it without the kind of outcry that the Rust efforts produce by trying to change things more quickly.

    There aren’t many languages that can deal with system issues, so unless you want to use assembler it’s going to be C, C-like, or Rust. So probably there will be some systems other than Linux that do use Rust.

    If you make your own he’s looking forward to seeing it.

    • @[email protected]
      link
      fedilink
      5414 hours ago

      I took notes for the benefit of anyone who doesn’t like their info in video form.

      I love you.

    • @[email protected]
      link
      fedilink
      2124 hours ago

      If you make your own he’s looking forward to seeing it.

      Not a programmer whatsoever but I’ve heard about Zig and people comparing it to Rust, what’s the deal with it?

      • @[email protected]
        link
        fedilink
        32
        edit-2
        23 hours ago

        Zig is indeed designed specifically for such tasks as system programming and interoperability with C code. However it is not yet ready for production usage as necessary infrastructure is not yet done and each new version introduces breaking changes. Developers recomend waiting version 1.0 before using it in any serious project.

      • @[email protected]
        link
        fedilink
        2023 hours ago

        Zig is “c”, but modern and safe.

        The big selling points compared to Rust are:

        • A better syntax
        • No hidden control flow
        • No hidden memory allocation
        • Really great interop with C (it’s almost as if you just include the C code as you would in a C code base…)
        • Fast compile time
        • it’s more readable
        • it’s simpler to learn

        The syntax is really close to the C language; any C programmer can pick up Zig really fast.

        IMO Zig is a far better choice to go in the kernel than Rust.

        Linux has tried to include CPP in it, and it failed.

        So imagine if trying to fit in a C-like cousin failed, how far they are to fit an alien language like Rust…

        For more information: https://ziglang.org/learn/why_zig_rust_d_cpp/

        • @[email protected]
          link
          fedilink
          78 hours ago

          Zig is a very new and immature language. It won’t be kernel-ready for at l’East another 10 years.

          a better syntax

          That’s pretty suggestive. Rust syntax is pretty good. Postfix try is just better for example.

          Zig also uses special syntax for things like error and nullability instead of having them just be enums, making the language more complex and less flexible for no benefit.

          Syntax is also not everything. Rust has extremely good error messages. Going through Zig’s learning documentation, half the error messages are unreadable because I have to scroll to see the actual error and data because it’s on the same line as the absolute path as the file were the error comes from

          No hidden memory allocation

          That’s a library design question, not a language question. Rust for Linux uses its own data collections that don’t perform hidden memory allocations instead of the ones from the standard library.

          it’s more readable

          I don’t know, Rust is one of the most readablelangueage for me.

          Fast compile time

          Is it still the case once you have a very large project and make use of comptime?

          it’s simpler to learn

          Not true. Because it doesn’t have the guardrails that rust has, you must build a mental model of where the guardrails should be so you don’t make mistakes. Arguably this is something that C maintainers already know how to do, but it’s also not something they do flawlessly from just looking at the bugs that regularly need to be fixed.

          Being able to write code faster does not equate being able to write correct code faster.

          Really great interop with C

          Yes, because it’s basically C with some syntax sugar. Rust is a Generational change.

        • @[email protected]
          link
          fedilink
          English
          1715 hours ago

          Zig is “c”, but modern and safe.

          Zig is safer than C, but not on a level that is comparable to Rust, so it lacks its biggest selling point. Unfortunately just being a more modern language is not enough to sell it.

          So imagine if trying to fit in a C-like cousin failed

          C++ was not added to Linux because Linus Torvalds thought it was an horrible language, not because it was not possible to integrate in the kernel.

          • @[email protected]
            link
            fedilink
            5
            edit-2
            9 hours ago

            Zig has other selling points, that are arguably more suitable for system programming. Rust’s obsession with safety (which is still not absolute even in rust) is not the only thing to consider.

              • @[email protected]
                link
                fedilink
                12 hours ago

                UB is only one class of error though. I get nervous when people talk about re-writing battle hardened code which has been used - and reviewed by the community - for decades because there are going to be many subtleties and edge cases which are not immediately apparent for any developer attempting a re-implementation.

                • @[email protected]
                  link
                  fedilink
                  11 hour ago

                  Like sudo that has had zero days lurking for 10 years?

                  I’m not advocating for reimplementing stuff for no good reason though.

        • Fonzie!
          link
          fedilink
          118 hours ago

          Linux has tried to include CPP in it, and it failed.

          So imagine if trying to fit in a C-like cousin failed, how far they are to fit an alien language like Rust…

          But that wasn’t about the syntax, but about the fastnesses, size and control, want it? Things that shouldn’t be much of an issue to Rust.

      • @[email protected]
        link
        fedilink
        1224 hours ago

        Zig is feasible for systems programming and some, (most notably, the Primeagen in one video) claim it should have gone into the kernel instead of Rust, but I don’t know Zig so I don’t feel qualified to comment beyond that.

    • @[email protected]
      link
      fedilink
      English
      1
      edit-2
      1 hour ago

      How is it that no matter what the damn topic is, Linus always seems to be the most level-headed in the room? I really admire him for that…

       


      Edit: Lol, Linus, not Linux. Linus. xD

      • @[email protected]
        link
        fedilink
        1215 hours ago

        Linus did have emotion control issues and was not always completely rational, but he’s gone a long way towards being incredibly responsible to his child that powers the world.

        Also, he long understands that Linux ain’t a hobby project, which some programmers still get to think.

  • @[email protected]
    link
    fedilink
    English
    401 day ago

    I don’t want to watch a video about it.

    I’d like to know it, but a couple of sentences wouldn’t have hurt

    • @[email protected]
      link
      fedilink
      3
      edit-2
      5 hours ago

      I also dont like videos for this stuff. Summarized using kagi’s universal summarizer, sharing here:

      • The integration of Rust into the Linux kernel has been a contentious topic, with some long-term maintainers resisting the changes required for memory-safe Rust code.
      • The debate over Rust vs. C in the Linux kernel has taken on “almost religious overtones” in certain areas, reflecting the differing design philosophies and expectations.
      • Linus Torvalds sees the Rust discussion as a positive thing, as it has “livened up some of the discussions” and shows how much people care about the kernel.
      • Not everyone in the kernel community understands everything about the kernel, and specialization is common - some focus on drivers, others on architectures, filesystems, etc. The same is true for Rust and C.
      • Linus does not think the Rust integration is a failure, as it’s still early, and even if it were, that’s how the community learns and improves.
      • The challenge is that Rust’s memory-safe architecture requires changes to the existing infrastructure, which some long-time maintainers, like the DRM subsystem people, are resistant to.
      • The Linux kernel has developed a lot of its own memory safety infrastructure over time for C, which has allowed incremental changes, whereas the Rust changes are more “in your face.”
      • Despite the struggles with Rust integration, Linus believes Linux is so widely used and entrenched that alternative “bottom-up grown-up from the start Rust kernels” are unlikely to displace it.
      • Linus sees the embedded/IoT space as an area where alternative kernels built around different languages like Rust may emerge, but does not see Linux losing its dominance as a general-purpose OS.
      • Overall, Linus views the Rust debate as a positive sign of the community’s passion and an opportunity to learn, even if the integration process is challenging.
    • @[email protected]
      link
      fedilink
      281 day ago

      FWIW, it’s a 9 min video and doesn’t contain anything earth shattering or easily summarized. Basically there is some friction between C and Rust devs, and Linus doesn’t think that it’s such a bad thing (there has be interesting discussion) and it’s way too early to call Rust in the kernel a failure.

      • Kairos
        link
        fedilink
        201 day ago

        It’s harder to write because it forces you to be careful.

        • @nous
          link
          English
          816 hours ago

          C is easier to get a program to compile. Rust is easier to get a program working correctly.

        • Fonzie!
          link
          fedilink
          518 hours ago

          And because it looks like C, JavaScript, Bash and a few others all mixed up together.

          I’ve heard Rust described as “Rust is what you get when you put all the good features of other programming languages together. You can’t read it, but it’s freaking fast!”

        • @[email protected]
          link
          fedilink
          English
          151 day ago

          It forces you to be careful in the way it wants you to be careful. Which is fine, but it makes it a strange beastie for anyone not used to it.

              • Kairos
                link
                fedilink
                7
                edit-2
                20 hours ago

                I feel like a garbage collector would be too much a performance hit for kernel stuff.

                • @[email protected]
                  link
                  fedilink
                  English
                  214 hours ago

                  2 things:

                  1. It’s more the determinacy, a GC randomly fires up and your systems stops for some long amount of time. There are pauseless GCs but that’s a different nightmare.

                  2. The kernel has things similar to GCs. They’re used for more specialized tasks, and some (like rcu) are absolute nightmares that have take decades to get working.

        • @[email protected]
          link
          fedilink
          023 hours ago

          it’s more “it forces you to make it burrow checker friendly”.

          A burrow checker is not the only mechanism to write safe code. All the mess of Rust is all because this is the strategy they adopted.

          And this strategy, like everything in this world, has trade offs. It just happens that there are a lot, like, - a lot -, of trade offs, and those are insufferable when it comes to Rust…

            • qaz
              link
              fedilink
              English
              27 hours ago

              Gotta watch out for those rabbits messing with your kernel

    • @[email protected]
      link
      fedilink
      116 hours ago

      YouTube has a transcribe feature you could use. Or you could keep scrolling if this content isn’t relevant to you.