last modified 2012-05-21 15:29

It is traditional for each release of perl to be announced with a form letter beginning with a quote, or epigraph, chosen by the release engineer. For Perl 5.16.0, I chose the penultimate stanza from W.H. Auden's September 1, 1939.

The full text of the poem can be found easily by searching, though I may not reproduce it in its entirety here.

It was written shortly after the outbreak of WWII, and reflects on what a bloody mess everything was, is, and would be. Specifically, it's about the feelings among the crowd of men around the poet: the quiet desperation that dominates their lives, now as ever before. Not just because of impending chaos, but because of the struggle that will continue against it now as it did before: to live honestly, to be happy, and to be loved.

For the error bred in the bone

Of each woman and each man

Craves what it cannot have,

Not universal love

But to be loved alone.

The Internet is a weird and terrible thing. Larry wrote, "The social dynamics of the net are a direct consequence of the fact that nobody has yet developed a Remote Strangulation Protocol." It's true. They're also a consequence of the fact that many of the protocols that do exist are used largely to function as a remote abuse protocol. It's very easy to abuse someone over email or IRC or blog posts.

Over the last nine months, I've gone from reading lots of the Perl 5 Porters mailing list to reading all of it, even when it grows distasteful, and let me tell you something: it sucks.

To be fair, it's much better than it once was. Even I, relative latecomer, remember some of the dark days when everything was a flame war. Compared to then, the list now is civil discourse. Compared to actual civil discourse, though, things are not great.

I see at least two causes. The first is that when someone without much proven technical work in his or her portfolio posts abuse, it's considered okay to abuse in return. This is the "well, he started it" defense, and too often it's considered a valid one. The other cause is that we don't call out the technically useful members of our community for bad behavior, because they're useful. This is the rockstar problem. These two problems work together, of course. When a new poster abuses an existing member and the existing member responds in high dudgeon, everyone thinks this is right and proper.

It makes me think back to a lightning talk at OSCON 2011, when someone said, "When we say that this community requires a thick skin, it means we're self-selecting for only people with thick skin." It also means that we're doomed to cycle back into nastiness as the group's average skin thickness and willingness to flame grows higher and higher.

The enlightenment driven away,

The habit-forming pain,

Mismanagement and grief:

We must suffer them all again.

Of course, this problem is everywhere on the Internet. It's in every language's development community. We are not even close to free software's most wretched hive of scum and villainy. That's because, people say, free software is a meritocracy where the best contributors will be respected and last. Heck, that's why they're allowed to be abusive.

The thing is, it means that the best abusive workers will flourish, not just the best. When the culture around a project becomes too caustic, there are plenty of useful people who will leave (or decline to join) exactly because of the culture where the outsider is free to be abused. There is no real meritocracy there.

Into this neutral air

Where blind skyscrapers use

Their full height to proclaim

The strength of Collective Man,

Each language pours its vain

Competitive excuse:

But who can live for long

In an euphoric dream;

Larry talked about troll-hugging at YAPC last year, and how the correct response to abuse is not more abuse. The correct response to abuse is patience, correction, explanation, and an outpouring of civilly-worded disapproval. These are expressions of love, whereby we try to improve our attacker so that we won't need to attack each other any more.

This was my release epigraph for Perl 5.16.0: