← Back to context

Comment by bezier-curve

10 months ago

I think if I was indicted by Linus and told I'm a problem over spreading awareness about a position on social media, I too would burn out pretty quickly. That's how you crush motivation. There's a deeper issue in open-source culture where harshness and gatekeeping drive away passionate contributors.

"spreading awareness about a position" isn't a very accurate way to describe what happened. This is the guy who said he wanted to use social media to create a "hall of shame" for kernel developers. Of course Linus told him to knock it off, that's ridiculously unprofessional behavior.

  • Background Story

    https://lore.kernel.org/lkml/a869236a-1d59-4524-a86b-be08a15...

    https://lore.kernel.org/lkml/a869236a-1d59-4524-a86b-be08a15...

    https://lore.kernel.org/lkml/a869236a-1d59-4524-a86b-be08a15...

    https://lore.kernel.org/lkml/a869236a-1d59-4524-a86b-be08a15...

        1. I think the the DMA maintainer is correct. Don't intertwine implementation languages, that is bad idea and a maintenance hell.  
        2. Social media "hall of shame" 
        3. Torvalds is forced to make a statement because of 2. Not 1.

    • And here are the Hector's posts on Mastodon, now deleted:

      https://archive.is/uLiWX https://archive.is/rESxe

      "Behold, a Linux maintainer openly admitting to attempting to sabotage the entire Rust for Linux project (...) Personally, I would consider this grounds for removal of Christoph from the Linux project on Code of Conduct violation grounds, but sadly I doubt much will happen other than draining a lot of people's energy and will to continue the project until Linus says "fuck you" or something. (...)"

      "Thinking of literally starting a Linux maintainer hall of shame. Not for public consumption, but to help new kernel contributors know what to expect. Every experienced kernel submitter has this in their head, maybe it should be finally written down."

      "Okay I literally just started this privately and the first 3 names involved are all people named variants on "Christ". Maybe there's a pattern here... religion secretly trying to sabotage the Linux kernel behind the scenes??? Edit: /s because apparently some people need it."

  • The issue is that Linus put the Rust developers in an impossible position: On the one hand he approved Rust in the kernel, but then never ever ever has the balls to enforce that decision.

    Then, the fanatical C developers openly sabotage and work against all the Rust developers efforts. So, the last option for the Rust developers is to take it to social media. Otherwise, the C developers get away with creating a self fulfilling prophecy: Sabotage all Rust efforts, then claim the Rust experiment failed.

    Linus didn't seem to ever have the time to actually take a stance, except of course on the social media issue. Fully ignoring all context. It's the equivalent of a school principal suspending the bullied victim for finally snapping and punching their bully.

    • The thread didn't really have drama before marcan stirred the pot. There was a disagreement, but the individuals pushing for the merge were not attempting to escalate, only try to find a path forward in a way that might make both parties happy with the compromise. The drama and social media outrage arguably did nothing to help, and as far as I can tell, simply makes for good entertainment for onlookers who like to gossip. While it would be nice to have Linus help out here with a clear resolution after escalation, it's clear to me that the behavior marcan displayed is the higher priority problem to address.

      9 replies →

    • I agree. Everyone here seems to be criticising Marcan for not being professional, but it’s very difficult to remain professional when the people you’re working with gloat in public that they intend to completely sabotage your work product despite it being given explicit support by the CEO. Why are you the only one criticising the coworkers? I feel like I’m taking crazy pills reading this thread.

      2 replies →

    • > So, the last option for the Rust developers is to take it to social media.

      Social media is an amplifier of interpersonal problems, not a place to seek for a resolution for them - unless your intended "resolution" is to beat down the other side, the people you have to work alongside by necessity, via potshots from random strangers who hardly ever bother to inform themselves fully of the situation. That is never going to be a true resolution, and I think Linus, for all his faults, recognizes that and that's why he draws the line there.

    • The C maintainer in question had no power to stop the code from being merged, it wasn't in his directory. He was tagged as a courtesy in case he wanted to do a drive-by review since the code was wrapping his subsystem. The Rust code being reviewed wasn't written by marcan, and the other Rust developers called him out for taking the argument to social media when the code was likely going to be merged anyway (see https://lore.kernel.org/rust-for-linux/Z6OzgBYZNJPr_ZD1@phen... and https://lore.kernel.org/rust-for-linux/CAPM=9tzPR9wd=3Wbjnp-... ).

  • Yup, I think it went too far.

    The fact is, you need buy in from other devs and if a dev won't buy in you need to work out a way to avoid them or avoid conflict. It sucks, it slows things down, but frankly making it a "them vs us" is a sure fire way to make them oppose any change you want to make.

    Public shaming even more disastrous as there's no better way to entrench someone in a position.

    • I'm not entirely convinced they meant to truly make a public hall of shame.

      It sounded to me like a list of "friends who want to get more involved, I'll let you know who to avoid". Then, I read the interactions that sparked that post, and I could totally understand the frustration from OP's part.

      Linus being unwilling to take a real stand on maintainers blocking Rust just because doesn't really help.

      1 reply →

    • But the point is that the Rust developers have tried literally everything else.

      If the C developers make it a "Them vs Us" thing, there IS NO ALTERNATIVE for the Rust developers.

      Linus' reaction is quite literally the equivalent of a parent only punishing the loudest child, not the child that's been silently bullying that kid for months.

      7 replies →

    • It's deeply ironic that he's complaining about kernel maintainers supposedly forming secret cliques.

      However... this is the same man who made a sock puppet V-Tuber account, and acts in every way like they are two people; even though they've accidentally on-stream shared the system username, shared they have exactly the same kernel version, same KDE configuration, same login, same time zone, even (if I recall correctly) accidentally making GitHub commits as the other person once in a while. He also did this on the Linux kernel mailing lists, where he still maintains the charade.

      Point out that's weird, or that it's weird for a maintainer to have a fake persona as a walking female stereotype; and you're the one he shreds and mocks - while simultaneously not denying it. For me, I caught on immediately when I saw the supposed "hijacking" of his stream on April Fool's day, which was her first appearance; and stopped donating. I don't pay people to support stereotypes about women in STEM.

      11 replies →

  • Wow, what an uncharitable read. Are you aware of what that term means? He said it was not about literally shaming people, but showing what contributing to the kernel is like, and even clarified it wouldn't be for public consumption. It's a colloquialism for a resource where peers can learn from each other's mistakes. My high school Spanish class had a hall of shame.

    It's a magnitude more professional than the extremely over the top and public emails that Linus shares, which HN jerks off over. I too would be burnt out if people were picking apart what I said so closely but clapping when Linus says "this code is retarded"

    • "hall of shame" inherently means it's about literally shaming people. If that isn't what he meant, then he shouldn't have used those words.

      > It's a magnitude more professional than the extremely over the top and public emails that Linus shares

      Since when do two wrongs make a right? I think it's perfectly fair to say Linus hasn't shown the best leadership here. But that doesn't excuse Marcan's behavior.

Brigading has no place in open source communities. There are some members of the Rust community who believe C is obsolete and that C programmers should either switch to Rust or get out of the way. This is an extremely toxic attitude that has no place in the Linux kernel!

The fact remains: Rust doesn’t solve all of C’s problems. It trades them off for a whole lot of new problems, many of which are challenging to address in a kernel development setting (and much less of a problem for userspace software).

This makes the “C is obsolete” position even harder to defend and ignoring the concerns of long-term kernel maintainers is not going to get anywhere! I think these folks ought to learn the lesson of Chesterton’s Fence [1] before continuing on their journey to promote Rust, which does a lot of great things!

[1] https://en.wikipedia.org/wiki/G._K._Chesterton#Chesterton's_...

  • > Brigading has no place in open source communities.

    Agreed.

    > There are some members of the Rust community who believe C is obsolete and that C programmers should either switch to Rust or get out of the way. This is an extremely toxic attitude that has no place in the Linux kernel!

    Would you care to share some examples of the Rust for Linux community who have said this? I'm unaware of Hector or anyone else saying anything similar? Or is this just a fear of yours?

    I think we should be very clear -- believing the future of systems programming is mostly memory safe isn't the same thing as saying "C programmers should...get out of the way".

    • I didn't say Rust for Linux community, I said Rust community. Here's an example [1]. You don't have to search online forums and mailing lists very long to find countless others like this.

      The problem with the brigading (which has been done by the Rust for Linux community) is that it invites these zealots into the conversation. It's totally inappropriate and not at all constructive towards a compromise.

      Plus the stated goal of Rust for Linux is to enable people to write drivers in Rust, not to rewrite the whole kernel in Rust. Yet there are countless people in the wider Rust community that believe Rust is the future and every line of C code still in use should be rewritten in Rust. It's gotten so prominent that "Rewrite it in Rust" has become a meme at this point [2]. There are now many developers in other languages (C and C++ especially) who reject Rust simply because they don't like the community.

      [1] https://www.phoronix.com/forums/forum/software/general-linux...

      [2] https://goto.ucsd.edu/~rjhala/hotos-ffi.pdf

      15 replies →

    • >Would you care to share some examples of the Rust for Linux community who have said this? I'm unaware of Hector or anyone else saying anything similar?

      In fact, he said that as his very first reply to that thread:

      https://lore.kernel.org/lkml/2b9b75d1-eb8e-494a-b05f-59f75c9...

      >Everything else is distractions orchestrated by a subset of saboteur maintainers who are trying to demoralize you until you give up, because they know they're going to be on the losing side of history sooner or later. No amount of sabotage from old entrenched maintainers is going to stop the world from moving forward towards memory-safe languages.

      6 replies →

  • The solution will be to rewrite the kernel in Zig!

    • My impression is the average Zig programmer is more interested in making a better Linux than trying to prove Zig can be used in Linux.

      There are _already_ dozens of hobby OS projects and embedded groups doing systems work in Zig. Everyone knows Zig is a systems language. It doesn't have a chip on their shoulder.

Maintaining the Linux kernel is all about gatekeeping. How else do you keep out bad code?

  • From what I've seen this is excellent code, some people just really don't like Rust.

    • Aside from hatred of Rust and Rust developers there is a bigger problem. The Rust guys are twisting the C developers' arms to iron out API semantics because there is so much behavior and API usage that can't be defined in C and it's driving C devs insane. The Rust people are doing the right thing but doing the right thing is extremely annoying for the C devs.

    • The last drama wasn't about the guy not liking drama, he just don't like nor want to maintain a codebase with two languages, but I think they really need to say it directly instead of calling it canser and leaving people to think he was calling rust cancer and not multiple languages codebase cancer

      1 reply →

  • What does social media have to do with bad code, though?

    • > What does social media have to do with bad code, though?

      Nothing. That's why this was said:

      >> *There's a deeper issue* in open-source culture where harshness and gatekeeping drive away passionate contributors.

      It's separate gatekeeping.

      I entertained getting involved in the kernel for about 3 days, in college. The process is so complex, I just went on to do other fun things. The drama will turn off others. Organizational apathy is much worse, imo. I have quit jobs for this reason and that was when I got paid to stay.

      3 replies →

Ok, so you are just "spreading awareness" but Linus is "indicting". I guess it is good if you and Linus go their separate ways.

  • This is a rude comment that isn't downvoted because of hive mind effects. Not biting.

    • You’re not biting because it’s true.

      Linux said no brigading. Hector resigns twice and in the second time, despite saying he wouldn’t elaborate on Rust vs Linux, proceeds to blame Linus and start another social media brigade.

      3 replies →

Not to mention stalkers ? Doesn't matter how much you love a community, one or two psychopaths can maybe it simply not-worth-it.

It's hard enough in physical spaces to remove abusers (usually the abused just stop showing up), I can't imagine there's an answer for preventing this kind of behavior in online spaces

It's not really unprecedented. Reminds me of Paragon Software trying to merge their code for an NTFS driver and getting told-off because the driver code was so awful: https://www.theregister.com/2021/09/06/github_merges_useless...

If you want your code merged in the kernel, you have to think about things from Linus' perspective. You cannot in any circumstances try to shame someone into adopting an enormous and unsustainable workload.

  • The linked article doesn't say the submitted driver code was awful. In fact, it says Paragon submitted the driver after Linus suggested they submit it.

    What the article quotes Linus complaining about is a process issue. Paragon apparently used GitHub's GUI to merge some of their branches rather than the git CLI. Linus would prefer they use the CLI to merge branches because the GitHub GUI reportedly omits important metadata from merge commits, such as the developer email, and encourages uninformative commit messages.

  • I see where the article mentions complaints about Github and commit messages, can you quote the portion about driver code quality?

  • As that kernel maintainer clearly stated this was not because the code was awful, but because the code was written in Rust and it was therefore cancer.

    • That's not what he said.

      From the horse's mouth (lkml; Hellwig's headers chopped for brevity):

      On Thu, Jan 16, 2025 at 02:17:24PM +0100, Danilo Krummrich wrote: > Since there hasn't been a reply so far, I assume that we're good with > maintaining the DMA Rust abstractions separately.

      No, I'm not. This was an explicit:

      Nacked-by: Christoph Hellwig <hch@lst.de>

      And I also do not want another maintainer. If you want to make Linux impossible to maintain due to a cross-language codebase do that in your driver so that you have to do it instead of spreading this cancer to core subsystems. (where this cancer explicitly is a cross-language codebase and not rust itself, just to escape the flameware brigade).

      ---

      Hellwig was abrasive and unreasonable. But there is no need to perpetuate, repeat, and repost absolutely one-sided, self-serving misrepresentations of the words he used.

      You don't need to paraphrase. You don't need to guess. You don't need to distill or simplify.

      He wrote English so we could read it; stop paraphrasing. It's unhelpful at best and nefarious at worst.

      Edit: I think it's very telling that there is a crowd here that would literally downvote the actual quote. Actually it's more sad than anything.

      1 reply →

Linus didn't say he was the problem, he said he should consider that maybe he was the problem.

That's an invitation to self-reflection.

We all should consider that, in every discussion.

The opposite is to think that everyone who disagrees is by definition wrong, which can never be productive.

You’re right, it’s mostly any open source code projects too. I’ve tried to contribute to projects where they ignore my merge request and take my code and merge it in under their own account. I call this behavior “demonstrating the moat” in which the Maintainers are more concerned with maintaining a moat around their project that they actively go out of their way to prevent contribution under the guise that your contribution did not correctly cross the moat. Even if the moat is mostly decorative and ceremonial.

  • Open source is just what the name means though, the source is open.

    It doesn't also imply something like open contributions.

    • Then turn off merge requests if you don’t want your project accepting contributions. Remove your CONTRIBUTING.md. Stop being welcoming if all you want to do is show off your source code. Don’t have a document explaining that I need to sign an agreement to contribute.