For years, I’ve heard rumblings of misogyny, sexual misconduct, and other troubling events in the Ruby community. Female friends have discussed their stories with me at length: some are concerned (but still participate), while others have left the community altogether. Both choices are perfectly valid.

I was once a Rubyist. Back in 2007, it didn’t take much to sell me on the new language, especially after I saw what Rails could do. But that wasn’t all: the kind community surrounding both the language and framework fostered a belief that the Ruby world could be an outcast programmer’s nirvana; after all, the central community maxim inspired by the language’s inventor, Yukihiro “Matz” Matsumoto was this: “Matz is nice, and so we are nice."

It sounded good, wholesome even. At last, a community of programmers dedicated to changing the world though the quality and expressiveness of their software, who also wanted to be known for kindness and diversity.

I kept this rosy-eyed perspective until I heard the stories of my friends — who I immediately believed — years later. I knew that these moments, recounted in secret, weren’t isolated; but after a recent explosion on the mailing list, I realized that these unfriendly currents run much deeper than I initially understood.


Several years ago, I moved on from Ruby to pursue JavaScript, Node, and Elixir. Ruby had served me well, but it wasn’t the ideal tool for me. I made this decision on a purely technical basis, not because I was discriminated against. I had no hard feelings towards anyone in the community at large, I just wasn’t interested. And since Node.js fit my use case, I dove in headfirst.

With my newfound appreciation of JavaScript also came some other, unexpected pluses: the Node.js Community is where I first discovered a cadre of vocal activists who were working to ensure diversity and equality in their environment. You see, Node.js is relevant in more ways than one: yes, it’s the first successful implementation of server-side JavaScript, but it also is legendarily welcoming, affirming, and truly kind, thanks to a handful of people I’m proud to call friends. Kassandra Perch, Aria Stewart, and many other individuals are to credit for this. Several members of the Node.js Core Team are avowed feminists, but even outside the circle of leadership, the community as a whole tends to defend their own from any unsavory insults. Sexualized imagery, personal attacks, and harassment of any sort isn’t tolerated.

This is one of the main reasons I’m loyal to Node, and I’m not alone. Frankly, it’s one of the reasons I feel comfortable contributing to the Elixir community too: they have a solid Code of Conduct, based in part on the Contributor Covenant — a promise that the project in question, made by the maintainers and community members around it, is and will remain a harassment free zone.

In my mind, such clarity is essential. Whether you have a formal Code of Conduct or not is an issue that should matter to every community member, even if you’re a privileged, cisgendered, white, twenty-something male, like me.


Now, let’s refocus on the Ruby community. The explosion, mentioned above, was triggered by a basic question from my (new friend) Coraline Ada — author of the Contributor Covenant, a boilerplate Code of Conduct that has been adopted by many prominent community-driven projects, including RubyTogether, Bundler, and countless others.

At the time of her post, the Ruby language hadn’t yet adopted a Code of Conduct (at least, not in writing), but given the widespread community support for her work, one would assume the core language could benefit from it too… right? I wish.

You can read her thought-out, reasoned suggestions in full on the mailing list, but for the sake of clarity, allow me to excerpt a portion of what she wrote:

Our community prides itself on niceness. What a code of conduct does is define what we mean by nice. It states clearly that we value openness, courtesy, and compassion. That we care about and want contributions from people who may be different from us. That we pledge to respect all contributors regardless of their race, gender, sexual orientation, or other factors. And it makes it clear that we are prepared to follow through on these values with action when and if an incident arises.

This paragraph perfectly explains the need for a written, enforceable Code of Conduct. Every project should have one, since it defines what the community sees as “nice” behavior, and sends a positive signal to those outside the community. Yes, even if prominent contributors set a friendly tone, a Code of Conduct is still essential. To someone who might be approaching your project from the outside, it can speak before you do.


I have never been harassed or bullied because of who I am. I’m white, privileged, and male. Demographically speaking, I should be entitled, never realize the value of what I’ve been given (just by virtue of being white and cisgendered) — and somehow, I’m not. But this isn’t a pat on my back: instead, it’s intended as a lesson for anyone who doesn’t understand the importance of this discussion.

To illustrate my point, allow me to quote another individual, B. Kelly, who was also involved in Coraline’s thread:

I’m utterly opposed to this sort of policing of language. (Apart from the anti-doxxing prohibition, which I’d support.)

I don’t think noises made by the perpetually offended should warrant special consideration (rather more the opposite.)

Re-read the last paragraph with me. The comment about “noises made by the perpetually offended,” tips me off to a mismatch of understanding. From B’s perspective, maybe anyone who demands “special consideration” need to sit down and shut up, but the issue at hand isn’t that simple. Let’s see what another contributor, Eric Wong, has to say. Maybe they can clarify this thorny discussion:

I am against this, we don’t have this problem in Ruby itself. And the Code of Conduct language is too easily twisted for personal vendettas.

Really? The combative language and fear in this statement makes me think differently. If anyone is compelled to explicitly state that a problem doesn’t exist, then it must. And this isn’t just a trial of other community members: I’ve said this to myself hundreds of times, and in every moment, I was lying to myself.

If you want to continue complaining, that’s fine. While you’re off living in the perfect society with no bad actors, other contributors are busy pushing away would-be contributors and their new ideas. A document that enumerates the basic rules for engaging with your project will give you a platform — a basis for enforcement — should your values (or those of the project) ever be questioned.


In his essay, What is a ‘System of Privilege’?, sociologist Allan G. Johnson explains the basic power dynamics that exist within any community:

A system of privilege — a family, a workplace, a society — is organized around three basic principles: dominance, identification, and centeredness.

He continues, further clarifying the matter:

A system of white privilege, for example, is white-dominated, which means the default is for white people to occupy positions of power. White-dominance doesn’t mean that all white people are powerful, only that the powerful tend almost always to be white, and when a person of color occupies a position of power, that will be noted as an exception to the rule (as when Barack Obama is routinely identified as a black President and not just ‘the President’).

It doesn’t get any more clear. Society is organized around those basic principals, and if any one of them is more powerful than the others, the organization, be it organized for civil, technological, or socioeconomic purposes, will not function optimally. Look at the community for any major programming platform, and you will see folks working against the forces that seek to disrupt the community’s high ideals. And if these positive change-agents aren’t present, or were removed by the disruptive force of other individuals, the community will become unbalanced and suffer. It’s just science.

Science, I hope, is among the forms of evidence that you, dear reader, accept. If not, I’m unable to help.

Here’s the central issue at hand. I’m white, privileged, and these discussions — and struggles — don’t affect me unless I allow them to. I have chosen to listen, to think critically, and help enhance my communities as I’m able. You should do the same.

It’s not that I think you’ll listen to me: I don’t. It’s not my job, as the generally unaffected individual that I am, to speak out. I don’t want to snatch the megaphone from other, incredibly well-informed voices on the subject — but rather, I want to make noise in a way that only I can. To help broach the subject of inclusivity with folks who may be comfortable listening to me first.

This audience should eventually get to know the allies for diversity as I have, and listen to them directly. But in the meantime, while we’re all learning, this is one method for amplifying their voices.

I get it: programming has been an old boys club for many years. It wasn’t always that way: Ada Lovelace, an English mathematician and writer, is widely recognized for her work on Charles Babbage’s analytical engine. Grace Hopper, Gertrude Blanch, and many other women have contributed vast amounts of work to the field of Computer Science. And just like every man who was also passionate about the field, their work slowly built, piece by piece, one semiconductor at at time, the modern computing industry.

It’s time that everyone get a chance to influence the future of our field. Point blank. And if like some, you consider these voices, asking for “special consideration” to be new, hear this.

Maybe the reason they’re new is because you, and those like you have been smothering them for years. They’re not new, you just don’t listen closely enough.

I, for one, don’t want this future for my daughter, who is already showing signs of being intellectually curious. I refuse to tell her that certain fields are blocked off because of her gender. And maybe, she won’t grow up to be a her. Thats fine too, and shouldn’t be a blocker to a future career either.

If you refuse to change, we, as an industry, are glad to show you the door.