Regrettably, Perl's many and significant contributions to the field of development methodologies have been largely overlooked by mainstream commentators. In particular, two brilliant and innovative methodologies invented by the Perl community are rarely cited in the methodology literature. Still more disturbingly, a recent survey of the forty two leading American universities showed that not a single one studies either of Perl's two breakthrough methodologies as part of their undergraduate curricula.
The methodologies in question, well-known to most Perl developers, are:
- TDD (Tolkien Driven Development). Anyone who has browsed the Perl C sources is well aware of the boost to programmer productivity and morale gained by beginning each source file with a carefully chosen and inspirational Tolkien quote.
- ADD (April-fools Driven Development). The simple and elegant notion behind ADD is to take an April Fools' hoax and turn it into reality. Both Parrot (April Fools Parrot) and Pugs (April Fools Haskerl) are fine examples of this groundbreaking methodology.
This, the sixth episode of the series you thought had finished, analyses the many April Fools Jokes that have been played on the Perl community over the years.
Black Perl (Larry Wall, 1990)
It has come to my attention that there is a crying need for a place for people to express both their emotional and technical natures simultaneously. Several people have sent me some items which don't fit into any newsgroup. Perhaps it's because I recently posted to both comp.lang.perl and to rec.arts.poems, but people seem to be writing poems in Perl, and they're asking me where they should post them.
-- Larry Wall requests the formation of a new comp.lang.perl.poems newsgroup
In March 1990, as evidenced by this historic rec.arts.poems sharon-esque poem and larry-esque response, Larry Wall was being interrupted by poetry readings from the next cubicle by his JPL workmate (and talented poet) Sharon Hopkins. It seems this light-hearted exchange provoked Larry into perpetrating what I believe is the first April Fools joke in Perl history, a request to form a new comp.lang.perl.poems newsgroup.
Haskerl (Will Partain, 1993)
For the disaffected Haskell programmer, we provide: regular expressions, at-your-fingertips access to UNIX features, and shorthand-laden figure-out-what-I-mean (FWIM) syntax. For the disaffected Perl programmer, we provide: lazy evaluation, referential transparency, Hindley-Milner type checking, polymorphism, a rich set of builtin data types, and (recursive) user-defined data types. We achieve this, essentially, by adding Perl-like features to Haskell.
-- Will Partain announces the new Haskerl programming language on comp.lang.functional, April 1 1993
... by the time you get done, everyone will be using Perl 5, which interprets any string within square brackets (apart from array subscripts, of course), in any of several languages, depending on the setting of the new $} magical variable. Embedded languages supported in the current prototype include Haskell, TCL, Python, Dylan, Elisp, Teco and Rexx. Support for Visual Basic is not anticipated.
-- Larry Wall's response
That this was a very clever and carefully prepared April Fools joke is evidenced by David Goblirsch being fooled into responding:
Can anyone give me an example---or a reference to an example---which shows that functional languages are "bad at I/O"? And why is Haskell perceived to be inadequate for "get-the-job-done" tasks?
Naturally, David Wakeling was delighted to clarify:
Yes, Certainly. Here at York we have a small electrical hoist in one of the Departmental stairwells which is used for lifting expensive and delicate equipment onto the upper floor of the building. As part of an experiment in real time functional programming, I wrote a Haskell program to control this hoist. It proved to be a tricky exercise: the hoist is controlled by a number of registers, and reading and writing these registers in the correct order with the correct values proved to be a royal pain. Indeed, the experiment had to be stopped after the accidental destruction of a 386-box, 16 wine glasses and a large rubber plant during a UFC visit.
Audrey Tang turned this joke into reality by initiating the Pugs project.
Parrot (Simon Cozens, 2001)
Today brought the official announcement that many of us in the Perl and Python communities had been awaiting and expecting for some time now: the culmination of the year-long collaboration between Larry Wall and Guido van Rossum, and the establishment of a period of joint development between the developers of Perl and Python.
-- Simon Cozens announces Parrot, April 1, 2001
This is probably the most celebrated April Fools joke in Perl history, brilliantly planned and executed by Simon Cozens. This joke became reality soon after when Simon launched the Parrot project.
I was especially tickled by this Parrot code sample:
# copy stdin to stdout, except for lines starting with # while left_angle_right_angle: if dollar_underscore[0] =eq= "#": continue_next; } print dollar_underscore; }
April Fools Patches to P5P
There is a long tradition of April fools patches to P5P as indicated by MJD's 1999-2002 p5p April Fools page. If you know of other classic P5P April Fools patches, please let us know.
April Fools Day at Perl Monks
The primary one I remember is from 2004 when I logged in to Perl Monks to be greeted by a bizarre photo on my home node and being told that, ack, I'd lost 15 experience points. I've super-searched for April Fools nodes as shown below. If you know of more, please let us know.
- The ethics of humour
- Nice April Fools Joke
- Is this an April fool's joke?
- Experience points counter issue?
- xp nodelet behaves strange (update: this is a classic cited here when kcott got pranked by jdporter)
- What? No April fools?
- My April Fools Prank is
- Monkmap Considered Harmful
- http://www.cpan.org
- No More Votes
- new XML module
- The new Perl Review is out
- Perlmonks - last site standing?? (update: I love this apology :-)
- CJAN
- Perl 6
- My April Fools Prank is
- (tye)Re: New time-related function for Perl
- Problem with XP?
- Catalyst project stopped
- Bugs Manifesto
- My favorite hoax was:
Perl April Fools Timeline
- 1990: Black Perl (Larry Wall).
- 1993: Haskerl (Will Partain).
- 1995: Pre cursor to merlyn's sh2perl (Michael Roby).
- 1997: Perl 6 released (John Macdonald).
- 1998: sh2perl (merlyn).
- 1999: sh2perl Y2K update (merlyn).
- 1999: Semi::Semicolons (schwern, ziggy, the lovely David Adler esq.).
- 1999: Java Mongers (brian_d_foy).
- 2001: use.perl.org Parrot April Fools 2001 (Simon Cozens). The Story behind the Parrot prank. Parrot on slashdot.
- 2001: Acme::Bleach (TheDamian), Acme::Buffy (Leon "acme" Brocard).
- 2001: clpm: where can I get a free perl interpreter? (Michael Farragher).
- 2002: CJAN (HFB). wiki.java.net CJAN, use.perl.org CJAN, CJAN blog, cjan to be replaced by JJAR?, CJAN on java newsgroup, CJAN Nigeria, CJAN blog, CJAN, CJAN for Java.
- 2003: Matt Wright buys out CPAN (Jasvir Nagra).
- 2006: "Larry" replaces $ with euro for Perl 6 (spoofed to appear to be from Larry Wall).
Other April Fools References
- April Fools RFCs
- wikipedia April 1
- wikipedia April Fool's Day
- Top 100 April Fools Jokes
- Whitespace programming language
- Whitespace (programming language)
- Syntactically Significant Whitespace Considered Harmful
- MJD Perl page (search for April on this page)
Earlier Articles in This Series
- The Lighter Side of Perl Culture (Part I): Introduction
- The Lighter Side of Perl Culture (Part II): JAPH
- The Lighter Side of Perl Culture (Part III): Obfu
- The Lighter Side of Perl Culture (Part IV): Golf
- The Lighter Side of Perl Culture (Part V): Poetry
Updated References: added The ethics of humour, added Y2K sh2perl announcement, added 2006 "Larry" replaces $ with euro, added 2006 april fools PM nodes.
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: The Lighter Side of Perl Culture (Part VI)
by theorbtwo (Prior) on Apr 01, 2006 at 16:36 UTC | |
Re: The Lighter Side of Perl Culture (Part VI)
by zshzn (Hermit) on Apr 01, 2006 at 21:51 UTC | |
by theorbtwo (Prior) on Apr 02, 2006 at 13:24 UTC | |
Re: The Lighter Side of Perl Culture (Part VI)
by diotalevi (Canon) on Apr 01, 2006 at 17:53 UTC | |
Re: The Lighter Side of Perl Culture (Part VI)
by stefp (Vicar) on Apr 07, 2006 at 00:13 UTC | |
Re: The Lighter Side of Perl Culture (Part VI)
by nothingmuch (Priest) on Apr 05, 2006 at 07:11 UTC |