Skip to content

Instantly share code, notes, and snippets.

@fasterthanlime
Last active November 18, 2023 12:11
Show Gist options
  • Star 66 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save fasterthanlime/42da9378768aebef662dd26dddf04849 to your computer and use it in GitHub Desktop.
Save fasterthanlime/42da9378768aebef662dd26dddf04849 to your computer and use it in GitHub Desktop.
Rust: The wrong people are resigning

Rust: The wrong people are resigning

(Note: I usually blog at https://fasterthanli.me but I'm away for a couple days and wanted to make a statement)

Up until recently, I was part of two private online discussion spaces where a bunch of Rust people hung out.

So, whenever there was drama, like when the entire mod team resigned, or when a trademark draft got a lot of people seriously worried, or just recently when RustConf took back the keynote from ThePHD https://thephd.dev/i-am-no-longer-speaking-at-rustconf-2023 then JT resigned over it https://www.jntrnr.com/why-i-left-rust/ and Saoirse wrote about governance https://without.boats/blog/if-you-can-keep-it/, I had some place to go, to assess how serious things were this time around.

And most of the time, it turned out that the intentions were, in fact, good! But the execution was poor — or that there was a lack of resources, a lack of process, or a lack of manpower, or a deadline to hold, or it was just that person being that person again.

Except, it’s never just that one person, you know? Otherwise I could burn myself by outing them, and do the whole community a favor.

It’s really more like those 4 or 5 persons.

And it’s not like they’re really bad people, it’s more like they tend to… use back channels rather than follow process? Or they have too many responsibilities, and are unable to fulfill all of them properly? Or maybe they don’t listen enough?

Or maybe it’s not individuals, but pairs of individuals who have a feud for some reason or other (sometimes completely valid). Maybe one party feels slighted by something that happened years ago, maybe they have irreconcilable goals or technical views, or differing opinions on what belongs where.

But, at no point was there anything nearly as malicious as what everyone else, in the “true out” group, speculated.

The recent incident with ThePHD’s keynote downgrade was not racially motivated, thankfully, but… if that’s what it looks like from the outside, and any form of official communication is still days or weeks away, does it really make a difference?

I was able to reassure myself, by checking these private discussion places, that there were good people, fighting for the right thing to be done. That things weren’t irremediably broken. That there was hope for improvement in the near future.

But what about all the others? Those who only had the rumors, the sparse official statements, the deleted subreddit threads to go by?

Part of me was very disappointed at ThePrimeagen's content around the trademark policy, which in my view added fuel to the fire and resulted in actual harassment (edit: it appears things have improved since, I'm still catching up)

Part of me was very disappointed in the enormous waste of time that is the “crablang” fork, and wishes the people involved could have engaged in a constructive manner instead.

But then, part of me can think of a very simple way to prevent that from happening again: the Rust project as a whole needs to be better, and communicate better.

It should be possible to be confident and optimistic about the future of the Rust project even without having back channels. There’s people several years into research or business endeavors staked on Rust. They deserve clarity.

Additionally, it should be possible to engage with the Rust project at the level you choose to.

I have chosen to do Rust education (and, one could argue, evangelism) and that’s what I want to keep doing — even though it is VERY tempting to try and get involved with governance matters

(I have seen many follow the “to do X I must first fix Y” thread all the way into burnout. I won’t be doing that.)

I’d be really excited if ThePHD & friends organized a conference, but it shouldn’t be a prerequisite for them to be able to explore and present research re: compile-time reflection in Rust https://soasis.org/posts/a-mirror-for-rust-a-plan-for-generic-compile-time-introspection-in-rust/

So!

I’m joining the “out group” (or leaving the “in group”, depending on how you look at it).

Rust deserves competent critics, and I intend to do my part, using only publicly available knowledge from now on.

The state of my “in group” knowledge will soon be obsolete, but as of today, I can tell you that all the good people who could’ve left haven’t yet, and that all the people who should’ve resigned, haven’t yet.

I’ll be here, waiting for that to happen. If there’s any hope for the project moving forward, there must be accountability.

@vertesians
Copy link

vertesians commented May 30, 2023

@vertesians that is an incredibly bad take. Your mental health as an outsider is not affected by this, and also isn't more important than fasterthanlime's. Presenting yourself as the victim is laughable.

The other things you mention (trademark policy draft, moderation team resignation) have nothing to do with this, and I doubt fasterthanlime was involved in them at all. But if you must know, the trademark policy draft was approved by... Noone. It is a draft, for god's sake! It is not legally binding!

@Aloso Of course it isn't more important than fasterthanlime's. It also isn't less important, and I can't not be frustrated and anxious that something that my livelihood depends on is being damaged by something that shouldn't be happening. I sympathise with fasterthanlime, but as members of the Rust team, he and his coworkers have a responsibility to not allow crap like this to happen!

And we don't know if those incidents have nothing to do with this. We don't know who was involved in the trademark draft. We know nothing about those incidents because they've refused to tell us! Are they directly connected? Maybe not. But at best it speaks of a mismanaged internal culture.

And at worst... it suggests that the Rust team is filled with abusive personalities, if not outright bigoted ones. That idea might sound unthinkable and I'd like to not think it, but given just how many organizations and corporations have turned out to be filled with terrible and abusive people over the last few years, it's not something that I can discount.

@uynas1
Copy link

uynas1 commented May 30, 2023

interesting things

@panekj
Copy link

panekj commented May 30, 2023

I sympathise with fasterthanlime, but as members of the Rust team, he and his coworkers [...]

Amos is not part of any Rust team and also is not employed by anyone.

@fasterthanlime
Copy link
Author

I sympathise with fasterthanlime, but as members of the Rust team, he and his coworkers [...]

Amos is not part of any Rust team and also is not employed by anyone.

That is correct. I did receive 2x2500 USD in 2023 from the Rust foundation, which was relatively no-strings-attached. They were mostly just happy I was writing a bout Rust. It's a drop in the bucket of my income and I would give it back if I needed my freedom of speech back (but luckily I can criticize them all I want even while taking their money).

@amcgregor
Copy link

Some rando jerk on Twitter qrt something isn't representative of anything, considering the current state of Twitter you can get garbage tier takes in qrts saying just about anything.

I hear you—but for someone who has "Creator of Flask" on their Twitter Bio, that is telling. He also seems to be involved in the rust project. Big yikes.

As a Python developer looking on from a mountain on the other side of a valley, I was surprised to see Armin's name pop up. Only to confirm an earlier suspicion of mine. Well… 🤬. Full disclosure: I'm the author of a "competing" web framework one third the size of Flask, with far fewer silly, needless opinions.

"Shots fired." (But really, though… an endpoint returning a dictionary does not always mean the client wants JSON. Accept negotiation exists. Apparently I'm still bitter about this one.) Also quite glad I ditched the bird site and never looked back.

This is far from the first time this type of FOSS community management drama has happened. None of this is new or unique. — RandomErrorMessage

Uh, well, damn straight. I was forced to write my own after another—not even Flask—sabotaged my projects with a change no-one saw any problems with. Except virtually all of my commercial projects, which had a problem with it.

We now live in a world where corporate office politics in FOSS projects is normalized, and it just keeps trending that way.

See also "The Resolution of the Bitcoin Experiment" involving disputes over block size (to alleviate network congestion, involving a few forks) and how it rapidly devolved into politics.

@matklad
Copy link

matklad commented May 30, 2023

Given the screenshots here, it is important to link follow up apology: https://twitter.com/mitsuhiko/status/1663559716180758537

@GottZ
Copy link

GottZ commented May 31, 2023

there are people who literally don't care about politics.
especially in dev.
it is quite easy to convince them for support if you want to inject your own political views onto things.

in my humble opinion, there should be a guideline that explicitely prefers "value" over "opinion".

if i'm not mistaken, various decisions by the rust foundation throughout the last few months were highly opinionated political decisions rather than value pushing actions.

it is as if someone prefers to keep a bush in a certain shape without asking the community what shape it should be even though the bush is owned and cared for by the community.

simply said: we need proper leadership here.
pure dictation is not the way.

@LemmingAvalanche
Copy link

For riling up the masses,

I’m gonna guess that this is how you feel about your own readership.

I’ll personally boycott your writings from now on.

@RandomErrorMessage
Copy link

It appears Amos has taken this opportunity to seize power for himself. I shouldn't be a surprised. Obviously the correct thing to do in this situation was to be transparent but Amos insisted that transparency and accountability are bad, for some reason. Now the other shoe drops and he's posted this: rust-lang/team#1006

I will be unsurprised when nothing happens, either way. There will never be accountability, there will never be transparency. The nepotism and high school politics will continue. Everyone who works at a foundation in a non-technical capacity is a grifter and a Machiavellian, it's really as simple as that.

@RandomErrorMessage
Copy link

RandomErrorMessage commented Jun 3, 2023

From my POV I can accept this situation and move forward and have a hope that it will not repeat in the future.

Just remember it for next time when yet another mean girls episode happens and the wagons start circling. Lesson learned, experience gain, who? Who exactly learned a lesson? What changed?

@Hasnabruzzn
Copy link

Hasnabruzzn commented Jun 3, 2023

Everyone who works at a foundation in a non-technical capacity...

might be doing the job of a foundation!

So first: Foundations are for receiving and administering funds. Their main purpose is financial works, not technical.
Second: Your comment is off-topic, as this one is not a Rust Foundation drama

@alper
Copy link

alper commented Jun 3, 2023

It appears Amos has taken this opportunity to seize power for himself.

I think this is not at all a bad outcome.

As much as I'd like somebody like him to be BDFL, I don't think he or anybody else could carry that burden. It looks like the project is just too big and has muddled through for too long without proper organization and frankly without enough adults in the room.

@timkofu
Copy link

timkofu commented Jun 12, 2023

Any organization that allows division and strife to flourish does not prosper. Python and C++ with all their warts have survived and much improved over time mostly because of leadership intolerant of these destructive situations (IMO).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment