Why is it such a prevalent idea that someone has to be an asshole in order to give negative feedback, or to take an action that someone doesn't like?
Alternatively, we can spend a year debating if me using a word "suck" is appropriate or triggering because you found out based on the DNA testing of your twice removed uncle that his grandfather was lactose intolerant which caused you to develop an emotional response while your code continues to suck and create problems, causing the company to lose money or a project to lose users.
Here's a novel idea, how about instead of directly resorting to "Your code sucks." we instead say something like "I think there's still some work to do here. Here's the way I would have done this." It's really not that hard to give constructive criticism.
"Your code invokes undefined behavior and may fail in the following ways. These corner cases are handled incorrectly. There are a few other cases I'm not sure about, because I have trouble following the logic."
"The code is fine. I have tested it!"
"It happens to work on you current machine. That's the nature of undefined behavior. It might fail in the future without warning."
"I tested it, it works. Now merge it!"
"Sorry, man, the code is crap. Go and fix it."
Nobody resorts directly to "your code sucks". Engineers love to give constructive criticism, but they hate to give marks for effort. And where constructive arguments fall on deaf ears, they give up and either ignore you or tell you to GTFO. Both are perceived as impolite, but what else could they do?
The end. No need to call it crap, no need to burn a bridge.
Personally, I just stop responding after the technical arguments have been exchanged. There is no point in repeating what was ignored already, no point in ELI5, no point to using swear words, silence is what works best.
By the way, if you told me "I understand your passion, but...", I'd be angry beyond belief. That's the way you talk to children, and even my mother is no longer allowed to talk to me like that. I consider that a stronger insult than my code being called crap. Which probably shows that shutting up in time is the best response.
The end is “nothing more to talk about,” and then you stop replying. As to time and energy, if you’re so depleted than an extra few sentences will materially impact you, then that is a problem. Healthy humans won’t be exhausted by expressing themselves in a half paragraph rather than a muttered “crap”.
Some people are persistent and will blame you for explaining badly when they don't understand. These discussions never end; usually not even after things got labelled as crap.
So don’t call it crap, just clearly state that you’re not interested anymore and hit ignore. The rest is their problem, not yours, and you’ll gain a reputation for being forthright and firm rather than hysterical.
Personally, I just stop responding after the technical arguments have been exchanged. There is no point in repeating what was ignored already, no point in ELI5, no point to using swear words, silence is what works best.
Amen brother.
By the way, if you told me "I understand your passion, but...", I'd be angry beyond belief. That's the way you talk to children, and even my mother is no longer allowed to talk to me like that. I consider that a stronger insult than my code being called crap. Which probably shows that shutting up in time is the best response.
The person in the example was acting like a child, and deserved to be treated (politely) like one. Either way though, my particular wording was just off-the-cuff and only an example.
The code was obviously bad enough to not get accepted and should be fixed. What is so bad in saying it like it is instead of dressing things up with layers of words?
Even with that long reply everyone will understand the intent behind it.
Maybe it is a cultural thing in the end. North American culture is very different from, say, Finnish culture (from which I am from, too).
Merge my code! It’s great!
No.
Aaaand scene.
Hell, that “no” could even have been a silent stare, or a grunt and it would have worked. Sadly much of the World finds that crosses the line fopekm taciturn and direct, into either rudeness or lack of communication. Dressing things up with layers of words, while tedious, is also the basic way many cultures keep arguments from turning into murders. North America (and the UK and some other parts) probably do take it a bit far. Not as far as Japan, but still, too far.
All of which is to say, yes it’s probably cultural, but it’s also a matter of people who are invested in something missing the obvious. Sometimes you really have to drive a point home, and my general recommendation was that it’s better to do so directly and civilly, rather than rudely.
In your scenario, the person saying this is being the bad contributor, and should be told to explain what they disagree with in the review. If anyone shuts down in a code review like that more than once, they should be finding a new place to work. And that really goes for both sides to be fair -- if I put in effort into a PR I deserve a good constructive review. If it's a public project and this stranger refuses to follow the rules, no harm done in closing the request and telling them to come back later when they're ready to discuss things.
Or you know, however you discipline them. I think we're in agreement that there's no need to resort to personal attacks and frankly someone telling me my code is crap is probably better than being told I should have been aborted in a code review.
It should be pretty obvious that this thread is going nowhere good. Can we please stop wasting our time shouting past each other? If we're not receptive to learning something new we should just go elsewhere because that's what this site is for.
I have fired "nice and really trying" people. Because they were decent people, I have also then recommended them to my personal network for positions that are better suited to their skills (and more than once have they gone on to success at a friend's company), because hiring somebody who can't do the job is management's fault.
I also fire people who are toxic assholes. I do not recommend them to my network because I would not inflict them upon people I like. Even if they're competent.
You can, in fact, do both, and hats off to Linus for at least making a goddamned attempt to not be the latter.
It's important to not be a toxic asshole.
There is a real and obvious difference between the assertion I made and the assertion you are attempting to say that I made.
You're pretty close to behaving a certain way mentioned in this comment yourself. Could you please, like we've asked before, try not to be so mean to other users?