Sadly, the actix-web maintainer has quit. Check out the repo - it's gone. He moved it back to a personal account and may delete it entirely. He'...
For further actions, you may consider blocking this person and/or reporting abuse
What a shame of Rust community!
Providing the GUN while blaming people using the GUN!!!
Enterprises evaluate a thing not just because it is labeled as SAFE/UNSAFE but the output/performance/usability.
I’m not sure how to see the future of actix-web at present. Seems like it’s found a new maintainer. Hopefully continues — I’m starting a new project based around it for performance reasons. 🙏
Ridiculous behavior by those 'haters' ... to all of them I would, say "get a life", contribute something instead of trashing other people's efforts.
Sadly some of the people who became the haters did so because they tried contributing and felt their efforts were trashed. This doesn't excuse the reddit mob that was definitely over the line and disproportionate, however.
This time around he actually deleted an issue that was receiving personally directed comments.
Everyone behaved poorly, but not proportionately so.
I'm new enough to rust that I managed to completely miss each one of the storms relating to actix as they were happening, and it seems so foreign to my experience with the rust community so far.
Before today, my perception of "normal" in the rust community was that everyone was nice almost all the time, but now reading about this being the 3rd time with the same project, and it's just been perpetually escalating is just sad and disappointing to learn about.
I'm really feeling like I can't and shouldn't "pick a side" with this at all because it does just seem like everyone involved behaved really poorly, as you said, even from the start of it.
The worst part is that this is looking to be visible outside of the rust community itself, and so it makes a stain on both the perception of the language and it's community.
I may not be correct, but this is still generally my perception as well. The subreddit is full of super smart, super headstrong, super opinionated people, though. However, the subreddit is NOT "the community" at large.
It's not about picking sides, really. The correct thing to do for the (correctly) disgruntled was either a) use something else or b) fork it. Harassing the maintainer is unequivocally the wrong road to go down, and no matter how nice the majority is, that behaviour is enough to make anyone think twice about joining the community no matter how valuable their contribution.
This is deeply problematic and symptomatic of a larger systemic issue that needs to be overcome. Every language community is on the Internet, and at this stage of growth PR matters.
Yeah, it's important to also keep in mind that the subreddit is not endorsed in any way by the core team, and I'm not even sure if members of the core team are even on the subreddit.
I'm not sure if it's the best solution, but I've seen it suggested in a few places now that at least one of the systemic issues that needs to be overcome by the language (either through docs, community, or both) is addressing what good and bad usage of
unsafeitself is. Everyone seems to have a different idea of where the line between good and bad is, and that seems to be at least part of the root to the actix thing. From what I've gathered, the reason why it's still up to the discretion of the developer is because the rust team has internal differing opinions on this as well, which is a problem in and of itself.Lets hope someonelse is capable and willing to keep the project alive, is weird that in general the Rust community I've seen is very nice, cooperative and supportive, everywhere BUT Actix. This would be a huge blow the the entire Rust community and ecosystem that is not old or strong enough yet to have loses like this, what do we have in this space? Rocket? seems nice but tha nightly make it not very reliable. Is there other framework available and above the 1.0?
It's a shame, I really enjoyed working with Actix-web.
Let's this be a warning for all of us, and a reminder that if you are not paying someone salary and have a contract, they are not your employee and don't work for you, so let's appreciate and respect those who are willing to work for others.
After all you don't 10 commandment, just 2:
1) don't be a jerk
2) don't play the fool, you know exactly when you're acting like a jerk
Not on stable. I think I've linked it before in a previous thread with you but my sights are on tide - once it reaches 1.0.
oh yes, tide looks really nice but I don't think it will in 1.0 any time soon, but I may be wrong, strangely Rust projects seems to advance really fast, I don't know if is just my impression, but sometimes really surprises me. Actix, Diesel, SQLx, one day is bare, almost nothing and the next month they are packed with goodies, stable and polished. Maybe is the safe feeling of Rust and that they don't spend too much time documenting and making tutorials and alike, once you get used to it you just go straight to the API docs (that are made automagically), I love that too, just reading the API docs you learn Rust.
Even just making mistakes. I learned how to properly use
Arc<RwLock<T>>largely from compiler errors, suggestions, and lints.Actually, I find that a little alarming, @robertorojasr . Even if Rust is the most obvious, straightforward language in the world (which it isn't, at least to me, and that still counts), a lack of documentation always comes back to bite a community.
Case-in-point, Python is famous for being obvious in most cases, often even more so than Rust, but the community didn't take that for granted and wrote the documentation anyway. And it's a good thing. We get no end of "obvious" questions in
#python, not because the language is so bad or the topic is so murky, but because its entirely too easy to overestimate how obvious something is based on our own technical biases.Design so that documentation is redundant. But then document anyway. "Most API documentation is like teaching someone how to use a toaster by explaining the electrical specifications of the heating element."
I actually don't know that I agree with that characterization of the ecosystem outside of brand-new tools that are just starting to see the light like SQLx, and these will catch up eventually if they catch on. In general, I've found Rust core tools and established ecosystem tools to have a very robust, high-quality documentation culture even relative to more established languages. On the contrary, this culture one of the big draws for me.
It's a new language, so there are inevitably gaps, but it's a time issue. I haven't personally felt there's any false sense of security created by Rusts's semantics in this regard. The false sense of security is around what "unsafe" means in the first place, but that's a separate issue :)
I have mixed feelings reading this:
On the one hand: There's no excuse for anti-social behavior, harassment, trolling, or flaming. It sounds like the Rust community was out of line.
On the other hand: Open source is open. Unlike closed-source, where you can do terrible things and (probably) get away with it, the inherent project benefit of open-source is that sub-optimal solutions have a better chance of being caught. Refusal to acknowledge a significant problem with one's code comes across as arrogant and unteachable, and rightly so! So, while the torch-and-pitchfork mob was clearly inappropriate, the maintainer invited it by his actions.
On the third hand: Anyone working in open source must grow a tough skin. This isn't because toxic behavior should be tolerated, but rather because unfiltered criticism is a necessary component of growth! As both an author and a coder, I have to be open to feedback from others.
I joined my first professional writing critique group at age eight, and they did not spare my feelings! The other authors were never rude, but they were necessarily blunt. I had to graciously accept even the toughest criticism of my work. That is the only way I achieved mastery of my craft.
On this same point, there are toxic people out there. If I were to crumble at every negative response I get, I'd never accomplish anything. If you can't do anything to mitigate a toxic response, then Get. Over. It. Move on.
In that light, here's what I see:
An open source maintainer fails to understand a critical facet of idiomatic Rust code, utterly violating accepted practice in his library.
Others draw attention to his error, respectfully and constructively.
Maintainer flatly refuses to listen to admonishments.
Community reacts to maintainer's apparent arrogance and unteachability. Mutual immaturity creates a feedback loop. An unruly mob results, in which toxic and unacceptable things are said.
Maintainer's fragile feelings are hurt, and in a temper tantrum, he takes his marbles and goes home. I suspect this was a combination of petulance (apparent in his "postmortem") and shame, the latter because (it would seem) he can't accept that he did something wrong. Since he couldn't deny it anymore, he had to go hide. (Imposter Syndrome)
That is, to quit all of open source in a fit of rage is to admit that his problem wasn't with this particular community; it was with the risk that his work might be critiqued by people who knew more than he did, requiring him to completely readjust his assumptions.
So...
Could the community have handled that better? No doubt.
Is the maintainer justified in quitting, removing his project, and giving up? Not for a moment.
I find one more thing here curious, and that's his parting words:
Such a philosophy is not a hallmark of maturity. Life is not always fun. Projects get hard. Drudgery and routine happen. Difficulty comes. Maturity means you stick it out through the rough patches, only quitting when it becomes clear the difficulties are not going to clear up and are directly impacting your mental health (e.g. Guido van Rossum stepping down as Python BDFL.)
This entire situation is unfortunate, but the Rust community can only take responsibility for, at most, half of it.
While your timeline is mostly correct, I do think it's important to note the degree to which the harassment escalated. It wasn't just an uncomfortable public discussion, he was harassed relentlessly and personally in private messages as well. It spilled over.
You're right, it comes with the territory, but I think it's a little more justified than just a temper tantrum. He wanted the abuse to stop, I think that's reasonable regardless of his role in the origin. That might be your point, though - if you can't hack it, you shouldn't.
I do think maybe "a week off" might have been a viable option... but he's a volunteer with (ostensibly) better things to spend this energy on.
I figured it was something to that degree.
To be clear, I don't think it's altogether unjustified to resign from the project. It was the other two aspects of his response that lead me to classify this as a temper tantrum, not just the abandonment of a toxic situation:
(1) He removed his code. That is never done. The normal response, even in extreme cases such as this, is to resign as the project manager and mark the repository as unmaintained. If someone else wanted to take over Actix-Web, they'd be able to. Instead, he's "taken his marbles and gone home," thereby punishing everyone who has tried to be nice, assist with the project, and generally support the library.
(2) He quit open source altogether. According to his GitHub profile, Rust is not the only community he's involved in, and he cited no issues with those other non-Rust projects and organizations. If he were simply quitting a toxic situation, he'd step down from Actix-Web, and possibly even decide that Rust is not a worthwhile time investment for him; that does not mean he would therefore never participate in any open source project again. Psychologically, that would suggest to me that his reasons for quitting were, again, not rooted primarily in the torch-and-pitchfork mob, so much as in the risk of criticism that he just never learned to handle in any form. (The rejected PRs and dismissal of prior, constructive feedback point to that.)
So, how should he have responded, then?
I like your suggestion first: take time off. Step back. Don't make decisions based on strong emotional reactions. Let the seething angry mob calm down (potentially), and then reassess the situation. That might take a week, a few weeks, even a few months. But don't quit right off.
If the situation is untenable — and perhaps the Rust community is not a good fit for him — then step down from Actix-Web. Announce resignation from the project. Mark the project as unmaintained on the
README.Conventionally, when a sole maintainer steps down from project with an established user base, they outline a process by which someone else can petition to take over. Perhaps, in this case, the ideal candidate would be someone who understands the problems with
unsafebut also has a history of supporting the project. Regardless of how this is done, the end result is the same: transferring ownership of the repository to the new maintainer. It allows the original maintainer to wash their hands of the project and move on to better things.Evaluate oneself. The worst thing we can do in life is to assume the problem is always everyone else. Linus Torvalds, for example, had to recognize that some of the problems in the Linux community originated from his own unhealthy ways of dealing with things, and sought out qualified help on that front. Similarly, Guido van Rossum (apparently) recognized that he could not balance his vision for Python with that of the community, and that it would benefit everyone else to step down as BDFL and only be one of the opinions in decision making, instead of the voice.
Don't. Give. Up. After giving oneself time to cool down, one should explore and find a facet of open source that is a good fit. Learn from the mistakes of the past, and then move on. Maybe the person won't spend as much time on open source in the future, but they shouldn't defenestrate the whole thing.
I don't say any of this lightly. I've dealt with harassment, some of it quite serious, and a large part (retrospectively) entirely unwarranted. I've had to quit communities and projects. I've analyzed my own behavior, and tried to learn what I could from each situation.
We can't control how people treat us. We can only control how we choose to respond.
The other interesting component to this saga is the language barrier. There's no way to know, but I'm curious how much misconstrued tone and intent on both sides of the conversation contributed to how bad it got.
Altogether valid.
In the repo there is a open issue, "Thank you for your service" github.com/actix/actix-web/issues/4
Maybe is not much, but a little token of appreciation doesn't hurt. Maybe is a little too late but better late than never :)
Finally some good news, actix-web is back with a new project leader; let's hope everything goes back to normal and now with a more receptive and open development which may attract more devs. Also this whole debacle make me take a closer look to Warp and Tide and those look interesting too. The learning process is painful sometimes and that's good.
Honestly, I’m surprised it doesn’t happen more often
That sums it all...
I find that weird, this is the only Rust related drama, in fact even the Rust subreddit is very friendly, which is not the norm in Reddit, even people mistakenly looking for the game Rust are cordially corrected.