Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much
 
PerlMonks  

The Lighter Side of Perl Culture (Part VI): April Fools

by eyepopslikeamosquito (Archbishop)
on Apr 01, 2006 at 08:20 UTC ( [id://540609]=perlmeditation: print w/replies, xml ) Need Help??

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.

Perl April Fools Timeline

Other April Fools References

Earlier Articles in This Series

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
    Could this be it, the meta-April Fool's joke? Have you bested us all?

    Would I be safe in guessing that Part VII will be about TDD? It made an unfortunately quick exit here.

      Test-Driven Development doesn't really qualify as "the lighter side", though an article on -Ofun wouldn't go much amis.

Re: The Lighter Side of Perl Culture (Part VI)
by diotalevi (Canon) on Apr 01, 2006 at 17:53 UTC

    Pugs happened in February, not April.

    ⠤⠤ ⠙⠊⠕⠞⠁⠇⠑⠧⠊

Re: The Lighter Side of Perl Culture (Part VI)
by nothingmuch (Priest) on Apr 05, 2006 at 07:11 UTC
    The larry/euro thing was spoofed...
    -nuffin
    zz zZ Z Z #!perl
Re: The Lighter Side of Perl Culture (Part VI)
by stefp (Vicar) on Apr 07, 2006 at 00:13 UTC
    In the present April edition of the French Gnu Linux Magazine, I announced that Sun Microsystems was about to launch a Perl6 processor named mehari and gave a quick presentation of its features

    Two months after the paper edition, our articles go inline. So the article is mentionned here, but no link yet.

      Perles de Mongueurs 22, par Stéphane Payrard
      Paru dans Linux Magazine 82, avril 2006.
      * Les nouvelles de la communauté Perl d'avril - Méhari : un miniPerl6 sur une puce.

    I thought that a previous "Perl in a processor" had been done before, but I can't find it.

    -- stefp

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlmeditation [id://540609]
Approved by wfsp
Front-paged by grinder
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (5)
As of 2024-03-19 02:51 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found