CoC-compatible Community Builds

How are we avoiding drama by suspending user accounts with no clear judgement as to why? That would escalate drama, not dwindle it.

This is precisely why so many posters have been interested in this topic. It isn’t to do with the technical nature of the decision, it has to do with how certain members of the community are being treated by Scala’s leadership.

2 Likes

A good question!

I have a partial answer, delivered as examples:

This isn’t it. You don’t pat someone on the back for using language that escalates the situation when you’re interested in healing divisions and restoring a sense of community.

Consider instead:

This is potentially helpful: de-emphasizing strident language, focusing on technical considerations.

Here’s another helpful one:

A calm, reasoned attempt to chart out a path towards a less divided community. One might disagree with the path, but the intent is clear.

Now if you don’t care about a Scala community as a whole and instead care about the cohesiveness of some subgroup, or about some other principle that is important to you, your judgment might be different. But that’s not how you presented yourself.

Another bad idea:

Picking favorites on emotional grounds and explicitly labeling them as the heroes is pretty much the polar opposite of what one ought to do to try to heal divisions.

I empathize with your concerns overall, but seriously, your methods need some work. You might peruse the kind of unifying tactics employed by rOpenSci: https://ropensci.org/pdfs/ropensci_jors.pdf, or consider the suggestions offered by Discourse in how to conduct civilized conversations: The Universal Rules of Civilized Discourse

10 Likes

From all his posts of the last few years about Scala in public venues or in venues related to Scala it’s obvious that his only goal is to troll, so what good could possibly come of allowing that to go on longer than strictly necessary? Please note I’m only talking about Scala-related contexts. I’m sure he can be a very nice and helpful guy in other contexts (and even used to be that most of the time in Scala too, long ago), or in a Scalaz-only context.

You might not agree on everything, but I hope you can at least appreciate the impossible situation moderators of this list and of public Scala repositories are put in sometimes. They can either choose to let the negativity go on which only leads to more negativity or they can cut it short which will always be interpreted in the most negative way by some people because the other party is always by definition the underdog.

5 Likes

If you read The Scala Code of Conduct | The Scala Programming Language you will find that the owner of the (reportedly–I didn’t actually check) suspended account followed zero of the encouraged actions and violated two of the disallowed ones. Furthermore, given that the acceptability of that sort of behavior is well-known by the owner of the account to be one of the main sources of disagreement between said account-holder and the maintainers of the forum, the rationale for a warning–which is to allow users to correct behavior that they may have not realized was inappropriate, or which was expressed in a moment of passion without considering the consequences–does not apply. There is good reason to believe that the owner fully understands the rules and is deliberately not following the ones not to their liking.

Can you spot which rules were broken (one is clear, one is somewhat borderline depending on how sensitive one is)?

I don’t think this is a good example of unfair treatment. This, instead, is an example of a clash between a more rough-and-tumble culture where people are expected to be able to take and dish out a good verbal beating as part of the process of constructing an argument, and a culture of polite debate where dissent can be presented on its merits without resorting to emotion as a force-multiplier.

The CoC explicitly disallows the rough-and-tumble variant, which was on full display here. Some people thrive in the rougher version, but it’s generally a suboptimal choice for a broader community as if you don’t relish it, it tends to be mildly to extremely offputting, and a huge number of people don’t relish it; and anyway, emotionally charged language is almost always a logical fallacy delivered implicitly. So the calm variant is a superior choice for a community as a whole, and its application here is apt if somewhat strict. (Again, proviso: I haven’t checked that the ban was in fact enacted, and if so I don’t know that it was because of this; but if both are true it still is appropriate.)

Does that make things more clear?

13 Likes

That is helpful, I give you that, thank you Rex.

My apologies for my language.

I will continue to communicate in form and content in the most diplomatic words I’m able to.

I still would like to know though: why Tony Morris’ account is suspended?

Yes it does, thank you again Rex.

I just went through the process of creating an account myself and would like to ask:

Would one of those two actions that Tony “violated” be him not signing the Scala CoC?

No, that’s not either of the ones I had identified. Look through the bulleted points. You should find them. There’s even an example given that’s quite similar in spirit to language that was used.

Sorry, I read your reply and the CoC twice now, but I can’t find it.

Perhaps we can turn this around: what phrases in Tony’s comment “violated” the CoC?

1 Like

Yes it does! Thank you

The clearest violations are of:

feigning surprise at someone’s lack of knowledge or awareness about a topic, or subtle prejudice (for example, comments like “That’s so easy my grandmother could do it.”)".

This is typically used to demean or insult someone, though that it was intended fully in this way is a little less clear than that the former (“micro-aggression”) tactic was employed. (It is less clear because there are weaker forms of chastening than “demeaning” which are not forbidden, e.g. “criticism” is not out of bounds.)

There are at least three cases where the text clearly implies something demeaning about at least one other forum user (disparaging perceptiveness/intelligence) and perhaps everyone but the special “in group” who is so canny that they of course don’t need it spelled out. Can you see it now? It’s hard for some people to notice these things (but, oddly, they almost always seem to get it when they’re on the receiving end).

2 Likes

As far as I know he was banned a long time ago (before Discourse) and was never unbanned. I’m not sure why the moderators allowed him to post at all.

(I’m not taking any sides, just theorizing about why he was suspended from Discourse.)

3 Likes

I would like to know how the CoC can be improved by allowing for exceptions for people with disabilities in online expression. As an, perhaps more easily identifiable example, I offer the right of people with the Tourette syndrome to access conferences. They, as you probably know, might curse.

I think you are correct here, though, really. But … I care to note that as far as I’ve been able to read up on Tony’s history online, quickly, these last few hours, he seems to me to only able to express himself in the negative, online.

Now, please know that I’ve met many, many scala community members these last few years, that expressed to me that Tony is the nicest person when you meet him face-to-face. I, and I stress this, never met the guy, and thus can not vow for him and his past, but he looks to me like other type of strangely feathered birds that I can observe and appriciate in this community, and he seems to be a person that loves functional programming.Tony is a person who teaches children, miners, often under ten years of age, how to program, functionally.

You, as in we, might not like how Tony expresses himself online, well, perhaps you, as in we, the moderator, with earned power and responsibility, could learn how to take a joke even when you don’t like the joke, and when the comedian keeps repeating it over and over and over and over till it irritates you to the point that you want to use your power. That would be the moment that you learn when to apply power in the future.

You learning something interacting with “the other side”.

It’s a good exercise to grow strong against verbal abuse, I know from unrequested experience. Also, it is healthy for the ego, learning to not trigger on emotion. Worse case Tony is consistent enough to earn your trust that he will express himself always as he has done in the past, I think we could argue? So even if you are afraid to trust him, you can trust him to express himself as Tony. Online, in the negative. In real life, he might be your best friend, and a great functional programmer. That’s all. Be diverse in what you include in your computer language community. Please. I beg you. Learn.

I don’t know him, but I like him from the stories other people told me, and when his account is suspended in a thread in which his name is mentioned many times … sorry, then I want to understand the reason. I’m not taking any sides other than, speaking on his behalve, which feels strange because I never met the guy, nor did we spoke online. [As his account is suspended and I try to not contact people without them inviting me – perhaps that should change…]

I think this is too far off-topic to discuss as such.

In brief, and of some relevance, one need not make a moral judgment about a person’s character as a whole in order to find their participation in some venue unacceptable. Perhaps some people have a “online expression disability” (and though some people may laugh at the idea, I take it seriously as a possibility, given the prevalence of autism and other disorders that manifest when people have way more cues to help guide their behavior than are present online). But it doesn’t follow that their actions don’t seriously negatively impact others, so something needs to be done.

Not all spaces are suitable for all people. When someone makes a great effort to adjust behavior so they make a positive impact in some space in which they don’t fit very naturally, we should provide greater allowance that they might succeed than when they repeatedly and obviously disparage the cultural norms of that space.

So, back to scalaz and the community build: maybe @Blaisorblade has it right when he says “they have to figure out how to apologize for their past transgressions…till the other parties are satisfied”. Maybe, speculating wildly, scalaz also is a good home for people who either have no deficit but like a rougher flavor of interaction, or who have some actual cognitive deficit that really renders them unable to be as polite as we’d otherwise expect online.

If this were the case, doesn’t it seem reasonable that actually the best course of action is to try to minimize the intimacy of links between the scalaz community and the rest? Then scalaz people could do their thing in the way they like, and the rest (or other parts of) the Scala community can do their thing in a way that feels higher-productivity and lower-stress to them; and the compiler, who doesn’t really care one way or the other about all these human dramas, can bridge between the two as is needed to solve technical problems.

Oh, absolutely. But adding requirements for personal emotional development as a prerequisite to learning and using a programming language seems gratuitous. Demanding it is the opposite of how to get diversity in your computer language community because most people can’t or don’t wish to be challenged to rise to that standard of emotional detachment on a routine basis. “People disparaging me online is upsetting and distracting” is far more common of a phenotype than “I can’t stop disparaging people online” or “I will do dumb and bad things over and over and over unless disparaged, then finally I’ll learn and get better”, so if you want diversity you may have to exclude the latter to admit the former.

Anyway, all this is a bit too theoretical to be fully on topic, so I’m going to leave it at that.

The point is that the principle of expecting civil interactions is reasonable even allowing that this may constrain the opportunities that some people have due to factors outside their control; that in particular interactions relating to the community build ought to be expected to fall into this category of civil interactions; and that this thread should be about whether it is possible for scalaz-related projects to meet that standard and whether past failures to do so warrant by this point a complete refusal to interact or whether there is a plausible path whereby they could be considered for inclusion again (with a side helping of “does it even matter”, given the kind of coverage that’s already there and the ability of project maintainers to run against master (2.13.x, technically, at the moment) any time they wish).

8 Likes

Agreed.

Agreed, though personally I trigger on “they”, because, who are they?

I tend to disagree, and believe to be able to express the opposite, verbally. That would require spoken communication. I would be happy to discuss the subject further at a later and more convenient moment though. Also, I did appreciate your creative suggestion, which unfortunately expressed itself in your additional suggestion (perhaps wish) …

I disagree, as the “touch-point” would be a purely technical one, the “community-build” and surely there is much to gain from the moderated technical knowledge of the scalaz community, just as much as there is from the zio community, I humbly suggest :slight_smile:

Agreed, for this moment, I think we can take slow the discussion down.


It is 02:30am in the morning in my time-zone, and I need to go to bed at this time. I thank you for your work and effort, and am impressed by the moderation standards you and your colleagues uphold on this forum. I learned also, and I thank you for that, personally Rex, for your detailed and valuable insights.

I certainly don’t represent the scalaz organization. Years ago I contributed some code, all of which has been long superseded. By which I mean to say that I represent scalaz to exactly the degree that I’ve contributed my efforts to the project and respect its ideals. I think that’s very much the spirit of scalaz.

2 Likes

Still, thank you for your efforts in the scalaz organisation in the past Kris, I believe it shows your heart that, even after you’ve moved on, still feel so closely connected to the scalaz community that you care about its connection with the Scala community. Your presentation at ScalaWorld in 2017, was one of the most in-depth abyss of FP code I ever was exposed to. It was shocking. Additionally I did like to hang out with you in the bar at that conference, talking with you about your hobby, forging. You are a cool dude. Respect.

Nonetheless, and now addressed to all, who represents the scalaz organisation in this?

@nmcb again, personal opinion as a community member (and former scalaz committer)

who represents the scalaz organisation in this?

Tony remains the face and voice of scalaz, whether he or anyone else wishes this were so. He is the founder and is outspoken and omnipresent so it’s simply a statement of fact. Anyone who speaks for scalaz will have to speak for Tony and his innumerable missteps and nobody can do that. So honestly I think this is the endgame for scalaz. Projects that wish to survive need to form new organizations and forge their own futures, and I’m encouraged to see that ZIO is doing exactly this. I don’t think it’s sufficient but it’s certainly necessary and is clearly a positive step.

9 Likes

This is not true. It the equivalent of saying that Cody, Erik, Travis or Stew are the face and voice of Typelevel. Tony does not have admin access on the chat rooms, and doesn’t have the creds to publish to Maven Central (neither do I, btw).

The only active maintainer of Scalaz is Kenji / Yoshida-san, and he is without a doubt one of the most inspiring contributors you will ever come across. His native tongue is Japanese and rather than try to bridge the language barrier with every interaction, he communicates via code. It is the most utterly amazing experience to deal with him. If you search the Scala community build issue tracker, or the scalaz one, you will find nothing but helpful exchanges between him and @SethTisue. I’m quite certain that Seth will agree, as it’s clear that Seth is conflicted. If there was a technical issue, Yoshida-san would have fixed it. Indeed, he continues to fix the fallout (e.g. for scalaprops).

As to the face of Scalaz, well I think everybody thinks of John de Goes as the face of Scalaz. He has innovated time and time again in FP Scala, speaks at almost every conference with new groundbreaking content, and has created the largest group of contributors in the Scala ecosystem to build ZIO and Scalaz 8. It is my opinion that this action (removing scalaz and ZIO from the community build) has been taken to hurt John de Goes, hence why ZIO was also removed. But it backfired and has unfortunately hurt the entire community instead… there has been a growing level of mutual respect between Typelevel and Scalaz recently, which was bringing about harmony. Hopefully that can continue.

The community build is, afterall, for the benefit of the scalac team not for scalaz. It can be a real drag to keep the community build maintained for a project and have to weigh in on breakages. If it is the case that Scalaz does not cover any parts of the build that Cats already covers, then this will reduce the maintenance burden for Scalaz contributors.

I hope so! But I don’t think the successor is Scala 3 or Cats. My thoughts will upset some people, so I shall stop here.

My personal experience with the Scalaz community is that it is the most welcoming and technically competent community I’ve ever had the pleasure to engage with in Scala. I can appreciate that others have had a different experience.

With regards to Tony, everybody here can decide, using their own good judgement, if having a fantastic day and telling everybody about it constitutes “vitreol” (I refer to his twitter feed). I note that the CoC rules continue to be bent to treat him as a special exception, and I don’t feel that the community can ever truly heal until this is either fixed or the moderators are honest enough to admit that they will always special-case Tony as a permanent exile. I think there is more tolerance for the latter than you believe, honesty is quite important even if we disagree on the rules.

9 Likes

Well since this is a grievance thread I’ll take the opportunity to air a few of my own. I feel part of the problem is that there is never any real pushback against the Haskellators at a design philosophy level.

First off John De Goes, “The Last Hope for Scala’s Infinity War.” I’m responding from memory, its a while since I watched it. He claims

“No programmer is interested in …”

I’m precisely interested in Scala because it allows me to explore the trade offs and the best solutions between,

1 class based, run time dispatch, inheritance
2 compile time static inheritance and
3 typeclass based approaches

and also to explore the trade off between pure functional code and judicious use of mutation.

I don’t appreciate being told to eff off and programme in Java if I want class based inheritance. Scala is the only language that takes trait / class based inheritance seriously. C# and Java completely fail to provide multiple inheritance. I’m not going to go into the short comings of C++ or Eiffel. I’m not interested in dynamic languages. I’m not saying that everyone must use class based inheritance, I’m just saying leave alone the one language that attempts to explore principled class based inheritance.

Some people seem to claim that mixing paradigms creates the worst of all worlds.That mixing functional and imperative styles just creates a mess. OK so what if I accepted your thesis that I shouldn’t mix functional and imperative and must abandon Scala? What language do you recommend with which to practice pure imperative code? I can’t use Java, C# or C++, because all these imperative languages have been corrupted by functional features. I haven’t checked by I don’t doubt that even Cobol has been messed up by functional impurity by now. Must I programme in assembler if I want to use the imperative paradigm in a principled sensible way?

Lastly Scala has class based inheritance, allows mutation and is eager by default. If any of these are a deal breaker long term, for you, then don’t use Scala. I can totally understand that people don’t like class based inheritance or easy mutation, but these are fundamental to Scala, trying to remove them from Scala, even long term, is just idiocy. Sorry to be slightly abusive, but I can’t see any other words to describe it. I mean what is so wonderful about Scala that its worth some long term effort to remove them? Its not like Scala is even some dominant language like Java or C++. We should persuade people to switch to Scala so as we can then change it in to a completely different language?

So when highly intelligent and accomplished people suggest that Scala should remove inheritance and or mutation, is it any wonder that some of us don’t trust they are speaking in good faith. Is it any wonder that some of us may doubt their intellectual integrity. Is it any wonder if some of us suspect that they are just trolling?

9 Likes