DEV Community

Discussion on: That About Wraps It Up For Actix-Web

Collapse
 
codemouse92 profile image
Jason C. McDonald • Edited

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:

  1. An open source maintainer fails to understand a critical facet of idiomatic Rust code, utterly violating accepted practice in his library.

  2. Others draw attention to his error, respectfully and constructively.

  3. Maintainer flatly refuses to listen to admonishments.

  4. 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.

  5. 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:

Life should be fun.

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.

Collapse
 
deciduously profile image
Ben Lovy • Edited

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.

Collapse
 
codemouse92 profile image
Jason C. McDonald

It wasn't just an uncomfortable public discussion, he was harassed relentlessly and personally in private messages as well. It spilled over.

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?

  1. 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.

  2. 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.

  3. 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 unsafe but 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.

  4. 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.

  5. 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.

Thread Thread
 
deciduously profile image
Ben Lovy • Edited

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.

Thread Thread
 
codemouse92 profile image
Jason C. McDonald

Altogether valid.