The Birth of the R-word or How to Lose Programming Language Community's Trust in a Few Days

2023-04-13
rust
drama
rant

Disclosure: The material in this blog has not been reviewed, endorsed, or approved of by the Rust Foundation. For more information on the Rust Foundation Trademark Policy, click here.

… or so we are supposed to say in front of any content in any way relating to Rust, if the delightful wishes of the Rust Foundation will come to pass.

It was a crazy couple of days for everybody involved with Rust in any way, form, or shape. There will be a lot of swear words here, sorry for that. Don’t read it if it’s offensive to you. Also, please note that sarcasm is used extensively, almost to a fault, throughout this post. You have been warned.

The Drama Recap

A week ago (7th of April), the Rust Foundation published a call for comments for the draft of Rust trademark policy.

The start of it all The start of it all

A lot of people were surprised, taken aback, scared, disappointed, and upset by the language and the scope of that document. Among other things, it explicitly prohibited you from:

  • Using the words Rust, Cargo, or Clippy, the Rust gear logo for any commercial purpose whatsoever (so, things like online courses, monetized community content, etc.).
  • Creating Cargo commands (because you are not allowed to call anything that is not officially sanctioned by the Rust Foundation in whole or in part (c) with the trademarked word Cargo).
  • Publishing (most of) Rust-related content without the disclaimer you see above this post.
  • Organizing community meetups and conferences where attendants are allowed to carry guns (wut?) or that are running contrary to the “local health regulations” (WUT?).
  • Using any of the now protected r-words in your domain name or name of your product or business.
  • Modifying the sacred logo in any way, shape, or form (so I guess I will need to replace most my YouTube thumbnails, lol).
  • Oh, and btw, if you’re tight with the Foundation, they might just allow you some of that, but you, weird randos on the internets, may apply for their special permission for which they (explicitly!) have no process in place.
  • But you know, you can use Ferris however you’d like! Because the Rust Foundation has no rights whatsoever wrt Ferris, and Ferris is in public domain - imagine the kind of person who can try to use other person’s public domain work to show that they’ve got some carrot, not only a stick.

Surprisingly only to the members of the Rust Foundation, the response on social media was torrential. Some examples:

The creator of regex crate and ripgrep is surprised The creator of regex crate and ripgrep is surprised

People pointing out how this will break stuff People pointing out how this will break existing stuff

Everybody so excited about those changes, aren't they? Everybody so excited about those changes, aren’t they?

At least the jokes are good At least the jokes are good

r/rust is not excited either r/rust is not excited either

Politics is in It’s one thing to be tolerant and quite another to push your US political fights onto others

Even Oracle is more permissive Even Oracle is more permissive

I also entered the fray without realizing to which extent it will escalate I also entered the fray without realizing to which extent it will escalate

You can go through the threads on Twitter and Reddit to get the taste. It’s very hard to find anybody who supports this, let alone agrees with it. The response of the community was an adamant “nope, we don’t need it in this form for sure, and we are not even sure that we need it in any form to begin with”.

Some people started to say that they will drop Rust and move to other programming languages. Overall though, at this point I was sure that the Rust Foundation will see how community reacted, apologizes, and backtracks this poorly thought out proposal. And at first it looked like that!

The @rustlang Twitter seemed receptive to the feedback The @rustlang Twitter seemed receptive to the feedback

Some of the Rust contributors also tried to assure people that this is only a draft Some of the Rust contributors also tried to assure people that this is only a draft

However, the respite was short lived, because the Rust Foundation decided that the SVB-style comms worked just fine, so let’s do more of that!

"We cannot read the room at all" “We cannot read the room at all”

I won’t put a long thread of screenshots, but you can imagine that this didn’t reassure anybody, in fact it sounded very much like “why the fuck you don’t like what we did there, we’ll be fake polite, but fuck you all, and btw, we can do whatever we want and will stick to our timeline instead of doing damage control”. That was pretty much the universal reading of this tweet, as you can see in the comments.

A nice summary of the feels A nice summary of the feels

Some things that the Foundation seemed to be incapable to grasp are that:

  • The way the communicate that “proposal” and the content of that proposal ALREADY did a significant damage to the Rust brand they wished to protect with their trademark policy. I was approached by 3 different people asking me questions about this drama in the last day alone. I cannot imagine how exhausted people who are more visible in the community feel at this point.
  • They demonstrated that they are not aware of the community ecosystem that made Rust that “most loved programming language” for years: the community-created courses, libraries, YouTube channels explaining Rust, people pushing Rust at their workplaces, etc. It’s very hard to not see that a lot of Rust YouTube channels (mine included) use modified versions of their logo. It raises questions how involved those “project directors” drafting this stuff are with Rust at all, considering that the cargo subcommands thing somehow wasn’t raised in “8 months” they discussed it. Ditto for all the libraries with rust in their names. And no, I’ve never seen the mythical “nazi Rust user group” and Rust logos with swastikas and such. How come the project directors do? How come the Foundation fights with the windmills and is ready to sacrifice most of the things that make Rust good in the process?
  • And most crucially: when you fuck up, you apologize. You start with the apology. Real one, no “but”s. You don’t pretend that everything’s rosy and good and stick to your process.

And look, there were for sure people who took it all way to far. I’m sure that there was some disgusting stuff that the Foundation members got in DMs, in that form, etc. However, what I at least saw was the community that was shocked and upset. Many of those people invested hundreds of hours into making Rust-related content, writing code, etc.

But the point stands: you won’t get away with downplaying the concerns of your community. 37signals folks wrote beautifully about it in their book “It Doesn’t Have to be Crazy at Work”:

37signals's advice on dealing with complaints 37signals’s advice on dealing with complaints

At this point I thought: c’mon, it cannot be that bad. For sure it’s just a bad take from some person, I’m sure the Rust Foundation & Project will correct it. But then I saw this today:

A spark of hope? A spark of hope?

I opened it expecting to see a big bold apology at the beginning. Let’s just say, it’s explicitly NOT what this post is about.

In fact, 90% of this document is pretty much “we Rust-the-project and the Rust Foundation are one and the same, like Christ and the Holy Spirit (WHO CARES?), and you, bad baddies, how dare you call us bad names, and stop harassing us”. It then gleefully proceeds to say with confidence that Rust MUST have a trademark (even though the question if it’s even worth the hassle was probably the #1 question the community was raising!) and the Project/Foundation/Project Directors are all very happy to do whatever it takes to enforce the trademark:

ANYTHING FOR THE TRADEMARK ANYTHING FOR THE TRADEMARK

The post also pulls the CoC and swings with it aggressively, note the emphasis (the only emphasis in the post!):

HOW DARE YOU HOW DARE YOU

It does offer the apology-not-an-apology thingy in the very end …

Sounds sincere, right? Sounds sincere, right?

but when you read the post in its entirety, and note the passive-aggressive tone in which it’s written, the open disregard and downplaying of the community feedback (we are all like children to the everwise Directors, only capable to utter the most inconsequential and conflicting things, it seems), the casual “yes” to the question if trademark is even needed (and if you read any actual discussion on the community forums, you can see that most people in the community see it completely differently!), the double down on the draft and the holy Process said draft entails, it’s very hard to believe that anybody writing that had an intention of deescalating.

The community reaction? Well, it seems most people are reading exactly what I’m reading there too:

Nope, this is not helpful #1 “Nope, this is not helpful” #1

Nope, this is not helpful #2 “Nope, this is not helpful” #2

Nope, this is not helpful #3 “Nope, this is not helpful” #3

Yet again, you will find it hard to find many people, if anybody, who thinks that this Rust project’s response was appropriate.

My Perspective

Overall, it seems like a classic case of vulnerable egos and all-too-familiar case of leadership that is profoundly incapable to lead. Instead of saying “shit, we fucked up, sorry, we will talk with the community and try to learn what is actually needed”, we got escalation and open attack of the Rust Foundation on the Rust language community. There were several ways to de-escalate this situation. Pulling this “draft”, apologizing, and saying that the current permissive trademark policy stays for now, and any future changes to the trademark policy will only be initiated with extensive community consultation through the existing RFC process would’ve been a good first step on repairing the trust that the Foundation clearly broke. That didn’t happen.

I’ve been programming in Rust since 2015. I don’t know most of the names that this blog post is signed with. I do know a lot of names of the people who were concerned about both the trademark policy and, even more, about the way it was communicated. I did hear over the last few days enough people to say the same. I opened the rust-lang repo and tried to find names of those project directors among the top contributors. I could not. I did, however, find that the Rust Foundation is full of people working for such amazing companies such as M$, G$GL, M$TA, and AMZN. See for yourself (source).

And we also learned that fucking up the whole community ecosystem for exactly no recognizable gain of any kind is completely fine with the Foundation. I’ve personally lost trust in the Foundation, and I believe that at this point the conversation is no longer about the trademark policy. We need to have a serious conversation about the governance of the project, the level corporate interests are currently over-represented in the Foundation, and about the future place, if any, the Foundation might or might not have in the Rust community.

Furthermore, I for one will stop using Rust logos in my videos and blog posts. I will still do videos about Rust, but I will redirect more of my time towards Elixir, Julia, and Python, until this situation is resolved. You see, I’m not employed by the FAANG as some of the project directors that want to prohibit any commercial activity associated with Rust education, gotta earn my bread somewhere, and am not super happy about axing or redoing my work based on somebody’s whim. I don’t expect José Valim or PSF to sue me for mentioning their languages’ names at least.

Harassment is bad and not acceptable. Yet, marginalizing and disrespecting your community for a week is not acceptable either, dear Rust Foundation. Please, for all our sakes, do better.

If you enjoyed this content, you can sponsor me on Github to produce more videos / educational blog posts.

And if you're looking for consulting services, feel free to contact me .