"White knight", a meditation

If you think "white knight" is a crap term, a convenient argument-by-dismissal tactic, then you probably already know all this, but there may be some useful ideas for the next time someone attempts to spring this on you.

On the other hand, if you're one of those who think it's the scored-the-touchdown-high-five-we're-done-here way out of any situation where you've said or done something crappy and then been called on it, you're probably not going to read this anyway, but I shall go ahead and write it so you will have to waste energy making up increasingly vituperative denials which I will pointedly ignore.

I have heard this term used both explicitly and implicitly multiple times recently because I decided to speak out on something that I didn't like and that mattered to me, despite the fact that it wasn't about me. "White knight" supposedly means that I spoke out solely to impress somebody with how noble and great a person I am, and that I otherwise wouldn't have made the effort, and that it was all about what I could get out of it.

First: if you really think people only do things to for their own benefit, like the Grinch, your heart is several sizes too small.

Second, I have no need to do this, thanks - I've actually learned social skills and things, and can actually manage to communicate with people other than by waving metaphorical "SEE I'M A NICE GUY OH GOD I'M SO ALONE" signal flags across the Internet. People who know me personally know I do things because I'm genuinely decent, as opposed to someone who's "nice" and expecting a payback. That is what is known as "manipulation".

Third, despite the fact that I am indeed heterosexual and male, I have no desire to have sex with random people simply because they are female and breathing.

Last, nice try at making it about me rather than the stunningly ill-bred, bad-mannered, and probably stupid thing you just said.

Moving on, let's talk about Perl and CPAN.

Perl exists because Larry Wall decided that this tool he put together for his own purposes would help people - would "make the easy things easy and the hard things possible." He wrote it, and gave it away for free. Many other people found it, used it, thought it good, and offered their own time and effort to make it better, with the only thing they got directly being recognition. Perl and the Perl Porters made people happier.

CPAN exists because many people, most of whom don't know each other at all, decided to give away something they made to anyone who wanted it, without regard for reward. the only reason it happened at all was because one person, Jarkko Hietianiemi, created CPAN itself and said, "Here's a gift. It was needed, so I made it. I want nothing for it. Please use it if you want it." (Note: this is not a quote, but a paraphrase I've constructed out of seeing what Jarkko has done over the years I've known him and known of him. Yes, I admire the hell out of him and think he's a mensch. Fanboy moment over. Let's forge onward.)

Many others built upon this gift, extending the network and adding new modules to it, to the point that Perl is not so much a language but an incredible collection of software that happens to have one language that can run it.

The participants all wrote software, or set up nodes in the network, because their hearts (or ethics, as you prefer) told them "this is the right, good, and joyful thing for me to do". It was not free; it cost them each time and effort; but year by year it created a great and glorious thing. It made Perl into a great force for making things happen. It made them happy.

So, we have people voluntarily doing something for the good of others they don't even know personally. Doing it because it was, in their eyes, the right thing to do. Doing it for nothing other than perhaps the admiration of others, though that wasn't guaranteed. Sometimes they even did it to help others - for people who didn't even know they'd done it. Doing it to increase joy, whether they knew it or not. It made them happy.

Does this not make them all "white knights"? Shall we sneer at them all now because we all "know" that they wrote all that software to impress someone?

Does this get across how incredibly small-souled, short-sighted, and just plain dumb this is?

To reduce it to its most basic: actions which are termed "white knighting" are those meant to help make more joy by pointing out that trying to reduce joy is wrong. Joy, like software, is not a zero-sum game. You don't have to make someone else less happy to be more happy. You don't make Perl better by talking about how horrible Python is. They both stay the same. You're just substituting schadenfreude for true joy.

Trying to remove something from the world that would decrease someone else's joy by saying, "that's not right," is a good thing to do. Even if it doesn't work, you've still said, "Not everyone thinks you should be less joyful. Someone else in the group this came from thinks it's wrong." That won't undo the nasty thing, but it might help take the sting away a little.

So the white knight is the CPAN author of the heart.

I believe in creating joy however I can. I've released a fair amount of free software. I also believe in trying to create joy through words and the truth, and not tolerating things that are wrong. I can't write every module on this metaphorical CPAN, but I can try to write the ones that apply to the things I do.

Please, do call me a white knight. From now on I think I'll say, "Hey, thanks for noticing! Like to help?"


"White knight" is similar to "politically correct" in its dismissiveness. If someone suggests that it's not good to alienate and insult other people, out comes the "PC" tar brush. Anyone who would speak such a "PC" idea is now candidate for the "white knight" slur.

The most insulting part of "white knight" is that for the speaker to use it, he must presume to know what the motivations of the target are, which of course he cannot know. It takes the conversation out of the realm of facts into the swamp of suppositions and assumptions.

I don't have time to write much, nor think you should waste time on it, but I do want to state I agree with you, and with what Andy said.

Leave a comment

About Joe McMahon

user-pic Blogging about Perl, wandering off into compatibility issues with other things, like Python and Django.