Politics, Safety, and the Future of Scala

Yes, that is pretty appalling. Thanks for inventing that position for me.

The context was that we already have extensive policies in place to try to stop harassment and abuse.

This is my premise:

(Note that any sort of harassment or abuse is covered by code of conduct violations.)

And I suggested an alternative and provided a not-very-strong counterargument against the alternative.

I could have made an even less palatable suggestion:

Maybe you should give up and move on to something safer. At the end of the day, you have to take care of yourself.

Isn’t that terrible? Suggesting that someone has to just flat-out leave instead of feel safe?

Except guess who said that?

So all I was doing was suggesting a less dire action that would permit you to stay in touch with the community if it ends up being the case that despite the continual improvement with codes of conduct for Scala Center activities, you also continue to feel less and less safe.

A very understandable response is, “but I want not just safety, but also freedom”. Fair point, if that’s your point. Quite reasonable as a reply.

This, erm, was not terribly reasonable or charitable.

But some allowances need to be made when an issue is deeply personal. And anyway, I nonetheless continue to want you to be safe, and to be safe not just after taking extreme measures, but to be safe in every environment where it is reasonable for a person to be safe. (I do not recommend Tigray right now.)

And this should be true for you as well as for basically everyone else.

I think you misunderstand me here. I am saying that I think you will be less safe with increased tribalism. (It could well be that you will feel safer, and maybe that’s what you’re most after?) Unless you’re going to be anonymous and stay online, there are no hard boundaries between communities. It’s not a country (I already acknowledged this as an exception) and so all those people in that other community are still there, except more hateful and less understanding of problems in the “savory” community.

That is, I do not believe that fragmenting a community fosters safety. It only works, I think, if the ejected fraction is so tiny or so further fragmented that it doesn’t have any coherence on its own.*

Perhaps you believe otherwise. If so, maybe you have good arguments to this effect, or good evidence. I haven’t found any compelling research in this area, but my anecdotal experience is that divisions breed more divisiveness than you gain in in-group harmony unless the out-group does not have critical mass to self-organize, or you can completely avoid the out-group, neither of which seem likely to me to be true here unless we take pains to be more inclusive than you seem to be suggesting.

*Addendum added in edit: I don’t think it works specifically in the case of actual danger borne of hatred. If the other community is merely annoying (or, more dangerously, seductively exploitative), the separation can exactly do the trick–they do their annoying/exploitative things over there, and we do our pleasant things over here, and it’s all good. But when feelings run strongly enough for hate-driven harm to be a legitimate concern, I think the scenario flips, and hatred grows, and everything is worse.


This is a good point, and worthy of further discussion.

The reason I made the point I did is that there is actually some research on this, and it does appear to be rather hard to get people to change their minds. I don’t have the study/ies handy, and I don’t recall just how bad it is, so I’m only left with the less-than-completely-convincing impression that this is really important if you’re going to try to convince people. Emotional threat needs to be avoided whenever possible.

There’s also a fair bit of research into whether making people aware of their biases to think certain things helps them not think certain things. The results there are mixed, IIRC, but mostly it doesn’t work. So although in principle I agree with you that it tends to favor the discriminatory party, I don’t think it changes the advice, because people who are aware of that will probably go, “Oh, yeah, but I’m not reacting based on feeling emotionally threatened, but rather because they’re wrong because of rationalizations 1-5 that I rattle off whenever I feel emotionally threatened.”

If we want to do something to help even things out, it’s probably got to be something else. It’s really a quite lousy situation to be in, because I agree: in the case where someone’s saying you should die, it’s pretty difficult to stay calm. Those rare individuals who can do so, however, tend to have inordinately enormous impacts (in addition to being incredibly praiseworthy). Some of the people I hold most dear as heroes displayed exactly that remarkable capacity.

I’m open to other perspectives, but I think they need to be more sophisticated than just pointing out the very real problem that the relationship can start out asymmetric.

Also, I want to point out that the example, “transgender people should be killed”, is not among the points of view expressed here. Fortunately, everything said here has been much more mild. When the idea has come up at all, it has been repeatedly used as a mischaracterization by some arguing for greater application of censure against those arguing for less. So by the principle that the attacker has an easier time staying calm than the attacked, we should forgive anger expressed by those so maligned (but not by the maligner).

Or we could just say: this is the sort of thing that mature people can reasonably be expected to handle (not that they should like it, just that they can cope!), and though we’ll call the aggressors out on any bad behaviors, it is nonetheless very important for everyone to do their part in conducting a relatively civil deliberation. You don’t have to damp out all emotion, but when sides start hurling tribal allegiance phrases and stereotypical slurs at each other, you know things have gotten well past the point of productivity.

Anyway, tl;dr is–you’re right, it’s not fair, and I don’t see a way out aside from just swallowing the unfairness and carrying on. (Also, allies can help present the even-tempered version when needed.)


This is a really good point, and one that I would hope would be investigated more deeply.

The more severe our censure in service of maintaining a pleasant community, the more we ought to look at courts for guidance on how to build a just system. This is not to say that courts are always just (maybe not even “often” in some jurisdictions), but they have had to deal with a lot of the problems that come up.

The principles in play there include things like, for the accused party,

  • Innocent until proven guilty
  • Right to avoid self-incrimination (including no forced confessions)
  • Right to legal representation
  • Right of appeal
  • Right to a fair trial
  • Punishment proportionate to the crime

and even given all these things, in cases where ground truth can be established later (e.g. with DNA evidence), there’s still a pretty high error rate.

So when you propose things that sound a lot like “let’s do our best to ensure that this person is unemployable in the area where they have pursued their career”, I would like to either hear “but it’s actually no big deal for them so no biggie if we get it wrong”, or “and here are the measures we’re employing to make sure that we have appropriate accuracy for such a weighty decision”, or “actually the courts have it wrong, and here is a detailed argument for why they’re wrong”.

(I’d accept a parallel with civil proceedings rather than criminal ones; those can inflict the same kind of economic penalty as we’re potentially considering here, but probably not quite the same level of ostracism.)

That’s entirely true, but entirely unnecessary to argue, because we already have moderation in place.

Yes, but this includes both doing the best we can when we decide to render a judgment, and doing the best we can to reach the threshold we need to render one but recognizing that we’ll often fall short.

An appeal process is good to have, yes. Details are important, though, for it to be a meaningful check and not just a rubber stamp of the original decision.

Added in edit: I just want to clarify that I think that it is NOT the responsibility of endangered parties to have to come up with rules and procedures that will keep them safe. That’s the job of everyone in the community, and especially the community leaders and individuals in positions of authority. It’s not fair to make the endangered bear the whole burden. However, it can be extremely valuable to have input from people who feel endangered on where they perceive danger from, because it’s not always obvious to everyone; and suggestions of what to do about it can also help to better understand the problems and more rapidly find solutions.


“Thinking Fast and Slow” by Daniel Kahneman is a good place to look for relevant data if anyone would like a deeper dive into of human psychology like biases and rationalization.

I think we’re getting a little too close to yelling at each other for comfort, so I’d like to take a moment to talk about common ground.

We can all agree that harassment, and people that propogate it, suck.
We can all agree that, regardless of how you feel about the phrase “hate the artist not the art”, being in a situation where you have to make that choice sucks.
We can agree that inappropriate behaviour by an influential member of any community sucks.
Without making any claims on how it should be resolved or why it exists, we all are affected negatively by the rift in the community, and we can agree that it sucks.

We also share, on some level, an appreciation for scala and functional programming.
We want to see the scala community grow and thrive.
And most importantly, we can all agree that we are all participating in this thread because we want to improve the scala community.

The ideal in this situation is having a community where everyone is inclusive without even thinking about it. Unfortunately real life is messy. Everone here is sitting on a grain of truth.

To my friends on the one side, please do not dismiss those that take a stance against ZIO. If the maintainer of a library was a pedophile, wouldn’t you want them banned from the community? (This is obviously an extreme example, and I don’t want to equate this with the present argument. I just want to provide something adjacent that is common ground)

And to my friends on the other side, please do not hastily label those that are skeptical as bigots. Surely you can empathize with wanting to seperate good code from the imperfect people that write it. Though it can be tempting to shame someone with the moral high-ground, that makes it virtually impossible to have a productive conversation.


What is scala community – set S of all people who use scala language? Is the scala community exists in a sense other than a group of people selected by random? Сan somebody includes/exclude people from this group?

We have two groups, looking at X, and group A says that X is a crime, group B that is not. A and B both represent valuable parts of S. Representative of both A and B feel unsafe in the presence of the opposite party in S. Is a solution for this puzzle exist at all?

I don’t know the right way, but history gives us evidence of what approaches are wrong:

  • Labeling somebody as a perpetrator without legal basis. Complex juridical systems are not ideal, but this is a process of a long long evolution of society. And thinks like 'presumption of innocence, ‘right to defense’, ‘right to appeal’, ‘responsibility for false accusation’ exists and are important because of the long history of law abuse. Throwing all this out in favor of subjective labeling throw society on 500 years back. In the modern world, places, where ‘morality’ is prioritized over justify, is Iran and the Taliban. People from Western Europe still remember the Russian words: ‘Vrag Naroda’ and ‘reovlutionnaya troika’
  • Blocking the communication channels. This often leads to the escalation of conflict. A well-known example is The Cuban Missile Crisis.
  • Attempt to set up global censorship with cancel culture. It contributes to the polarization of society but does not lead to changes in opinion. (see ‘Academic Analysis’ section in Wikipedia article: Cancel culture - Wikipedia )

What’s worked relative well:

  • Special places or events (such as Olimpic Truce or Christmas Truce), where people from different camps can speak with each other. The existence of such places allows to grows institutional changes, such as the creation of law of wars or evolving platforms of negotiations to institutions.
  • Admission of the right to error, which is decreasing polarization, by providing intensity to be a 'social accepted member of society instead of becoming an enemy event after error.

Knowing the history, my thoughts are not very optimistic.


A community isn’t a court of law and it doesn’t have to be.

When working for your employer, you are expected to behave like a professional. So first of all, a professional code of conduct is not demanded by criminal law.

Your family has rules too, like “leave your slippers at the door”. Your house, your rules. If your family has a certain political orientation, engaging with the opposite side might be healthy for your opinions, but it might also be emotionally draining, so you’ll naturally befriend those with similar opinions and interests. You don’t need a court of law for any of that.

On one hand, I too worry about “blasphemies” affecting people’s lives again, like it happened prior to 20th century or so. In our society we should have freedom of speech. But … you don’t necessarily have freedom of speech on someone else’s property.

In regards to pointing at “perpetrators”, I’d like to point that we wouldn’t come to this if the community had leadership that simply said …

We don’t do that here

Simpler, more effective words have never been spoken. Just like in your home, when you tell your guests “leave your shoes at the door”. And your guests know you mean business, either they leave their shoes at the door, or they are not walking into your house.

And I’m sorry to say, but as a “community” we’ve been lacking that leadership, and now more extreme measures may be necessary. Now we talk of perpetrators and victims because they exist.

I’d also like to point out that this entire thread has gone into philosophical weeds.

For me it’s simple, really. People don’t want to collaborate with assholes that keep behaving like assholes. Minorities don’t want to collaborate with bigots that make them feel unsafe. And someone is always getting excluded — it’s either the victim, or the perpetrator. And by doing nothing, you exclude the victim.

I started looking at Scala around versions 2.8 - 2.9. Back then Scala’s IRC was pretty goddam hostile. I’m pretty sure a lot of people walked away from Scala due to that IRC channel. I don’t think we had a prominent JdG back then, but we had Tony Morris and others.

What makes Scala attract such “talent” and behavior? What makes Scala different from Rust (and similar to Haskell)? Or maybe we should ask what’s missing from Scala? :man_shrugging:


Yes, you are free to exclude JDj and his supporters from typesafe (and delete the integration with ZIO libraries), but the overall Scala community is not your home, quill author has. the same right as skunk author. This becomes a public space and low become needed.

1 Like


I have been using Scala at work since 2014 or so, when Lift framework was a thing. To this day, I have not used any library from either ZIO or Cats ecosystems (we are using Akka and think it is alright), so I guess I could claim to represent the silent majority of Scala users, and to have some impartiality in the matter. However, I have been following the epic drama and got some impressions to share.

My main motivation with this post is to express support for Martin Odersky. Thank you, sir, for your creation, and for leading Scala development to make it the language it has become! We are using it for a good cause, storing and distributing European greenhouse gas measurements, hopefully helping to keep the climate change at check. I hope to continue doing it, and to continue using Scala for many years to come.

Now, to answer the original poster. You have chosen Scala Contributors forum, which is supposed to be “a civilized place for gathering and discussing everything related with the evolution of the Scala language, from tools and libraries to the internals of the compiler”, as a venue to express a personal disappointment with:

  • Martin Odersky
  • the fact that among (probably) hundreds of people in Scala “community” (if there is such a thing), you have encountered a number of “unsavoury individuals”
  • that somebody has mocked you on an IRC channel some years ago
  • that BBC has published a video where some insane/evil person was saying that transgender people should be killed

Well, Martin cannot fix human nature for you, and neither does he owe it to you to keep you satisfied. He is entitled to his opinions and preferences, just like all of us, and if he does have some “internalized anger” towards Typelevel, he has IMHO at least three good reasons for that:

  • trying to turn Scala into Haskell and being the reason many consider Scala “too academic” => harming language adoption
  • being very vocal and appropriating the niche of Scala functional programming, when functional programming does not have to have anything to do with category theory
  • being the constant source of political drama, giving the language very bad PR => harming language adoption
  • even the stereotype of slow compilation times may be due to a Typelevel product (shapeless) => harming language adoption

To make a long story short, your post is extremely off-topic for this forum, and arguably violates Scala Code of Conduct (unstructured critique, nonconstructive criticism, flaming, attention-seeking behaviour). I wonder why the moderators permitted it.

Finally, I would like to propose a concrete step for Scala Center to take: do not ban people; instead, ban foul language, personal attacks, bullying, and ban mentioning other individuals’: gender (except pronouns), sexual orientation and sex life, religion, race, ethnicity, appearance, and political views. Somebody has brought up Rust as a positive example of a community taking an active political stance. However, this approach is very controversial, as this discussion can show. In the discussion, the poster asks why Rust Twitter has expressed a stance against police brutality in the US, but was silent about brutal genocide of Muslim people in Myanmar. The question was never properly answered, because there is no good answer to it. I propose that Scala avoids similar dilemmas (which political issues to express solidarity with, and which not) by staying strictly professional instead.

P.S. To those who like to throw word “bigot” around. Here is what googling “define bigotry” gives: obstinate or unreasonable attachment to a belief, opinion, or faction; in particular, prejudice against a person or people on the basis of their membership of a particular group. Hm, why does this sound familiar?


I’m glad you think that Typelevel can have its own rules.

Now pay attention to the cause of this thread, such that we don’t talk past each other … and tell that to Martin Odersky too.


It is important to note that doing something you also exclude a victim. It is a good question who is more victim. A person who has come out by himself or a person who is kicked out by owner.


Thread is here, not on typelevel forum. So - it’s about the overall scala community.

// warning - potentially non-constuctive statement.
About comment better ask him directly. Personally, I think that he can express his emotions, you can ban him if you want. …
// end of non-constructive.

Looks like this is an example of narrative escalation [I don’t want to propose bringing to the point of absurdity, but this is … so logical. The same as in Stanford Prison Experiment, guards were directed by narrative]. Maybe we should recognize the patterns, which lead to such a narrative and mark ones as controversial.


The health and safety of our contributors, and the way they our BDFL engages in discussions directly affecting that is to me very clearly on-topic. To suggest otherwise, and to suggest that it should obviously be disallowed comes across to me as a disingenuous way to stifle discussion on the subject.

If stifling discussion on the subject is a good-faith attempt to narrow the scope of this forum, maybe such a discussion should be spun out to a different thread.


I sympathize and I’d love if it was so simple. We don’t do what and where exactly? The Scala Center can only govern what it controls, basically this forum and the ScalaDays conference. I know people did put a lot of thought into the Scala CoC and I am thankful for the moderators who try to enforce it every day (I know it’s not easy!). If you want to help them, please step up.

We are in train of consulting with some experts in community governance to see whether something else can be done. We’ll report when we know more.


This instills hope. I’m very happy to hear it. More transparency about what experts would instil even more trust. Sharing your considerations and steps you’re in the process of taking or evaluating, even if they’re not a neat package and really clear, can be valuable to the wider community. That said, I understand a desire not to say things too soon that you may regret later.


This is something that I’d like to see discussed more (and elsewhere). I love Scala as a hybrid language, and when on occasion I have to program back in Java (or ML) instead, I hate it. But I’ve felt for a long time that this desire by some to become a new Haskell is hurting the language.

I’ve gotten excellent, insightful answers to my beginner’s questions in Scala fora, but I’ve also seen my share of overly functional replies (monad this, typeclass that, incomprehensible to a beginner), and condescending comments of the form “if you knew your category theory, you wouldn’t be asking this”. I hope this is an issue that the Scala leadership (whatever that is) is considering (elsewhere, not in this thread).


That’s not a good question at all. Someone who is ejected based on their abusive behavior towards other is in no way equivalent to those they’ve abused.

While I understand that it isn’t that simple in it’s totality, it also kind of is. Thankfully, you’ve walked back from the most damaging reading of your comment on the PR, but the text of it is very much “we don’t do that here” - though in this case, “that” is “refuse to work with projects as a form of protest”. Given the particular behaviors of the person in question, that sends the message that someone who has boosted some really abhorrent people feeling welcome is more important than the safety and inclusion of those impacted by those people. Thankfully that wasn’t the message you intended, but it was very much the message that you sent.

It goes somewhat beyond associations in the particular scope of this thread, and while I can’t speak for @NthPortal, hopefully I can add some context on why the quote from Lily Cade might have been included, as I’ve noticed it’s relevance being questioned a couple times.

It’s relevance is primarily to show the danger in the TERF ideology that JdG helps normalize, through statements like this:

programmers being persecuted for questioning whether 4 year olds should transition, and similar.

People who have expressed concerns about the unbounded growth of gender pronouns have been accused of denying basic human rights to non-binary gendered individuals.

Both of these are common TERF talking points, and serve to normalize their campaign of violence against the trans community. Lily talking about killing trans people en masse is so scary because people are actually doing it - as linked previously, the trans community suffers violence at 4x the rate of the general population, to put that in context, in 2013 72% of all hate-based homicides were transgender women.

Hopefully this helps add context on why a hostile stance towards Rob’s PR would serve to make those in the transgender community feel unwelcome and frankly unsafe.

One of the things I really like about the Scala community is getting back a diversity of answers when asking questions, so people reading at all levels can get something out of it. It really helps keep people coming back to those answers.

The elitism though, is definitely a problem, and I’m sorry (but unsurprised) that you ran into it. I agree that definitely is something that also needs addressed.


Hi Everyone,

I am (this time for good) closing this topic this time for the following reasons:

  1. The sheer amount of answers – as well as their length – takes the moderating team a lot of time to process and sync;
  2. We want to make sure we do a good job at moderating (please raise flags if you see something inappropriate, that will help us!);
  3. Scala Center Advisory board takes place tomorrow (Wednesday, 10th November) and we would like to integrate the recent issue and overall points in this discussion;
  4. We hope we can help de-escalate and improve where we can the situation at the moment;
  5. Allow other users of this forum to continue bringing up topics of their interest too.

That said, we also believe that most of the arguments have been made, and we see that no new arguments are put forth, so it’s safe to leave it at that.

I would like to use this opportunity to re-establish a couple of facts regarding the Scala Center, as I’ve noticed there are many misconceptions as to what Scala Center can do in this or other similar situations.

The Scala Center’s scope of influence

Scala Center spaces (together with LAMP, VirtusLab, and Lightbend) are the scala 2 and scala 3 repositories, the scala-lang.org and docs.scala-lang.org websites, the @scala_lang Twitter account, the Contributors, Users, Organizers forums; the ScalaDays conference, ScalaSpree, ScalaBridge, Contributors Summits and other events we co-locate and organize, Scala Center projects under the Scala Center organization on GitHub and some that are under our umbrella (such as Scalameta and Scala).

In these spaces, we make sure to foster a welcoming, inclusive, respectful, and healthy community dynamic (amongst others) by answering, being responsive, mentoring, and moderating, and enforcing the Scala CoC. We do our best to lead by example and to encourage anyone and everyone who uses Scala to accept and enforce the Scala CoC.

On the other hand, as we don’t have the capacity or resources to go beyond our own spaces, we must trust that the wider community will do the right thing in and around their own projects. Or let us know about issues through forums like this one, and through Scala-CoC@epfl.ch for those issues that need more attention and should be treated with confidentiality.

Appropriate channels of communication with the Scala Center organization

The appropriate channel to report a Scala CoC violation within Scala Center spaces is to contact Scala-CoC@epfl.ch.

The appropriate channel to propose a project is the Scala Center proposal template.

The Scala Center Advisory board quarterly meetings are the main forum of exchange about Scala Center’s overall work, records publicly available here.

Note on Code of Conduct enforcement principles

When the violation of Scala CoC reports are received, the main principles we abide by are confidentiality and fair treatment. We are obligated to do our due diligence, taking into consideration the context, background of people involved, cultural differences on one hand, and uphold and match the standards described in the Scala CoC on the other. In short, harmful, harassing, bullying, exclusionary behavior is not tolerated! In cases where it is clear that a person violated the Scala CoC within our spaces, or have made people unsafe, the Scala Center will use appropriate measures to keep our spaces safe.

Can we do better? Can we scale these principles? Hopefully! We are working on figuring out these complex questions and finding the right answers. We are dedicated to doing our job properly and thoroughly, limited by resources and decision-making processes that take time. I invite you to watch this great and insightful talk The Intentionally Designed Community by Megan Byrd-Sanicki.

We appreciate everyone who voiced their opinion here, shared a new angle, and helped us understand better what we need to address. Special thanks to those who specifically focused on constructive proposals.

Rest assured, as soon as we have concrete proposals, we will let you know, and we hope to get your support, advice, and help of any kind. We believe that we can make a change for the better, and keep the hope!