The Story Behind the Parrot Prank

by Simon Cozens

"It's not pinin,' it's passed on! This parrot is no more! It has ceased to be! It's expired and gone to meet its maker! This is a late parrot! It's a stiff! Bereft of life, it rests in peace! If you hadn't nailed him to the perch he would be pushing up the daisies! Its metabolical processes are of interest only to historians! It's hopped the twig! It's shuffled off this mortal coil! It's rung down the curtain and joined the choir invisible! This.... is an EX-PARROT!" - Monty Python, The Parrot Sketch.

All right. I admit it. In case you haven't guessed by now, Parrot was a very elaborate April Fools' Day hoax. It seems to have caught a lot of people out... including some people who really ought to know better. I've had a couple of requests from people who want to know how the hoax was perpetrated, so here's the story.

The Perl community, and the Internet community at large, have quite a tradition for big or clever April Fools' jokes. Last year's big one was, of course, the collaboration between Segfault, User Friendly, and Slashdot, to fake the shutting down of the first two sites due to a cease-and-desist order from an unnamed software company. I've tried to play my part. Last year, I released Perlix, the Perl operating system. (The whole joke being that it wasn't a joke.) This year, I thought I'd do something a bit bigger. But what?

The big news in Perl over the past year has been, of course, the Perl 6 announcement, Larry Wall's work on the language design for it, and, perhaps more significantly, the fact that we hadn't heard anything from Larry about what he was doing. (Something spectacularly rectified the day after April Fools' Day with the first of the Apocalypses.)

So, that was a big lead. Another big feature in Perl is, of course, the rivalry with Python. So, merging the two ideas, why not merge the two languages? My thoughts on how to play it evolved in pretty much the same way as the story told in the mock interview, Programming Parrot: Initially, the plan was to merge the two interpreters to have a single bytecode, a Common Language Runtime, like Microsoft's .NET. (Something I honestly have been thinking about in real life....) But then the language design element of Perl 6 came back, and I realized we could completely merge the two languages together.

Of course, this would be no fun--and not at all convincing--if it only came from the Perl side. So I got in touch with Eric Raymond, and asked if he'd like to get involved. He loved the idea, and forwarded my mail to Guido van Rossum, the developer of Python. With the Python side secured, it was time to write the press release. The story was filled with as many plausible details as possible for something that was patently false: It's possible that Larry and Guido did meet at last year's Open Source Convention, and it's probable that if they did, they talked about the changes in their respective languages.

Maybe Larry and Guido will team up at this year's O'Reilly Open Source Convention. It's in San Diego, California, July 23-27. Be there and find out!

It's also true that Perl assimilates features from other languages, and that Yet Another Society was set up to facilitate collaboration. What I didn't know until I'd spoken to Guido was that Python was also going through a period of redesign and redevelopment, the Python 3000 project.

The next idea was to write a longer feature for; this simply built on the ideas in the press release. Tim Peters, from the shadowy Python Secret Cabal, really did come up with the first piece of sample code, which I absolutely loved: completely horrific from a programmer's point of view, but an obvious mash of Perl and Python. That gave the game away for most people.

The most difficult part was, of course, coming up with the name. All of the suggested names in the interview--Chimera, Pylon, Perth, and so on--were suggested to me in a little brainstorming session. I'd had the idea of getting an O'Reilly book cover done, so I wanted something animal related. We were naming animals beginning with "P" when eventually a friend of mine came up with "Parrot." It was absolutely perfect, and easy to justify.

Programming Parrot in a Nutshell

Then I talked to O'Reilly. Editor Nathan Torkington took my initial idea to Edie Freedman, O'Reilly's creative director. Together with Schuyler Erle, one of the O'Reilly Network's Perl hackers, we knocked up some copy for the O'Reilly catalog's book page. I wanted a "Programming Parrot" book along the lines of Programming Python and Programming Perl, but a little mix-up on my part meant we ended up with Programming Parrot in a Nutshell. Not a problem.

I mailed the lead developers mentioned in the interview, Dan Sugalski and Jeremy Hylton, and let them in on the secret. They set about working out ways to carry on the joke, arranging to start sending mail to the various development lists detailing how they were going to carry out "the merger". (As it happened, time pressure meant that these mails didn't get sent out, but they were ready in case we needed them.)

Now we needed to worry about publicity. I let in Chris Nandor, who runs and, coincidentally, works with the Slashdot guys. He arranged to push the press release onto use.perl and also have the story appear on Slashdot.

By now, we have a cast of thousands. Steve McCannell, a producer for the O'Reilly Network, set up the interview on, and Nancy Abila, the Network's director of production, arranged for it to appear at the right time. Edie Freedman had product designer Pam Spremulli create the book cover. Laura Schmier,'s designer and production manager, built the catalog page for the book; and Nathan, Schulyer, and I supplied the text for the catalog page. Fred Drake, the Python documentation maintainer, rigged up an announcement about a joint documentation effort and markup language. (We also checked with Tim O'Reilly to make sure he was OK with this gratuitous abuse of his company....)

Then we had one of those coincidences to die for. I wanted to send up the Great ActiveState Conspiracy in the Parrot joke and play on the paranoia there. As I was working out how to do this, there came the announcement from ActiveState that Larry, Guido, and some other language leaders had joined its Technical Advisory Board. Beautiful! Now we had Guido and Larry working for ActiveState and then announcing a new language! Could ActiveState have been behind the Parrot project all along? Amusingly, many of the emails I had from people about the joke said that the part about Larry and Guido working for ActiveState had given the joke away for them. Sorry, guys, that's the only real part about it!

All the pieces were in place. I sent out the press release to perl5-porters and perl6-internals; Chris took it and put it on, and it also got put up on Steve flipped the switch late Saturday night, and the interview appeared on Laura Schmier and Scott Hill,'s content editor, arranged to point to the Programming Parrot interview from Slashdot picked it up as arranged a few hours later. Time to sit back and watch the confusion!

Actually, for me, the funny part wasn't the joke itself. The funny part was that setting up the whole joke was the biggest collaboration between Perl and Python we've seen for a long time!

So, what am I going to do next year? It's hard to tell. I don't think it's going to be as big or as successful as Parrot. But we'll see. Maybe if I start planning now....

Simon Cozens