Ruby: come for the language, stay for the community. That’s the story I tell people, anyway.
Yesterday, however, we saw some of the worst in our community.
An issue was raised with the RuboCop team about changing the name in light of the race-related police brutality issues (and more) being tackled in the USA right now.
Bozhidar Batsov, the project author and lead maintainer, declined the request and closed the issue, noting how disruptive it would be to rename something so widely used, and claiming that he wanted to keep “politics out of software.” A few days later, several follow-up comments were made, taking various angles and urging him to reconsider his position. A couple of forks were made without notice. Everything argued until this point at least looked to be in good faith.
Now, all of those recent events happened while Bozhidar was asleep (he’s in Bulgaria, while most of the commenters looked to be in the US). That’s a lot to wake up to, I’m sure (and a snarky tweet or two likely stung the most). I don’t know Bozhidar, though I’m sure it’s safe to say we both love Ruby, and we also both wear sunglasses in our social media avatars, which I appreciate. What I do know, however, is that he’s poured hundreds, maybe thousands, of hours of free labour into this project, so I can fully appreciate how shocking this must have felt to him. He shared this reaction on the GitHub issue.
What happened next was truly horrifying: a vile, toxic pile-on, ruthlessly villifying the folks who were in good faith trying to make the software more welcoming (I won’t link to the comments in the issue, nor other comments on social media, many of which are equally irredeemable).
This was online bullying, pure and simple. And online bullying kills. There is no place for this in our community.
Bozhidar eventually locked the issue, but as RuboCop lead, he’s yet to make any statement about the behaviour of some of those who spoke in “support” of him (I’m sure he has a lot going on, and I’ve reached out to him about this privately).
Update: Bozhidar has now published his thoughts on the matter, and I’m grateful for his conscientious leadership here.
As for me, let me also speak this, as one representative of the Ruby community: There is no place for this vitriol here. This behaviour is NOT welcome in ANY form.
There are many ills that plague the world right now, and whether or not you think software naming changes have a role to play in improving things — I do — it should at least be clear that one easy way to make a better world is to bring our best selves into every situation. And if you feel you can’t do this, consider just giving it five minutes.
I notice that RuboCop, as of about 18 hours ago, now has a Code of Conduct:
This document provides a few simple community guidelines for a safe, respectful, productive, and collaborative place for any person who is willing to contribute to the RuboCop community. It applies to all “collaborative spaces”, which are defined as community communications channels (such as mailing lists, submitted patches, commit comments, etc.).
- Participants will be tolerant of opposing views.
- Participants must ensure that their language and actions are free of personal attacks and disparaging personal remarks.
- When interpreting the words and actions of others, participants should always assume good intentions.
- Behaviour which can be reasonably considered harassment will not be tolerated.
Unforunately, there’s no clear recourse specified for those who do not abide by these guidelines, which I feel is a critical element for a Code of Conduct to ensure a truly welcoming space. However, even in the absence of this, I still sincerely hope that it brings about materially healthier interactions within the RuboCop community in future.
To Bozhidar: thank you for everything you’ve contributed to the Ruby and other open source communities. You’ve personally made our community a better place. I’m sorry many aspects of this were hard for you, but I also hope you can help to visibly steer things back in a positive direction from here.
To everyone else in the Ruby community: “Matz is nice so we are nice” is not a pithy aphorism. It’s a bare minimum, a mere starting point. We can and should aim for better.