Whilst I think that giving feedback on individual behaviour can be helpful for them, I encourage that such feedback be given directly to the individual in private. Of course, I also recommend that such feedback be framed in a positive manner - that is just common courtesy.
I think it is a very good advice in general.
When you are in different camps, it is helpful just to stop in time.
If you have tasted a dish in a restaurant and you dislike it. Will it be helpful if a cook says you that it is very delicious and you must eat it again.
The interesting question is who should stop first. if someone cannot just stop(because it is a personal question) he always can say something like:
I disagree with you argumentation it seems destructive we can discuss it privately if you like.
After all it is not very good to have long tit-for-tat debates with mirror negative argumentation.
I couldn’t agree more, and I find it extremely unwelcoming to receive such feedback in here publicly, and what’s more is that this feedback is responded positively (“liked”) by moderators and core community members.
Wellllll the last thing we talked about outside here was Rust’s error handling with ?, which you didn’t read carefully enough to map to Scala constructs correctly the first time, nor did you seem to understand the (lack of) limitations of the Scala features well enough in order to understand how they could be used to implement the Rust scheme–though to your credit you did pretty much invent the right solution on your own after having missed reading about it.
Edit: Eyal has pointed out that he did understand the Rust implementation; the problem was entirely in importing Rust limitations into Scala.
We did figure it out with a little more back-and-forth, so it turned out well in the end, but I wouldn’t say the initial ratio of reading-about-X to writing-about-X was ideal.
Edit: maybe it was the thinking-to-writing ratio that was the issue.
This entire response was unproductive and illustrated nothing but that perhaps it’s too hard to take advice in public.
But that is a very fair point.
I also agree, at least in practice in this particular case.
The discussion isn’t staying on general principles, and the delivery and acceptance of individual advice isn’t sufficiently harmonious to seem on balance better than not.
Inasmuch as people have posted general or generalizable advice here, I think it’s been quite good advice. But picking out the pearls is tiring work, especially for someone who isn’t directly involved but might benefit from thinking more deeply about how to be welcoming and/or how to be respectful of others’ time and expertise.
As has been pointed out, this cuts both ways. You may have sufficient experience to assert that, in their interactions with you, they’re some of the nicest people you’ve met online, but your experience does not invalidate mine. That they’re nice to you doesn’t mean that they can’t be dismissive or hostile to me. Your experience is valid to you, but please understand that interpersonal history doesn’t generalize like that.
I’m not sure if you’ve noticed, but this thread has been neatly diverted from the issues raised by @eyalroth and myself to a pile-on of finger pointing about what we may have done to “deserve” this treatment. That’s the whole point of victim blaming: diverting the conversation to shield those who would rather not address the issues being raised. Advice which, if proffered privately, may be helpful or instructive can easily become victim blaming when done publicly, en mass, and in a way which serves to distract from the issues being raised.
If you’d like to read more, this comment is the end of the mini-thread which leads me to this understanding, and has a decent summary and links to the relevant comments by @smarter as to what they meant. I considered this on-topic as it’s a prime example of a situation where I got repeatedly verbally smacked down for not taking a hint I had no realistic way of getting because it was in extremely coded language.
I’d appreciate getting some actual closure before we end this thread. There are some pretty deep issues that have been raised and brushed off in favor of the finger pointing at the people raising them, and they really need addressed if this community is to survive as anything other than a closed echo-chamber.
Moderation of violations of the published norms (CoC) is currently handled by the moderators on a long-term basis, through private channels, when it’s handled at all.
It’s opaque, and provides no relief to those targeted. This erodes the faith which targeted people have in the moderators.
Moderation of violations of the unpublished norms is currently handled by a community-driven smackdowns in very public channels, with either the implied or explicit consent and approval of the moderators.
Notably, they are visibly more engaged in policing argumentative tone than things which come close to actually violating the CoC. This further erodes trust in them, and creates the perception of a “Good Ol’ Boys” culture where if you are a member of this inner circle, you can be as combative as you’d like and you might get called on it in private a few months down the road, but if you’re outside of that circle you’re open season for a community-wide pile-on if you violate the unpublished norms.
It’s not quite there yet, but we’re edging into “rules for thee, but not for me” territory, which is difficult to come back from if an open community is desired. If an open community is not what is wanted, closing these forums to anyone who hasn’t submitted a PR against the compiler or standard library may be warranted. Any time input from the user community is desired, it could be solicited in the Users forum. It’d be less open, but the post count would stay down, and it’d be clear what level of interaction is wanted from those of us who fall between users and contributors, and to what degree our input can be expected to be taken seriously (which is another issue, for another day).
Anyone here ever watch lawyer movies and tv shows? You know how when one side gets a request for information and instead of just sending over the one relevant piece of paper, they send over boxes and boxes of documents? They do that because it’s legal, and because they know that lots and lots and lots of information is very tiring to sift though and overwhelms the other side.
It’s a bit like that here (although the intentions are obviously different). @eyalroth’s very large, very frequent posts overwhelm me. I barely check these forums anymore because the cost to me to read through it all is too high, and the value I get back for my time is so low. I 1000% believe that @eyalroth is acting in good faith and genuinly wants to contribute and make Scala better for all of us, but both coming from such very different angles combined with the communication style, whilst not violating the CoC (just like those lawyers aren’t breaking the law), is undeniably having a negative side-effect. Maybe we can just ask in equal good faith that anyone who likes to Post Big and Post Often try to improve the signal-to-noise ratio, take a bit more time to be concise, argue the 80% and let the less valuable 20% go until later, things like that. @eyalroth currently falls in that bucket for now but it’s not personal and future posters with the same tendencies could be politely and privately be asked to do the same.
As for everyone else, maybe we be more cafeful to keep jokes and flippancy away from disagreements. If everyone’s on the same page: go for it; otherwise people legitamately feel attacked, mocked or belittled.
That’s my 2c. If there’s a different perspective on what I’ve said that’s offensive, dismissive or whatever, I’m sorry and I promise you it’s not intentional. I won’t be replying to any follow up responses positive or negative cos I’ve been that guy before and despite my good intentions, things tend to just get worse over the internet. Remember though, this stuff isn’t life or death. No one’s banned. It’s nice outside. Good luck flawed-as-were-all-human but lovely Scala community.
Okay, fine. I’ll have a go. I’m not in charge of such things, so this is obviously just my perspective. Let’s address the issues.
Yes, the CoC is not being implemented exactly as written. Maybe we should be more explicit for people who would be helped by an explicit codification of how human societies tend to work. But I think probably not, as described below.
Initially, nobody knows who anybody is. That’s when you get the welcoming treatment. But after that, you are known, far more than by anything else, by your interactions. The idea is still for everyone to be on good behavior. But you don’t even want everyone, in an ideal case, to be continually welcomed and to feel safe regardless of what they do. Somehow or other we’ve got to set a standard for delivering positive productive interactions.
One way to try for this is to codify everything and invoke moderation when the codes aren’t followed. At least for most people, this feels oppressive, onerous, inhibiting, and frustrating. It’s hard to be open and helpful when you feel like you’re constantly being watched for violating the letter of some hard-to-remember rule or other that was intended to but doesn’t actually quite match how people normally operate when polite.
The other way is to let the group self-organize in the way that human societies tend to do, where in addition to a few explicit rules there are a ton of implicit ones, like be extra-nice to the people of high standing, avoid losing face or making others lose face, say thank you when helped, praise high-value contributions, don’t act entitled to others’ help unless you’ve earned it, be extra-nice when you’re new to emphasize that you’re a desirable group-member, etc. etc., tweaked by the ethos of the particular group. Now, assuming you’ve learned this stuff in face-to-face interactions, you get to utilize a huge set of already-trained behaviors without need for explicit and oppressive-feeling rules. But even when prominent people display near-ideal model behavior, this has some pretty ugly failure modes, so you add a CoC or moderation to try only to catch that, and to ward off some very natural but very undesirable types of behavior like various forms of aggressive tribalism.
So you have moderators in charge of enforcing the CoC, but also somewhat responsible for trying to avoid having things end up as CoC violations, so that most of the time interactions are in the more-pleasant-to-most “human society” regime.
There is a bit of a gray area as to where the boundary between stated and unstated norms should be, admittedly. Also, some people work better feeling things out, and others work better following explicit rules, so we can’t expect one scheme that is ideal for everyone; it’s a balancing act.
To some extent, that’s exactly what one should want. After all, an argumentative tone does generally not make onlookers feel safe and welcomed.
But of course it can be selectively applied to end up with
which is dysfunctional.
It’s a genuinely tough problem. Human behavior is much better tuned for a rather different situation: face-to-face, cohesive-small-groups, low-turnover-of-people. And honestly, even within that situation, it can be pretty cruel despite being effective.
So, anyway, while I recognize that there are definite potential problems (e.g. Good-Old-Boys’-club) and that we should be on the lookout for them, I don’t think that’s what’s actually happening to a substantial extent. (To a minor extent you actually do want this in practice, because a group doesn’t do well if it’s constantly ejecting those members that are most valuable to the group, so ideally there should be a bit more tolerance of prominent people not behaving ideally–not because they should behave badly, but because it’s more worth the effort to get them to be nice, because if they’re not the group loses either way.)
The opacity causes problems. It’s hard to argue with that.
(I’m not sure whether the “targeted people” you speak of are the ones who were the victims of behavior that violated the CoC, or the ones who engaged in the behavior that violated the CoC?)
On the other hand, CoC violations have awfully serious consequences, potentially, leading to the accused wanting to defend themselves vigorously. And this gets very acrimonious very quickly, as we’ve seen in the past.
So transparency also has problems.
But I do fully agree that it’s not reasonable to have completely different ways to handle published and unpublished norms. If something is amiss and action of some sort is needed, one should either have an expectation of privacy or not.
However, I don’t think it’s reasonable to expect that people will never comment about characteristic traits that they find annoying in others. It serves a purpose to have something like that in public, too, which is if N people notice it and one writes about it in public, the other N-1 know that they don’t need to act. If it’s private, how do you know whether to tell the person about the problem, or if the 15th repetition of “format your code” is going to make them feel immensely put-upon?
As always, it can be overdone. Public pile-ons are uncomfortable and exceedingly unwelcoming for the target (but I guess it probably “provides relief” to those who felt burdened by the target’s actions). On the other hand, a public “Can you tell us your overall goal, and what you’ve tried and why it doesn’t work?” is probably a good thing in response to “can anyone tell me, how to select and join in scala???”
It’s all balancing acts, all the way down. I’m not sure, from your comments, that you appreciate this.
I already did read that, as evidenced by me making a comment about it at the time. As I said, I have a different impression from you. I’d rather leave it at that. I’m happy to discuss it in private, but I don’t think it’s terribly relevant to this conversation because I don’t think it shows what you think it shows.
I want to be clear before I start responding to the points that you’re raising that I really appreciate getting back on topic. Thank you.
My issue is not so much that the CoC is not being implemented as written or with anything in particular encoded in the CoC. My issue is that, in my experience, it’s being implemented unevenly. I’ve seen posts from those members who enjoy a cosy relationship with the moderators pass without comment, despite being as argumentative as anything I’ve ever posted. The thread about @infix is a decent example, as quite a few of the library authors advocated quite loudly for the position that the application programmers simply can’t be trusted with deciding on style of all things. Perhaps they didn’t mean to be insulting, but even a charitable reading of that position is that it’s deeply condescending, and the way it was laid out was certainly highly argumentative.
While this is true to an extent, the enforcement of this has been at best uneven (see above). I certainly don’t mind a, “hold up, it’s time for everyone to calm down”, as that addresses the problem. It becomes irksome when a group of people get into it and moderator disapproval comes down only on the newer folks, despite everyone having gotten a bit heated. The behavior of the older forum members is excused as situational, while identical behavior on the part of newer forum members is treated as intrinsic.
Unfortunately part of the problem is that, when you’re inside the club it can be difficult to recognize the protection you’re being extended. I’m a white guy who lives in the USA, I’m speaking from experience on this one.
I’ve attempted to use consistent vocabulary (except where I’ve messed up). In this case and generally, “targeted people” refers to those who have been on the receiving end of behavior which breaks or skirts the edges of the CoC.
Incidentally, rudeness directed towards the newer folks also leads to the desire to defend oneself, which attracts moderator attention for argumentativeness. This has happened to me personally at least once that readily comes to mind, so it’s probably happened other times as well. This is not to imply I’m blameless, I advocate for positions I believe in and over the years have gotten vastly better at identifying when I’m getting heated, but I’m not perfect by any means.
A request for a poster to show their work, or a gentle redirect to Stack Overflow or the Users’ Forum when appropriate, can be useful feedback, and aren’t the sort of things I’m referring to. I hope we can agree that they’re in a separate class from “I wish we had a downvote” or a churched-up RTFM.
I do appreciate it’s a balancing act. What I don’t particularly agree with is that there’s no room for improvement, or that the balance is particularly just at the moment. Unfortunately, the replies on this thread seem to indicate the prevailing opinion is that all is well, and there’s a general unwillingness to entertain the idea that this might not be the case (speaking of the general vibe, and not of any particular person’s opinion or position).
Fair enough. No disrespect to your memory was intended or implied - I provided the link because it was literally months ago, and digging it up took about 10 minutes (I ended up having to use Google to search the site, the built-in search couldn’t find it), so I thought there was a decent chance the context of that discussion had been lost.
That’s not my impression of what happened. As far as I remember, the only substantive deviation from “vigorous debate” into something more hostile came from you, and even that wasn’t that big of a deviation.
(And recall that, like you, I think that @infix is a horrible idea. And I agree that the line of argumentation you were responding to was frustrating and insufficiently responsive to points that were being made.)
You’ll need to find another example. I’m happy to explain in private why the behaviors illustrated in that particular thread (I assume you mean The @infix Annotation) fall into various different categories, and why some are more okay than others.
Indeed. This is why I strive to avoid rudeness, while still maintaining very low tolerance for sloppy thinking and bad ideas.
I think there’s room for improvement, but I think the charges being leveled at the existing state of affairs are overblown. I don’t doubt anyone’s claims about how they feel about things, but there are practical limits to how much we can cater to different reactions to the same events.
I understand why you chose this analogue, and take no offense in it; however, I think a more accurate one would be a company. In both cases there are independent individuals, core “contributors”, and management; there are written and unwritten codes; there are arguments and disagreements between people, respect and contempt, fondness and disdain, and so forth.
In my personal view, the behavior that was demonstrated in this thread does not apply to how people normally operate when polite (despite using polite wording), nor does it apply to how these manners are being handled in companies (at least in my experience); but let me try and be constructive and offer potential suggestions on how to improve this:
Update the about and faq pages to provide information on how to contact the moderators – in particular, mention the possibility to send them a private message on this platform. This is a minor improvement; I’m suggesting it as I did miss this option at first.
Respond (privately) to flagged posts, even when a decision has yet to be made regarding the complaint (as happened in this case). Following the company analogy, one who complains to a manager will often be replied at the very least that the matter is being examined.
Allow people to privately provide feedback on a particular individual they find problematic (yet not violating the CoC) to the moderators. When enough feedback has been accumulated, moderators can approach said individual in private and reflect this feedback in a civilized manner. In my personal experience, this is usually how this is handled in companies, but I understand that it may not be appropriate for open communities, and I understand the high cost that this requires.
Do not criticize individuals in public. This goes especially for moderators and core members, as their impact is larger, and can easily lead to further (unjust) retaliation by other members. The exception to this is when individuals violate the CoC, in which case it is crucial to condemn the violation in public, in order to show to all parties that such behavior is discouraged. This doesn’t necessarily mean referring to specific individuals, nor does it necessarily require further punishment (such as banning).
Again, these are suggestions, not demands, and one may very well dispute their effectiveness.
I’m not sure what exactly do you mean by “low tolerance”, but I believe that this relates to the very essence of why some people find this community unwelcoming. What one considers as sloppy thinking and bad ideas is often open to interpretation.
As an example and as we’ve discussed in private, in the case of the ? operator you’ve interpreted my comments as a lack of understanding of Rust’s documentation, despite the fact that I did understand it correctly. I believe none of us is to blame for this misunderstanding; I believe that such misinterpretations are inevitable between people of different backgrounds, different points of view, lack of familiarity with each other, etc.
Those misinterpretations often lead to more posts, “tit-for-tat” discussions, and feelings of argumentativeness on both sides. I’m not excusing my past behavior, as there are definitely things I should improve on. However, I do believe that the bigger this community gets the larger the “signal to noise” ratio will be, as more strangers with different opinions will chip in.
The question is how to handle this problem. When this is handled by disrespecting each other, handing out public feedback and failing to acknowledge that this problem is symmetric, that gives the sense of an unwelcoming community.
Those suggestions all sound good to me! I don’t know if the implementation is feasible (the first certainly is), but I think it’s quite likely an improvement.
I mean that try to I use sufficient evidence and valid argumentation to dispute the point rather than letting it slide, while recognizing that there are many cases where differing opinions are not resolvable as matters of fact.
Of course there can be mistakes made, and one always has to recognize that some differences of opinion are based on subjective preference that cannot really be argued either way.
Yes, that’s true. I misunderstood what you misunderstood, and the misidentification of what it was that you misunderstood (it wasn’t the Rust feature as used in Rust) probably slowed things down, and certainly made using it as an example more problematic, as it didn’t properly support the point I was trying to make.
I don’t think that’s right. The signal is larger. But generally, the larger and more diverse the group is, the worse the signal-to-noise ratio is. When you have a small tight-knit group, many things can go without saying. Everyone knows what everyone else wants as signal and what they consider noise.
The advantage is not in SNR, but just in raw signal. If you have enough capacity to work through the noise, and you’re signal-limited, the latter is all you care about. In most situations it’s a balance, and the goal is to get more signal without adding too much more noise (even if the SNR goes down a little).
Yes, this is a very good point. The CoC makes a similar point, and it is well worth returning to it over and over again. Disrespectful actions are inherently unwelcoming, and we should try very hard to find other more constructive ways to deal with any displeasure we might have.
Neurodiversities like autism spectrum, ADD/ADHD, etc. can cause difficulties in understanding subtle or nonverbal cues, empathizing with people, interpreting others’ tone, and moderating one’s own tone, among many others.
In my extremely anecdotal experience, the prevalence of ASD and ADD/ADHD are much higher in technology-oriented communities than in the general population, and they’re frequently undiagnosed, especially in successful individuals–anyone who has the time and experience to debate programming language design is hopefully living pretty high up the Maslow pyramid.
I’m not advocating for anyone to be given a pass on bad behaviour, but I would like us all to try to keep in mind that what reads as brusque and slightly aggressive to one audience might have been intended as direct, to-the-point and free of any emotional connotation. And likewise, messages that are friendly but content-light might make many people feel more welcome, but come across as off-topic, irrelevant noise to others.
I’ve been hanging around the Scala community for a long, long time, and have seen a lot of unwelcoming behaviour go not only unpunished but unremarked, whether it was intended that way or not. I’m glad that the community is taking it seriously.
This is a good point. The only way I know to make this actionable, in addition to gently pointing out to people when there are ways to improve, is to encourage a high degree of tolerance. Not because we want malicious actors to get away with a lot, but because we don’t want to paint as malicious everyone who has “imperfect” interactions.
I don’t think hyper tolerance is a good thing. It leads to emotional blows up and can discourage people from other camps.
I think a some sort of balance can be achieved if delegate a bit of moderator’s role to an author of topic.
if an author open a sip, the constructive critique should be welcome. if someone open pre sip it can be too early for critics, there can be welcome some sort of brainstorming.
I personally try to be tolerant when other people are discussing something between each other.
But I don’t like an idea to be tolerant when I ask a help to formalize a question and someone explain me about my XYZ problem. I can be tolerant but I think it is unwelcome for me personally.