Programming discussions

<fsbot> If language is not correct, then what is said is not what is meant; if what is said is not what is meant, then what must be done remains undone; if this remains undone, morals and art will deteriorate; if justice goes astray, the people will stand about in helpless confusion. Hence there must be no arbitrariness in what is said. This matters above everything.

It seems that virtually every programming-related concept is controversial, so the discussions are often not easy, what makes it important to learn how to handle them.

Since it's an easy target, internet trolling is very popular, what makes it even worse. Add many different reasonable opinions, and applying the principle of charity would become quite tricky: it's almost as with the topics which the common etiquette suggests to avoid entirely.

Flaming appears to be common as well, particularly around topics with relatively low entry barrier: seems like it is caused by overconfidence and arrogance, which pass as one gets humbled by more advanced topics. Or it takes more interest in the topics and less interest in being an asshole to advance in the first place, or people just grow to be more polite – but in any case, that's the observation.

Unfortunately, those things may discourage communication, while communication is rather useful for—among other things—learning at the times when one gets stuck, needs a clarification, and/or fails to find answers on their own, as well as for accidental discovery of new subjects.

Freenode channels have pleasantly surprised me, in that people were mostly nice and friendly there. It worked well to just ask about things on dedicated channels, and to help others the same way. It is not completely free of emotions (there is occasional trolling, spam, and other kinds of impoliteness), but it's very helpful otherwise. Some people were very considerate and helpful, even surprisingly so. Then they've turned out to be IRC bots. Kidding, though IRC bots were also nice. To be fair, when I've got used to it, I've started noticing more of less pleasant bits here and there, but perhaps that's what usually happens; yet it's still pretty good relative to many other places.

When proceeding from basic request-reply pattern to discussions, it's seemingly easy to follow the common sense rules: be polite and considerate, constructive, try to understand the other party, do not turn a conversation into a flamewar, stay calm when others do otherwise, etc.

Emotions may try to screw it up, even cheerfulness may bring about inappropriate jokes (e.g., now it's tempting to write that those are "jokes about dead things – like <some technology that is not in fact dead>"). Right as I'm writing this, it happened on #emacs – unintentionally, because of one's attempt to make a joke. So plenty of effort should be put into controlling those, and apparently plenty of practice is required to make better jokes.

Even once every participant is polite and nice, there are things like opposing views based on the sum of one's previous experience that is virtually impossible to convey. In addition to that, there is an issue with semantics: people may agree on some statement, or argue whether it holds or not, while understanding it differently. I've been writing down a short list of the vague terms (partly homonyms, even) that seem to be prevalent and confusing in such discussions, so here it is:

Although there's much more ways to get ambiguity, these are just some of the programming-related ones, as I understand them. Though I could be wrong about both prevalence and meanings. Actually, there's also a list of buzzwords on Wikipedia, and there's a lot of them around technologies nowadays – apparently coming from the disgusting marketing side of things.

A bit further into offtopic, but even the words such as "exponential" seem to be routinely attached to "growth" these days, just to emphasize it or something. Not to mention any more specific terminology that gets messed up rather often.

One more thing that seems to be helpful is the "strong opinions, weakly held" strategy. And another somewhat related one, "Keep Your Identity Small".