Linux people doing Linux things, it seems.

  • Snot Flickerman@lemmy.blahaj.zone
    link
    fedilink
    English
    arrow-up
    128
    ·
    edit-2
    16 days ago

    Here’s the thing: you’re not going to force all of us to learn Rust.

    That’s precious coming from Linux developers.

    I am a heavy Linux user. I run multiple microservices on multiple headless devices all Linux.

    This sounds like every fucking Windows user you’ll ever encounter.

    “Here’s the thing: you’re not going to force all of us to learn to use Linux.”

    So, yeah…

    • kbal@fedia.io
      link
      fedilink
      arrow-up
      51
      ·
      16 days ago

      Switching everything from C to Rust because it has better memory safety is more akin to changing languages from English to Esperanto because it has gender neutral pronouns and other cool features. Maybe it’s a good idea, but it’s understandable that some people are reluctant.

      • Snot Flickerman@lemmy.blahaj.zone
        link
        fedilink
        English
        arrow-up
        54
        ·
        edit-2
        16 days ago

        Maybe it’s a good idea, but it’s understandable that some people are reluctant.

        I understand that position. I also understand how the words and phrases that the C community has used to communicate with the Rust community seems to be completely dismissive, not just reluctant.

        I quoted what I did explicitly because of how a statement like that comes off to the person it’s aimed at. It doesn’t make them feel like they’re on an even footing working on the same project with the overall goal of it becoming better.

        memory safety is more akin to changing languages from English to Esperanto because it has gender neutral pronouns.

        I mean… not at all? Memory safety is huge for cybersecurity, buffer overflows and the like are common attack surfaces. C requires you to have deep knowledge of safe memory management practices and even then you can end up with memory issues. Rust was developed to avoid such issues entirely. I understand the reluctance but it feels to me like arguing “we should just stick with COBOL because it works.”

        • kbal@fedia.io
          link
          fedilink
          arrow-up
          25
          ·
          16 days ago

          Gender neutral pronouns are pretty huge too. Sure you can do them in English without too many problems usually, just as it’s also possible to code safely in C. It requires everyone to change their old habits, but it’s much less of a change than is involved in adopting a whole new language.

          Anyway, I do like Rust better personally.

          • explore_broaden@midwest.social
            link
            fedilink
            arrow-up
            14
            ·
            16 days ago

            I would still say that getting people to the point where they can write safe C code every time is harder than learning Rust, as it’s equivalent to being able to write rust code that compiles without any safety issues (compiler errors) every single time, which is very difficult to do.

          • boonhet@lemm.ee
            link
            fedilink
            arrow-up
            1
            ·
            edit-2
            16 days ago

            Gender neutral pronouns might be pretty huge too, but nobody’s private data is getting hacked because of gendered pronoun use.

        • refalo@programming.dev
          link
          fedilink
          arrow-up
          7
          ·
          edit-2
          16 days ago

          People prefer what’s familiar to them. Rust is completely foreign to them, the syntax is very different, the community is different (and often much younger), it still has many issues and is not ubiquitous, and many people are just slow/averse to change in general. So I absolutely understand the hesitation. And some just don’t like it for other reasons like the syntax, learning curve or other reasons. There’s also still a host of memory-related things Rust doesn’t fix like stack overflows, leaks, bitflips, unsafe context code, and just bad coding practices in general.

          • Octorine@midwest.social
            link
            fedilink
            English
            arrow-up
            3
            ·
            16 days ago

            I blame C++. When these kernel hackers hear about how they should switch to this shiny new language that’s going to make their code so much cleanser and more manageable, I don’t blame them for thinking it’s all bullshit. It was last time.

            • refalo@programming.dev
              link
              fedilink
              arrow-up
              3
              ·
              edit-2
              16 days ago

              To be fair, there’s nothing wrong with only using the parts of C++ you want. If you avoid things like templates, exceptions, RTTI etc. then e.g. your compile times will not suffer like people always complain about, your error messages will not be cryptic, plus you’ll have stronger typing, easier/safer lifetime management with ctor/dtors and easier to read code from class usage.

              Personally I think Swift has great potential if it can get past the speed and cross-platform issues, as it was designed by (among others) some C++ committee folks, and so it feels a lot more familiar than say, Rust, plus it fixes a lot of long-standing issues.

              There is also an Indian kernel fork that allows C++ drivers.

        • rhabarba@feddit.orgOP
          link
          fedilink
          arrow-up
          4
          ·
          16 days ago

          I understand the reluctance but it feels to me like arguing “we should just stick with COBOL because it works.”

          For those depending on COBOL code that does the job and has been doing it just well for a few decades, there are approximately zero good reasons to not stick with it.

          • linearchaos@lemmy.world
            link
            fedilink
            English
            arrow-up
            5
            ·
            16 days ago
            1. Eventually all the people who know and are good at cobol will die.
            2. A while before that happens, the people who know it will continually demand more money for their rare skills.
            3. Eventually, the cobol systems out there will need to interface new systems in some way it wasn’t designed to and it’ll be more expensive to shoehorn the remote system than to let the ancient beast retire.
      • cm0002@lemmy.world
        link
        fedilink
        arrow-up
        18
        ·
        16 days ago

        Vast majority of the cybersecurity community: “an absolute ton of exploits come from memory safety issues with C/C++, we should move to memory safe languages like Rust to greatly reduce security risk and make everyone safer”

        You: “Ehh Rust has a couple features, but it’s totally not worth switching from my precious precious C”

          • cm0002@lemmy.world
            link
            fedilink
            arrow-up
            7
            ·
            16 days ago

            Not quite, had I done something more broad than sure. But I reference a specific group of people whose job it is to provide security guidance on such matters. The ones who are out there fighting the good fight, RE’ing malware and busting down botnets among many security things

            But I’m sure you are similarly credentialed as the SMEs in the cybersecurity field right?

            • kbal@fedia.io
              link
              fedilink
              arrow-up
              2
              ·
              16 days ago

              Nah. If you’d been leaning on specific statements of any given expert — of which it is of course possible to find plenty that might in such casual rhetoric be used to support whichever conclusion you like — that would’ve been argumentum ad verecundiam, an appeal to authority. Instead you cited an imagined “vast majority” to exaggerate the universality of your opinion.

              P.S. Whilst I’m indulging my argumentative side perhaps it is also worth pointing out that you totally mischaracterized my own statements and motivation. I am not primarily a C programmer, and I’ve been happy to use Rust myself when the opportunity arises. I have no personal stake in this particular fight.

              • cm0002@lemmy.world
                link
                fedilink
                arrow-up
                1
                ·
                16 days ago

                Ah I see your default is to sprinkle in a bit of argumentum ad logicam and add a dash of straw man at the end

                Your statement comes across as the migration from C/C++ is more of an upgrade for new features and increased “ease of use” rather than an urgent security issue when it definitely is. It’s more than just a case of a couple of experts and some articles, you’ve got multiple governmental and NGOs like The NSA, The Whitehouse, CISA, DARPA all calling for the migration away from C/C++ to memory safe languages

                https://devops.com/darpa-turns-to-ai-to-help-turn-c-and-c-code-into-rust/

                “DARPA, the Defense Department’s (DOD) R&D agency, will lean on emerging AI capabilities in a new program to deal with the costly and time-consuming challenge of rewriting C and C++ code to Rust in a move designed to meet the push for federal agencies and private organizations to adopt memory-safe programming languages.

                https://www.theregister.com/2023/12/07/memory_correction_five_eyes/

                "CISA, in conjunction with the National Security Agency (NSA), FBI, and the cyber security authorities of Australia, Canada, the United Kingdom, and New Zealand, said its call for better memory safety follows from its Secure By Design recommendations – endorsed by all of these cyber authorities.

                “With this guidance, the authoring agencies urge senior executives at every software manufacturer to reduce customer risk by prioritizing design and development practices that implement MSLs [memory safe languages],” the report argues."

                ~

                "CISA suggests that developers look to C#, Go, Java, Python, Rust, and Swift for memory safe code.

                “The most promising path towards eliminating memory safety vulnerabilities is for software manufacturers to find ways to standardize on memory safe programming languages, and to migrate security critical software components to a memory safe programming language for existing codebases,” the CISA paper concludes."

        • toastal@lemmy.ml
          link
          fedilink
          arrow-up
          1
          ·
          16 days ago

          like Rust

          But no one is talking about that that is doesn’t need to be Rust. There are alternatives that can do as much if not more with the type system & safety while being as low-level as C without some of Rust’s restrictions.

      • Petter1@lemm.ee
        link
        fedilink
        arrow-up
        2
        ·
        16 days ago

        😂i wish my country switched from german to English because of how difficult it is to talk genderless in that language. Like, every fucking word seems to be gendered here.

    • xan1242@lemmy.dbzer0.com
      link
      fedilink
      arrow-up
      35
      ·
      16 days ago

      It’s just their ego showing through.

      It basically now comes down to the current devs depending on new Rust devs for anything that interacts with Rust code.

      They could just work together with Rust devs to solve any issues (API for example).

      But their ego doesn’t allow for it. They want to do everything by themselves because that’s how it always was (up until now).

      Sure, you could say it’s more efficient to work on things alone for some people, and I’d agree here, but realistically that’s not going to matter because the most interactivity that exists (at the moment) between Rust and C in Linux is… the API. Something that they touch up on once in a while. Once it’s solid enough, they don’t have to touch it anymore at all.

      This is a completely new challenge that the Linux devs are facing now after a new language has been introduced. It was tried before, but now it’s been approved. The only person they should be mad at is Linus, not the Rust devs.

    • Octorine@midwest.social
      link
      fedilink
      English
      arrow-up
      22
      ·
      16 days ago

      I finally watched the talk today and that wasn’t what I thought he meant. What I thought he was getting at was that the rust parts of the kernel interact with lots of other modules written by people who don’t know rust. When those C modules change their semantics in ways that break the rust code, they can’t go fix it because they don’t know rust. In fact, whenever they make a change, they don’t even know if they broke some rust module, because they don’t understand the rust code well enough. And this is something that everyone is going to have to live with for the foreseeable future, because you can’t force all those other kernel hackers to learn rust.

      • Petter1@lemm.ee
        link
        fedilink
        arrow-up
        8
        ·
        16 days ago

        If you are that good in C(pp), I guess understanding rust code of a module is not sooo hard… I mean, I learned what I know about C from reading stuff in the Kernel that made my embedded Linux project not working.

        But I have yet to read rust.

        • kautau@lemmy.world
          link
          fedilink
          arrow-up
          4
          ·
          16 days ago

          It’s a whole different ballgame. I’ve written a good amount of C and C++ in my day. I’ve been learning Rust for a year or so now. Switching between allocating your own memory and managing it, and the concept of “Ownership” https://doc.rust-lang.org/book/ch04-01-what-is-ownership.html is just something many devs set in their ways aren’t willing to do.

          I understand where they’re coming from, I’ve gone through massive refactors with new tech in my career. I think this approach needs to be more methodical and cautious than it is, but I don’t think they are correct in the end result. I think a memory-safe language is the way to go, and it needs to happen.

          This to me is a classic software project with no manager and a bunch of devs arguing internally with no clear external goals. There needs to be definitive goals set over a timeline. If someone doesn’t agree after a consensus is reached they can leave the project. But as of now I think as others have said this is 80% infighting, 20% actual work that’s happening.

  • pete_the_cat@lemmy.world
    link
    fedilink
    English
    arrow-up
    56
    ·
    edit-2
    16 days ago

    part of the problem is that old-time kernel developers are used to C and don’t know Rust," Torvalds said. “They’re not exactly excited about having to learn a new language that is, in some respects, very different. So there’s been some pushback on Rust.”

    Linus hit the nail on the head. If you’ve been a Kernel dev for a decade or more, and have spent decades learning the ins and outs of C, why would you want to switch to something that is similar, but different in a lot of ways, just because a small subset of devs think it’s the best way forward? Let them handle Rust and the majority of devs will keep using C, even though Rust is objectively better.

    As one of the other quotes suggested: fork the kernel project and rewrite it entirely in Rust, that way there isn’t any push back from the C devs. Replacing C with Rust in the upstream kernel is akin to replacing the engine in a car while it’s running or being used every day.

    • emax_gomax@lemmy.world
      link
      fedilink
      arrow-up
      75
      ·
      edit-2
      16 days ago

      This specific talk was about defining shared common interfaces so these different groups could work together and the guy who actually talked him into stepping down essentially said “I’m gonna keep writing C and if that breaks your rust stuff that’s not my problem”. This isn’t about convincing the c devs to write rust it’s about convincing them to work together when some of them seem to have made up their mind to sabotage rust support (either through indifference or willful interface regressions). Personally I’m more ashamed what this points to for someone new wanting to come in contribute to Linux.

      • richieadler@lemmy.myserv.one
        link
        fedilink
        arrow-up
        1
        ·
        16 days ago

        I think all the Rust devs should remove their code and leave. And when in the future the Linux devs change their tune and ask for their help, they should refuse.

      • toastal@lemmy.ml
        link
        fedilink
        arrow-up
        4
        ·
        16 days ago

        Strong opinions. Sometimes Linus’s takes are ‘bangers’ &, while probably fewer, he’s had a lot ‘woofs’ on the opposite end.

    • De_Narm@lemmy.world
      link
      fedilink
      arrow-up
      19
      ·
      16 days ago

      The kernel is probably too large to rewrite the whole thing at once. This could lead to a future without any new C kernel devs, leading to stagnation, while the Rust kernel could be many years away from being finished. (Assuming we actually move away from C.)

      At that point you might as well just start an entirely new kernel and hope it is good enough to eventually replace the Linux one once all devs are gone. Kinda the X11 and wayland thing.

      • qprimed@lemmy.ml
        link
        fedilink
        English
        arrow-up
        9
        ·
        edit-2
        16 days ago

        the Rust kernel could be many years away from being finished.

        the number I saw floating around was 3 years to production useful. regardless, C’s end days as the go-to, large systems level language are drawing nigh.

        edit: tear

        • ijhoo@lemmy.ml
          link
          fedilink
          arrow-up
          2
          ·
          16 days ago

          I think this number is overblown. Production useful doesn’t have to mean 1:1.

          Running it without all graphics drivers would be fine for server use. Also, not all filesystems need to be ported: basic ones should be enough for start. But not only servers, home routers run Linux kernel…

          If every OEM starts contributing their drivers in rust, this could move quickly…

    • floofloof@lemmy.ca
      link
      fedilink
      English
      arrow-up
      16
      ·
      16 days ago

      As one of the other quotes suggested: fork the kernel project and rewrite it entirely in Rust

      That’s not practically possible given the scale of the kernel. And doing a total rewrite is almost always a recipe for getting stuck and, if you ever create anything, creating something worse.

      Replacing C with Rust in the upstream kernel is akin to replacing the engine in a car while it’s running or being used every day.

      Almost all real-world software development is like this. That’s what we do.

    • rhabarba@feddit.orgOP
      link
      fedilink
      English
      arrow-up
      16
      ·
      16 days ago

      even though Rust is objectively better.

      In some of its characteristics, Rust is certainly a good language. The borrow checker, however, still haunts my restless dreams today.

      • TimeSquirrel@kbin.melroy.org
        link
        fedilink
        arrow-up
        8
        ·
        16 days ago

        I’m a C/C++ dude but I heard it being called the “Karen compiler”. It doesn’t look that scary based on samples I’ve seen, but there’s way more to it I am assuming.

        • floofloof@lemmy.ca
          link
          fedilink
          English
          arrow-up
          13
          ·
          16 days ago

          I’m no Rust expert, but in my experience the borrow checker is a pain for a bit, then you start to get a sense of what works and what doesn’t, and after a while it has taught you to write cleaner code.

        • trevor@lemmy.blahaj.zone
          link
          fedilink
          English
          arrow-up
          7
          ·
          edit-2
          16 days ago

          “Karen compiler” is almost perfect, except unlike Karens, the compiler is delightfully helpful with the error messages it gives you (usually). It usually gives a straightforward error, an error code, and sometimes, an easy fix.

          As someone that started with Rust, but just yesterday had to fix some C++ code, working with any other compiled language makes me shudder. I have nothing but respect for devs that have to wade through stuff like that.

          • floofloof@lemmy.ca
            link
            fedilink
            English
            arrow-up
            2
            ·
            16 days ago

            To be fair, most of them aren’t as nasty as C++. But Rust certainly gives you a sense of security you don’t get with most other languages.

    • leisesprecher@feddit.org
      link
      fedilink
      arrow-up
      5
      ·
      16 days ago

      Replacing C with Rust in the upstream kernel is akin to replacing the engine in a car while it’s running or being used every day.

      That’s in no way what’s been proposed. Rust is used in a very well defined niche, nobody wants to get rid of C.

      But it’s just that sentiment that got us here, you’re arguing against a non-existent threat, and thus reject the whole proposal.

  • Avid Amoeba@lemmy.ca
    link
    fedilink
    arrow-up
    53
    ·
    edit-2
    16 days ago

    “It’s herding cats: introducing Rust effectively is one part coding work and ninety-nine parts political work…”

    All software development in a team is. More like 20/80 or 40/60 if you’re lucky.

    • Telorand@reddthat.com
      link
      fedilink
      arrow-up
      62
      ·
      16 days ago

      Except in this case, it was a bunch of old C devs who aren’t just resistant but openly hostile to change, and they’d rather bully people into silence than try to progress.

      • saddlebag@lemmy.world
        link
        fedilink
        arrow-up
        14
        ·
        16 days ago

        Several downvotes with zero comments to refute or discuss your point. Some devs don’t like you calling them out

        • Telorand@reddthat.com
          link
          fedilink
          arrow-up
          11
          ·
          16 days ago

          In a twist of delicious fate, my instance doesn’t have downvotes. They get dropped before they even hit the database. So I’ll never know or “feel ashamed” if they don’t bother to take time to refute it. 🤣

      • Avid Amoeba@lemmy.ca
        link
        fedilink
        arrow-up
        11
        ·
        16 days ago

        If I go to any of the teams I interact with who program their components in C++ and proposed Rust or anything else, I’d get a similar reaction. They’re very good at C++ and they very rarely have memory and threading issues. 😂

        • orangeboats@lemmy.world
          link
          fedilink
          arrow-up
          16
          ·
          edit-2
          16 days ago

          They very rarely have memory and threading issues

          It’s always the “rarely” that gets you. A program that doesn’t crash is awesome, a program that crashes consistently is easy to debug (and most likely would be caught during development anyway), but a program that crashes only once a week? Wooo boy.

          People vastly underestimate the value Rust brings by ensuring the same class of bugs will never happen.

        • Petter1@lemm.ee
          link
          fedilink
          arrow-up
          4
          ·
          16 days ago

          They don’t get, that with memory issue resistant language, not a lot of new blood will be as good as them dealing with that stuff since they already have that solved in the language itself.

          It is about making kernel development future proof, so that new devs keep on coming and don’t create massive security holes on the way.

          Well this is how I understand it.

          • leisesprecher@feddit.org
            link
            fedilink
            arrow-up
            9
            ·
            16 days ago

            And it’s a bad argument anyway. You’re only good at memory management until the first bug takes down production.

            Rust isn’t a panacea and certainly has problems, but eliminating an entire class of potentially very dangerous bugs is a very good argument.

          • Giooschi@lemmy.world
            link
            fedilink
            English
            arrow-up
            2
            ·
            16 days ago

            Note that Rust does not “solve” memory management for you, it just checks whether yours is memory safe. Initially you might rely on the borrow checker for those checks, but as you become more and more used to Rust you’ll start to anticipate it and write code that already safisfies it. So ultimately you’ll still learn how to safely deal with memory management, just in a different way.

      • corsicanguppy@lemmy.ca
        link
        fedilink
        English
        arrow-up
        3
        ·
        16 days ago

        bunch of old C devs

        I knew this ageist bullshit would pop up. I know we lost our mentors and are kinda feeling in the dark, but the moment people pop out the ageist slurs I know they’ve got nothing to say.

        • orangeboats@lemmy.world
          link
          fedilink
          arrow-up
          5
          ·
          16 days ago

          The C developers are the ones with the ageist mindset.

          The Rust developers certainly are not the ones raising the point “C has always worked, so why should we use another language?” which ignores the objective advantages of Rust and is solely leaning on C being the older language.

      • kautau@lemmy.world
        link
        fedilink
        arrow-up
        1
        ·
        16 days ago

        Ironically the majority of the rust memory management ruleset is called ownership, and they are unwilling to release any of it, and claiming all of it, so there’s an out of memory error.

        • Nibodhika@lemmy.world
          link
          fedilink
          arrow-up
          1
          ·
          16 days ago

          I didn’t understood your criticism, what are they unwilling to release? What are they claiming all of? Why would ownership rules cause an OOM?

          Sharing stack memory is a bad practice in C as well btw.

    • pimeys@lemmy.nauk.io
      link
      fedilink
      arrow-up
      25
      ·
      16 days ago

      Ted is the maintainer of ext4 and there are not many people in the world who understand this code.

      For Rust to succeed, it has to get the subsystem maintainers to agree. It is going to be many years of petting very angry bobcats…

      And that is not even the worst I’ve heard, makes you a bit numb if you follow LKML.

      • KeriKitty (They(/It))@pawb.social
        link
        fedilink
        English
        arrow-up
        10
        ·
        16 days ago

        not many people in the world who understand this code.

        Kinda sounds like maybe he writes some freaky garbo C that nobody can figure out 😅

        • pimeys@lemmy.nauk.io
          link
          fedilink
          arrow-up
          2
          ·
          16 days ago

          Yeah. Isn’t it funny that the most popular file system in the world has such a codebase, and it is not even well documented how it works!

          I have my reasons to choose XFS or bcachefs with my machines.

      • xantoxis@lemmy.world
        link
        fedilink
        English
        arrow-up
        2
        ·
        16 days ago

        Linus is the leader of the kernel project. As a leader, it’s his job to get the maintainers to agree. It’s not Rust’s job to make the C devs stop bullying them.

        If Linus thinks Rust is a good direction, he should show it by actually standing up to Ted and developers like him and making them behave.

        If he doesn’t think it’s a good direction, he should say that too, so the remaining Rust devs can stop wasting time on the project.

        When someone in a niche part of the project steps down like this, that’s a problem with the top-level leadership. Linus’ record on leadership is… mixed. Trending in a good direction the last few years, but this makes me wonder. He can still save this, but he has to want to.

        • pimeys@lemmy.nauk.io
          link
          fedilink
          arrow-up
          2
          ·
          16 days ago

          Yes and no. Linus can yell to people and he does, he can force his say as he has been recently doing by expecting sched_ext to land in 6.12. BUT. Linux is a bazaar, it’s so big and there are so many different factions forcing them to do anything is going to take a long time. Lots of different teams are working on Linux, with their own priorities.

  • thingsiplay@beehaw.org
    link
    fedilink
    arrow-up
    25
    ·
    16 days ago

    Developers who are not willing to learn something new and not adapt are the worst. Besides that, nobody is forced to learn Rust, only those who want to work on Rust parts.

    • rhabarba@feddit.orgOP
      link
      fedilink
      arrow-up
      21
      ·
      16 days ago

      Developers who are not willing to learn something new and not adapt are the worst.

      And this is why COBOL developers are desperately needed these days: because too many people think that “old” was the same thing as “needs a replacement”.

      • thingsiplay@beehaw.org
        link
        fedilink
        arrow-up
        17
        ·
        16 days ago

        The situation of COBOL has nothing to do with Rust in Linux. C is not replaced by Rust, first. Secondly, there are legitimate reasons why Rust was introduced, as a secondary language. You are conflicting two different cases that are two different problems. It’s not replacing a language.

      • treadful@lemmy.zip
        link
        fedilink
        English
        arrow-up
        16
        ·
        16 days ago

        “Learning something new” does not mean the thing you are learning is new. It just means it’s new to you. One of the best things you can do for yourself as a dev is to learn to be fluid and be able to adapt to new languages, protocols, and technologies.

        • rhabarba@feddit.orgOP
          link
          fedilink
          arrow-up
          4
          ·
          16 days ago

          Why? I mean, I, personally, try to be as polyglot as possible, but not everyone working on the Linux kernel is even interested in doing anything that’s not C kernel code, nor is it their profession.

          • treadful@lemmy.zip
            link
            fedilink
            English
            arrow-up
            12
            ·
            16 days ago

            Learning is key in this field. Being able to learn new things allows you to move from one thing to the next as needed. You also learn a lot from experiencing different things. Other ways of doing things, other points of view, other concepts that you may have not been exposed to before.

            It also expands your employment potential and general usefulness. Knowing only one thing will severely limit your abilities.

            • rhabarba@feddit.orgOP
              link
              fedilink
              arrow-up
              6
              ·
              16 days ago

              It also expands your employment potential and general usefulness.

              I have already mentioned that programming is not everyone’s profession. Not everyone chooses what they do in their unpaid free time primarily based on whether it makes them a more useful person. I think the very phrase ‘my usefulness’ is dangerous.

              Are we only worth something as drones?

              • treadful@lemmy.zip
                link
                fedilink
                English
                arrow-up
                4
                ·
                16 days ago

                I never said anything about someone’s usefulness as a person. Their usefulness as a software developer was the topic at hand. Maybe it’s not your profession but a hobby but the point stands.

                I think the very phrase ‘my usefulness’ is dangerous. Are we only worth something as drones?

                And yet it’s drones that do one thing and only one thing their entire lives, never learn and grow.

                • rhabarba@feddit.orgOP
                  link
                  fedilink
                  English
                  arrow-up
                  4
                  ·
                  16 days ago

                  Maybe it’s not your profession but a hobby but the point stands.

                  To be honest, I’ve hardly ever asked myself how I could best please a potential employer with any of my hobbies. But I recognise that you’re probably taking a different approach.

            • Dudewitbow@lemmy.zip
              link
              fedilink
              arrow-up
              3
              ·
              16 days ago

              employment potential and learning are generally problems if you are young. if you are old, the time investment to learn a new language is generally not self beneficial as your time of employability starts to dwindle.

              Linux ultimately will have to run into the situation of if the people want the newer language to become the mainstream, they need to be more proactive at the development of the kernel itself instead of relying on yhe older generation, who does ot the way they only know how, as relearning and rewriting everything ultimately to them, a waste of time at their point in life.

              think like proton was for gaming. you dont(and will not) convince all devs to make linux compatible games using a vulkan branch. the solution in that front was to create a translation layer to offload most of that work off because its nonsensical to expect every dev to learn vulkan. this would be applied moreso to the linux kernel, so the only realistic option (imo) is that the ones who are working in rust need to make the rust based kernel and hope that it takes off in a few years to actually gain traction.

              • treadful@lemmy.zip
                link
                fedilink
                English
                arrow-up
                5
                ·
                16 days ago

                employment potential and learning are generally problems if you are young. if you are old, the time investment to learn a new language is generally not self beneficial as your time of employability starts to dwindle.

                Middle age software engineer here. Very disagree. Hoping to code until arthritis gets me. My point wasn’t only for employment (more of a perk), but primarily self-improvement and improvement on your craft. The day I can no longer do that, that may be the end for me.

                That said, I don’t know what Linux community should do about Rust adoption. I just wanted to point out that I think it’s very important for all devs to be able to embrace learning new things and expand and refine their skillset.

          • thingsiplay@beehaw.org
            link
            fedilink
            arrow-up
            5
            ·
            16 days ago

            One problem is (even Linus acknowledged it in some interview, sorry I have no source) that in future C might no longer be the popular language to learn. I mean learning basics is one thing, but getting good at C and writing in the Kernel, while trying to dodge memory issues is a huge task to ask.

            Lot of people learn Rust instead for systems programming today. Meaning in future it might be very useful to get new people into Kernel programming. And as said before, those who are not interested into Rust are perfectly fine using C. The Kernel is huge! Even new code in C is allowed, so this is not something that is going away. Remember, its an addition to the base, not replacement.

        • intensely_human@lemm.ee
          link
          fedilink
          arrow-up
          2
          ·
          16 days ago

          So basically you’re saying one of the best things you can do for yourself as a dev is be young.

          It’s a well-documented fact that as people get older their fluid intelligence declines.

          If you predicate your tech culture on requiring high fluid intelligence, you (a) make less readable code since the people writing it have more working memory and can hold more lines in their mind at a time and (b) break long-term institutional memory resulting in the reoccurrence of solved problems.

          At the level of organizational architecture, a culture of emphasizing fluid intelligence as the strategy for attacking problems and adaptation causes serious losses of efficiency, and hence fluidity at a higher scale.

          Ensuring compatibility with greybeards’ brains is key to long term success, and that means respecting an upper boundary on the rate of tools change.

          • treadful@lemmy.zip
            link
            fedilink
            English
            arrow-up
            1
            ·
            16 days ago

            It’s a well-documented fact that as people get older their fluid intelligence declines.

            I’m quickly approaching grey beard status. I recognize that I’m nowhere near as fluid as I was 20 years ago but I make an effort. You have to continually practice fluidity and actively learn things lest you solidify and lose that skill like any other. It’s important to stay fluid because things change and change faster than we all expect.

            At the level of organizational architecture, a culture of emphasizing fluid intelligence as the strategy for attacking problems and adaptation causes serious losses of efficiency, and hence fluidity at a higher scale.

            Ensuring compatibility with greybeards’ brains is key to long term success, and that means respecting an upper boundary on the rate of tools change.

            There’s some truth to that. PHP is still in use and Wordpress is still somehow a behemoth. But the fact is that PHP has fallen out of favor, isn’t used by new projects, and there’s less demand for people with that skillset. So as a dev, it’s important to recognize that tools come and go and be flexible.

            This example doesn’t work as well with C/++ since that’s older than most people here (though the language has also gone through iterations) and likely won’t be going away any time soon. But still, in most cases you probably don’t want to use that language for general work. So you’ll probably have to pick up other things for your toolchain (and higher level) work which of course has changed a lot.

            The good news is though, that it’s relatively easy to transfer core skills between most languages. Especially the ones with C-like syntax, which is most languages.

    • ⸻ Ban DHMO 🇦🇺 ⸻@aussie.zone
      link
      fedilink
      English
      arrow-up
      8
      ·
      16 days ago

      Developers who are not willing to learn something new and not adapt are the worst

      I think you mean people in general. Life is short, try some stuff, take risks

    • intensely_human@lemm.ee
      link
      fedilink
      arrow-up
      1
      ·
      16 days ago

      People who model learning new things as a process without costs are also the worst.

      “Because that’s how we’ve always done it” is a far more valid reason for doing something in a particular way than it is given credit for.

  • r00ty@kbin.life
    link
    fedilink
    arrow-up
    19
    ·
    16 days ago

    Here’s what I think. Both opinions are correct.

    Rust is sufficiently different that you cannot expect C developers to learn rust to the level they have mastered C in order to be working at the kernel level. It’s not going to happen.

    I don’t really know too much about rust. Maybe one day I’ll actually mess around with it. But the one time I looked at a rust git repo I couldn’t even find where the code to do a thing was. It’s just different enough to be problematic that way.

    So I think probably, the best way IS to go the way linus did. Just go ahead and write a very basic working kernel in rust. If the project is popular it will gain momentum.

    Trying to slowly adapt parts of the kernel to rust and then complain when long term C developers don’t want to learn a new language in order to help isn’t going to make many friends on that team.

    • technotony@sh.itjust.works
      link
      fedilink
      arrow-up
      5
      ·
      16 days ago

      RedoxOS! There’s been solid progress too, beyond just having a functional microkernel, they have many of the userspace tools/their version of coreutils, even a desktop environment already mostly implemented!

      My understanding is that it shouldn’t be too bad to port some other things over as well. The main issue I had was just the lack of drivers, especially since it’s still tricky even on Linux, and the microkernel architecture (though more secure) also means there’s no way to reuse any of those from Linux

      • Jay🚩@lemmy.ml
        link
        fedilink
        arrow-up
        1
        ·
        16 days ago

        Same with Ironclad kernel and OS written in Ada Programing language. Nice to see these systems development

    • witx@lemmy.sdf.org
      link
      fedilink
      arrow-up
      4
      ·
      edit-2
      16 days ago

      But that’s the thing where you are wrong. They clearly state they don’t want C developers to learn Rust. In the particular video posted he was saying “I want you to explain to me how this particular API works so that I can do it”

      The concerns about who fixes what on a merge when the C code breaks Rust code, are valid, but that’s easily fixed by gathering with the Rust developers, explaining the changes and letting them fix it.

    • ZILtoid1991@lemmy.world
      link
      fedilink
      arrow-up
      1
      ·
      16 days ago

      That’s why I often recommend D instead.

      Has a much more C-style syntax, except much more refined from the years of hindsight. The catch? No corporate backing, didn’t jump on the “immutable by default” trend when functional programming evangelists said for loops are a bad practice and instead we should just write recursive functions as a workaround, memory safety is opt-in (although “safe by default” can be done by starting your files with @safe:), some of the lead devs are “naive centrists” who want to “give everyone a chance at coding even if they’re bad people (nazis)”, implementing new changes to the lang has slowed down significantly up until the departure of Adam D Ruppe and the drama surrounding it, etc.

      • Giooschi@lemmy.world
        link
        fedilink
        English
        arrow-up
        1
        ·
        16 days ago

        “safe by default” can be done by starting your files with @safe:

        Last time I heard about that it was much more limited than Rust, for example it even disallowed taking references to local variables. Has something changed since then?

        • ZILtoid1991@lemmy.world
          link
          fedilink
          arrow-up
          1
          ·
          16 days ago

          D has many memory safety features. For local variables, one should use pointers, otherwise ref does references that are guaranteed to be valid to their lifetime, and thus have said limitations.

    • Giooschi@lemmy.world
      link
      fedilink
      English
      arrow-up
      1
      ·
      16 days ago

      But the one time I looked at a rust git repo I couldn’t even find where the code to do a thing was.

      IMO that tells more about how the project was organized and names things than the language used.

      So I think probably, the best way IS to go the way linus did. Just go ahead and write a very basic working kernel in rust. If the project is popular it will gain momentum.

      As the other commenter pointed out, there’s Redox. The issue is that this completly disregards an incremental approach: you have to rewrite everything before it comes usable, you can’t do it piece by piece. Currently the approach of Rust for Linux is not even to rewrite things, but to allow writing new drivers in Rust.

      Trying to slowly adapt parts of the kernel to rust and then complain when long term C developers don’t want to learn a new language in order to help isn’t going to make many friends on that team.

      Have you seen the conference video? That’s not just refusal to learn a new language, it’s open hostility. And it’s not the only instance, for example Asahi Lina also reported unreasonable behaviour by some maintainers just because she wrote Rust code, even when Rust was not involved.

  • milis@programming.dev
    link
    fedilink
    arrow-up
    6
    ·
    16 days ago

    Not an expert in both the languages but I heard that C developers are trained to use memory smartly, sometimes even reuse a range of allocated memory for completely different purpose to save cycles freeing and reallocating. But for Rust developers, everything is about making sure when one should get the hand away from the memory, and whose memory is allowed to be touched.

    Sounds to me like sharing rides that maximise economically but we may have some oops moments sitting on someone’s laps vs absolute private rides to make sure no one in your family will be harmed but we have to make sure everyone gets a car only when needed.

    It is quite interesting to see how it will work out eventually…

    • corsicanguppy@lemmy.ca
      link
      fedilink
      English
      arrow-up
      11
      ·
      16 days ago

      I heard that C developers are trained to use memory smartly

      Kernel coders are an entirely different breed, and when I worked with a few of them they were just stunning. The smartest man I know on the planet so far coded on the Unix kernel – the one that IBM forced back to Novell who’d already fired their staff after selling it, and thus shelved it and killed Unix. He is and was amazing.

      So yes, I can confirm that Kernel devs know how to manage their memory – they use very little, they allocate and free it, and they build very small, tight, optimized kernels by knowing how the optimizer will do things and how to hint it to do what they know needs to happen.

      Yeah, it’s a skill. Yeah, it takes skilled people. I’d like to one day find out that really big training wheels will let anyone build code that well, but I’ve seen the goal and I don’t expect we’re there yet.

      Let the kernel be built by kernel devs.

      • LordKitsuna@lemmy.world
        link
        fedilink
        arrow-up
        18
        ·
        edit-2
        16 days ago

        They are amazing but at the end of the day they are still humans and they can make mistakes. In the YouTube video referenced one of the C devs is heavily against rust.

        Decided to go look for CVEs from code the guy manages (Ted Ts’o) I found these

        CVE-2024-42304 — crash from undocumented function parameter invariants

        CVE-2024-40955 — out of bounds read

        CVE-2024-0775 — use-after-free

        CVE-2023-2513 — use-after-free

        CVE-2023-1252 — use-after-free

        CVE-2022-1184 — use-after-free

        CVE-2020-14314 — out of bounds read

        CVE-2019-19447 — use-after-free

        CVE-2018-10879 — use-after-free

        CVE-2018-10878 — out of bounds write

        CVE-2018-10881 — out of bounds read

        CVE-2015-8324 — null pointer dereference

        CVE-2014-8086 — race condition

        CVE-2011-2493 — call function pointer in uninitialized struct

        CVE-2009-0748 — null pointer dereference

        Do you see a pattern in the type of error here? It’s pretty much entirely memory related and right in the wheelhouse of something rust would just outright not allow short of just slapping everything into unsafe blocks.

        The Old Guard is not perfect, and they are acting as a barrier to new talent coming in. Sometimes change is good and I’m heavily in the camp that rust one of those times. Linus seems to agree as he allowed the code into the kernel which he would never do lightly or just because it’s fomo

      • kautau@lemmy.world
        link
        fedilink
        arrow-up
        5
        ·
        edit-2
        16 days ago

        But on the other hand you can’t expect some smaller and smaller subset of the population to primarily just learn C and meet the criteria of a kernel dev.

        I absolutely agree with all your points, and most rust devs would agree, but the general idea is that over time that energy (which would have been spent tweaking malloc and such) should be spent on the rust compiler and memory management systems, which is already magic as someone who as written a lot of c, c++, and spent the better part of a year learning rust. (I’m no expert of course, but I have a pretty decent grasp on the low level memory management of both the Linux kernel and the rust compiler).

        So that over time the effort that would be spent on memory management and kernel functionality can be properly divided. Rust not being efficient somewhere in catching memory faults or managing memory? Fix it. Someone writing unsafe rust code? Fix it.

        I think at the end of the day everyone wants the same thing which is a memory safe kernel, and I think that rust Is being shoehorned into kernel projects too early in places where it shouldn’t be, but I also think there is unnatural resistance to it just because it’s different elsewhere to “how it’s always been done.”