Why Perl Advocacy Is A Bad Idea

Note: I see that this page is impressively high in Google search results for the phrase “perl advocacy“. Which means that some people might come across it without understanding the context.

This page is a joke. It is the text of a lightning talk that I gave at a couple of conferences in 2001. There is a tradition in the Perl community that lightning talks are not to be taken at all seriously and this is an early example. If you read to the end of the article the joke will (hopefully) become obvious. But if you just skim the first couple of paragraphs, you might not realise that.

To be clear, I don’t really believe that Perl advocacy is a bad idea. I think that Perl advocacy is a great idea. Please don’t take anything in this article at all seriously.

We all know that Perl advocacy is a good idea, right? We all want to get as many people as possible using Perl. But if you think for a second about that idea, then I’m sure you’ll agree that that’s very much what we don’t want.

Let me explain.

What do you like about using Perl? I’m guessing that, like me, you have many reasons for liking the language but that, above all, you enjoy being part of the Perl community. The Perl community has one of the highest concentrations of smart and interesting people that I’ve ever come across. They also seem to have far more passion for their language of choice than any other language community that I’ve come across. Many other languages don’t even have anything that comes close to being a community in the way that we have.

I see this as a good thing. I love being part of this community. I really can’t understand why people might want to change the way that the community is made up. Some people want to encourage just anyone to join the community. They want to advocate the use of Perl to the outside world. “Bring in as many people as possible”, they say.

Why is this a problem?

There are only so many smart and interesting people out there. Any major increase in the amount of Perl use is bound to bring down the average. Why dilute the gene pool in this way? The people that we want using Perl, (the smart people) are, by definition, smart. They’ll find Perl by themselves, without any help from us. If you need help finding the Perl community, then maybe we don’t want you in it.

What are the downsides of bringing these people into the community? As I see it there are two. The first is that the average quality of Perl code goes down. We already have to contend everyday with people thinking that Matt Wright’s code is a great example of how to write great code. Everyone who’s read “Learn Perl 21 Minutes” or “Perl For Morons” reckons themselves as a Perl expert. Already, a vast amount of the Perl code out there is unspeakably bad. Imagine how much worse it would get if all the VB programmers started writing Perl.

The second problem is even worse. Having all these “less able” people in the community means that the people with clue have to spend too much of their time helping them with stupid problems. We’ve all read comp.lang.perl.misc. Many of us no longer bother. People should be free to spend their time working on cool Perl stuff – not explaining a dozen times a day how the return values from localtime work.

So what do I suggest instead? The Perl movement should go underground. We certainly shouldn’t be holding huge conferences like this. Give this conference over to the Python and Tcl people. Letthem deal with the idiots. We should become a covert organisation. All of the Perl websites should become password protected. The access codes should be passed on at secretive Perl Monger meetings held in the back rooms of pubs and bars in all major cities. People clever enough to work out where these meetings are being held should be welcomed in. They’ll find a booming, but secret, trade in O’Reilly books (oh and Manning ones too). Also at these meetings, money for Damian Conway will be collected in wads of used fivers and passed back to YAS through a complex money laundering route. Perl hackers will trade secrets on how to best hide the fact that they code in Perl from all but the most clued up of their colleagues. Acme::Bleach should be used to disguise the use of Perl by hiding the source code.

Remember – the first rule of Perl Club is you don’t talk about Perl Club.