Some people I have interacted with online have left me feeling...unhappy. It's not that they were trolling (particularly hard) or that they were seeking to antagonise me. Some of them are even trying to help me! by suggesting ways I can do things better! I wasn't necessarily asking for that advice, but they weren't deliberately trying to make me feel bad.
What I've noticed from those unhappy conversations is a pattern. For most discussions on certain topics, and almost all discussions I have with some people, every conversation turns out to be a combination of the following:
never ending unless I completely retreat on my opinions.
take up a lot of time as I try to justify why I disagree, as other people refuse to accept that I might have valid reasons for thinking differently from them.
frustrating as the 'discussion' degenerates into barely disguised name-calling.
I think this problem stems from two causes:
People who take part in online discussions have had a long time to practice. Even for people who discovered the internet later than most people, there has been a decade for them to practice their arguing skills.
And unfortunately, the main skill people (including myself) have developed is not how to make cogent and clear points, but instead how to avoid conceding anything in a discussion. This is done either by bringing up more and more unrelated points, or by claiming things as facts when actually they're just opinions, or other various tactics.
Just in general, it's okay for people to disagree about stuff.
But it's particularly true when people are making decisions based on their own set of priorities. When two people value some concerns differently to each other, those two people can both be making completely logical arguments, and yet still come to different conclusions. In other words people can disagree purely because the logical arguments are based off different values, not because either person's argument is flawed.
A good example of this is the (inane) discussion that surrounded whether the version of PHP to be released after PHP 5.6 should be named either PHP 6 or PHP 7.
The reason that there was any discussion at all is that PHP 6 had been in development for a long time, but had been cancelled due to technical hurdles. The very short version of the two sides of the discussion are:
People whose priority was having consistent semver versioning, and so thought the version name should be 1 more than the last major version number, i.e. be called PHP 6.
People whose priority was not having any confusion around the new and good version of PHP, with the old cancelled version of PHP, by calling it PHP 7 to make it clear it is a different release. Additionally people who had worked on PHP 6 valued not being reminded of the failure of the PHP 6 project.
Both of these sets of priorities are fine.
You can't say that people are 'wrong' to value semver versioning less than they value clearly separating the new version of PHP from the failed old version.
You might try to persuade them to change their values if you think that they haven't fully considered the implication of not following semver. And you can certainly say that you don't agree with how people have prioritised those two sides.
But at a fundamental level you can't tell people that they're wrong just because people have different priorities than you do1.
Having different priorities is not a problem.
It's fine for people to value things differently. In programming, as in life, how people value things comes from the experiences they have had, and from the challenges they have faced. As everyone leads different lives and has had different experiences it is natural for people to value things differently.
What is a problem is that a significant number of people just don't accept that other people should be allowed to have different priorities, and so they seek to argue them into having the 'correct' set of priorities.
I want to be more productive and ship more code.
I'm going to achieve this, at least in part, by actively bowing out of conversations that I think are unlikely to be productive.
If I do this with you, it's not because I think you're a horrible person2 and never want to talk to you again, it's just that I want to get on and be productive.
This isn't going to be a judgement on whether you're right or wrong in a particular discussion, or whether we are just disagreeing because we value things differently.
It's solely because I need to get on and get shit done.