The Story Behind the Parrot Prank

"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.

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
www.perl.com;
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.

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 use.perl.org 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 www.perl.com, 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,
oreilly.com'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
use.perl.org, and it also got put up on
www.python.org.
Steve flipped the switch late Saturday night, and the interview appeared
on www.perl.com. Laura Schmier and Scott Hill,
oreilly.com's content editor, arranged to point to the
Programming
Parrot interview from oreilly.com.
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....