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 every single 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 completely.

The local forums I've been reading before were probably even worse than usual: I remember most of discussions and questions turning into flaming. In part because of that, I've been mostly in read-only mode for years, and reading Wikipedia, articles, and books, not those forums.

Yet it's not a nice solution: not just you don't contribute anything that way, but it is also often much easier and faster to ask than to find a piece of information on your own, especially for new and poorly documented things. Besides, during communication, you can ask for clarification, and it simply helps to ask what are the things you should look for after describing your problem or wishes: search engines don't handle that well enough.

Then I've finally joined Freenode, where people were mostly nice and friendly. 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 go 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: product descriptions are often highly loaded with those, making them rather disgusting (here's an example). Though I guess there are people out there who would claim that "Seamlessly distribute your services across 96 ARM cores" in large font and mixed with pictures is somehow more informative or useful than just "96 ARM cores", which is already written on top. It's also disgusting to imagine them. Just as with regular (old and offline) marketing, actually.

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