perlmeditation
eyepopslikeamosquito
<P>
28th March 1990: You are sitting at your workstation inside
the most advanced aerospace agency on Earth.
Concentrating, intensely concentrating, busy designing
the most advanced postmodern programming language on Earth.
But wait, what's that noise? A poetry reading?
In the next cubicle? You must be joking!
No ... clear as a bell, you hear:
</P>
<P>
<blockquote>
<i>
I'd travel to the ends of time<br>
For you, my one, my only love.<br>
I'd force the sun to leave its track<br>
(If you were lost) to fetch you back.<br>
I'd suck the juices from a lime,<br>
I'd re-write Moby Dick in rhyme,<br>
I'd happily commit a crime,<br>
For you my dearest darling dove.<br>
I'd do it all, and more beside;<br>
Now *would* you take the trash outside?<br>
</i>
</blockquote>
</P>
<P>
Startled, and startling your co-workers, you shout your defiant
response through cupped hands over the cubicle wall:
</P>
<P>
<blockquote>
<I>
I've taken the trash out innumerable times,<br>
I've taken the trash out in inclement climes,<br>
I've taken the trash out 'cuz that's what I do,<br>
But I won't take the trash out when you tell me to.<br>
</I>
</blockquote>
</P>
<P>
Though I doubt it happened exactly like that,
just three days after this historic <CODE>rec.arts.poems</CODE>
<a href="http://groups-beta.google.com/group/rec.arts.poems/browse_thread/thread/c355ff7f5c2852b6/8e0d83e41a7d7b1a?q=author:sharon+author:hopkins&rnum=1&hl=en#8e0d83e41a7d7b1a">sharon-larry-esque exchange</a>,
in what formed the most
celebrated April Fools joke in Perl history,
a bizarre request to
<a href="http://groups-beta.google.com/group/news.groups/browse_thread/thread/a923be434af183f1/c3acca124e67b446?q=author:larry+author:wall&rnum=1&hl=en#c3acca124e67b446">create a new comp.lang.perl.poems newsgroup</a>
appeared, supposedly sent by Larry Wall and doubtless egged on from the next cubicle.
</P>
<P>
There is little doubt that the whole Perl poetry movement sparked from
this single chance event. Had Larry and gifted poet Sharon Hopkins
not been working together at JPL would Perl poetry exist today?
</P>
<P>
<blockquote>
<P>
<I>
I know it's weird, but it does make it easier to write poetry in perl. :-)
</I>
</P>
<P align="right">
<small>
-- Larry Wall "explains" why <CODE>sort X</CODE> is syntactically valid on
<a href="http://groups-beta.google.com/group/comp.lang.perl/browse_thread/thread/9aba10170b094242/5b26830b9e52189e?q=group:comp.lang.perl+insubject:sort+insubject:X+insubject:give+insubject:an+insubject:error+author:larry+author:wall&rnum=1&hl=en#5b26830b9e52189e">comp.lang.perl 21 April 1990</a>
</small>
</P>
<P>
<I>
But also barewords were added so that Sharon could write better poetry.
Hence, it is also called "poetry mode" in some of my earlier writings.
</I>
</P>
<P align="right">
<small>
-- oldbie [merlyn] answers a
<a href="http://www.nntp.perl.org/group/perl.packrats/17">packrats mailing list question</a>
</small>
</P>
</blockquote>
</P>
<P>
The quotes above reaffirm Perl as the premier computer language
for writing poetry -- and indeed
perhaps the only computer language in history where the ability
to compose poems actually affected its design.
</P>
<P>
This, the fifth episode of the long running
series on the lighter side of Perl culture, focuses on
[id://1590] 🦪📜🪶
</P>
<readmore>
<P><B>Why is Perl a Good Language for Writing Poetry?</B></P>
<P>
<blockquote>
<P>
<I>
Look at the use of parentheses in Lisp or the use of white space
as syntax in Python. Or the mandatory use of objects in many
languages, including Java. All of these are ways of taking
freedom away from the end user 'for their own good'.
They're just versions of Orwell's Newspeak, in which
it's impossible to think bad thoughts.
</I>
</P>
<P align="right">
<small>
-- Larry Wall in
<a href="http://www.linuxjournal.com/article/3394">Larry Wall, the Guru of Perl (linuxjournal article)</a>
</small>
</P>
<P>
<I>
Some language designers hope to enforce style through various typographical means
such as forcing (more or less) one statement per line. This is all very well for
poetry, but I don't think I want to force everyone to write poetry in Perl.
</I>
</P>
<P align="right">
<small>
-- Larry Wall in
<a href="http://www.wall.org/~larry/natural.html">Natural Language Principles in Perl</a>
</small>
</P>
<P>
<I>
No, really, I don't want an identification division.
The problem with identification division is it really puts a crimp
in Perl's poetry, or in Cobalt poetry. How many poems can you
start off identification division? One.
</I>
</P>
<P align="right">
<small>
-- Larry Wall in
<a href="http://www.perl.com/pub/a/2000/10/23/soto2000.html">State of the Onion 2000</a>
</small>
</P>
<P>
<I>
The Perl programming language has proved to be well suited to the creation
of poetry that not only has meaning in itself, but can also be successfully
executed by a computer.
</I>
</P>
<P align="right">
<small>
-- Sharon Hopkins in
<a href="http://www.theperlreview.com/Issues/The_Perl_Review_0_1.pdf">Camels and Needles</a>
</small>
</P>
</blockquote>
</P>
<P>
The key point from the quotes above is that, in the spirit
of freedom and TMTOWTDI, Perl <I>allows</I> you to write poetry
without forcing you to do so.
</P>
<P>
Perhaps the primary reason why Perl is so well suited to writing
poetry is simply that it was designed, not by a computer scientist like most computer languages,
but by a linguist. Curiously, Larry attended linguistics graduate school
at U.C.Berkeley at around the same time as
<a href="http://www.meta-library.net/bio/joy-body.html">Bill Joy</a>
and his BSD cohorts attended computer science graduate school there.
As far as I'm aware, they did not write any poems together while at Berkeley.
</P>
<P>
Perl's poetry support was further strengthened by the chance
circumstance of an enthusiastic and innovative poet,
namely the reigning Perl poetry pump-queen Sharon Hopkins,
sitting right next to Larry at
<a href="http://en.wikipedia.org/wiki/JPL">JPL</a>
during Perl's formative years. Newsgroup messages suggest
that Larry moved from JPL to netlabs in July 1991, and that Sharon
followed him there about one year later.
</P>
<P><B>What Makes a Good Perl Poem?</B></P>
<P>
There is little difference between a good conventional
poem and a good Perl one; it's just that the Perl poem
must satisfy an additional constraint of compiling
(and optionally running) without error.
</P>
<P>
As you might expect, it is much harder to write a Perl poem
that actually <I>runs</I> without error. So much so that most
Perl poets satisfy themselves with poems that merely pass
<CODE>perl -c</CODE>.
</P>
<P>
For more details on this subject, including examples that poetically produce
text output when run, thus extending the theme developed within the poem's source code, see
<a href="http://www.theperlreview.com/Issues/The_Perl_Review_0_1.pdf">Sharon Hopkins' definitive work: Camels and Needles</a>.
</P>
<P><B>History</B></P>
<P>
In 1962, the French
<a href="http://www.nous.org.uk/oulipo.html">Oulipo</a>
movement proposed the idea of poetry written in programming languages.
As described
<a href="http://www.muthesius.de/~virtual/texts/000004.html">here</a>,
however, it took ten years before anyone actually did it,
the first poems being
penned by Le Lionnais and Noel Arnaud in the Algol
programming language in the early 1970s.
</P>
<P>
Though
<a href="http://history.perl.org/PerlTimeline.html">history.perl.org</a>
credits Larry Wall
with writing the first Perl poem in March 1990:
<CODE>
print STDOUT q
Just another Perl Hacker,
unless $spring
</CODE>
Sharon Hopkins and [merlyn] should perhaps share the glory
(or blame, depending on your point of view :-) -- [merlyn] for inventing
the JAPH, Sharon for suggesting that Larry write a JAPH in the
form of a haiku.
Notice that, when read aloud with canonical Perl poetic pronunciation, namely:
<CODE>
print standard out queue
Just another Perl Hacker,
unless dollar spring
</CODE>
this poem does indeed qualify as a haiku (5-7-5 syllables).
Notice too that this Perl 3 code no longer runs with modern perls.
</P>
<P>
Sharon Hopkins hosted the first
<a href="http://groups-beta.google.com/group/comp.lang.perl/browse_thread/thread/a238b723d0f9b1d2/3357d2f377d04da5?q=group:comp.lang.perl+author:sharon+author:hopkins&rnum=8&hl=en#3357d2f377d04da5">First Perl Poetry Contest</a>
in August 1991.
This contest was
<a href="http://groups-beta.google.com/group/rec.arts.poems/browse_thread/thread/92ac20bd039063b7/d50bb8a85c4abb02?q=group:comp.lang.perl+author:sharon+author:hopkins&rnum=6&hl=en#d50bb8a85c4abb02">won</a>
by Dr. Craig Allen Counterman, Ph.D,
with a rollicking rhyme, "Time to Party".
Alas, the contest could hardly be called a success because this was
the only entry received and, by the author's own admission,
was less inspired than his more scholarly
earlier work "Ode to my Thesis".
Both of Craig's poems can be found in
<a href="http://www.theperlreview.com/Issues/The_Perl_Review_0_1.pdf">Camels and Needles</a>.
</P>
<P>
Numerous Perl poetry contests have been run since then by
Kevin Meltzer of The Perl Journal, by TPC, and by ActiveState.
There was even one run here at Perl Monks: [id://159907].
See the References section below for links.
</P>
<P>
Around 1999, there was an explosion of interest in haiku, sparked
by [TheDamian]'s delightful
<a href="http://search.cpan.org/dist/Coy/">Coy</a> module.
</P>
<P><B>Haiku and Coy</B></P>
<P>
<blockquote>
<P>
<I>
A haiku is a<br>
short poem that's 17<br>
syllables in length.<br>
...<br>
The 5-7-5<br>
art form is widely practiced<br>
on the Internet.<br>
...<br>
Damian Conway<br>
is stuck inside a haiku<br>
and he can't get out!
</I>
</P>
<P align="right">
<small>
-- From
<a href="http://www.foo.be/docs/tpj/issues/vol4_4/tpj0404-0004.html">Damian Conway's 1999 TPJ Coy article</a> (180 verses omitted!)
</small>
</P>
</blockquote>
</P>
<P>
Damian Conway's prize-winning Coy module caused a sensation when it debuted in 1999.
Essentially a drop-in replacement for Carp,
the module itself is quite sophisticated, featuring an extensible
data-driven poem generator.
The <I>entire</I> Coy module documentation is written in haiku; here is the
module description:
<CODE>
Error messages
strewn across my terminal.
A vein starts to throb.
Their reproof adds the
injury of insult to
the shame of failure.
When a program dies
what you need is a moment
of serenity.
The Coy.pm
module brings tranquillity
to your debugging.
The module alters
the behaviour of die and
warn (and croak and carp).
It also provides
transcend and enlighten -- two
Zen alternatives.
Like Carp.pm,
Coy reports errors from the
caller's point-of-view.
But it prefaces
the bad news of failure with
a soothing haiku.
</CODE>
</P>
<P>
As if that were not enough, [TheDamian] went on to write
<a href="http://www.foo.be/docs/tpj/issues/vol4_4/tpj0404-0004.html">a complete TPJ article in 183 haiku verses</a>!
</P>
<P>
At TPC 4 in 2000,
<a href="http://history.perl.org/CHI/">the Haiku Contest</a>
was won by [chipmunk] with
his <CODE>summer.pl</CODE> (that is both a sum-er and a season):
<CODE>
sub summer { my $sum;
$sum += $_ for @_;
$sum } print summer (split);
</CODE>
</P>
<P><B>Some Classic Poems</B></P>
<P>
These come with the usual caveat that there are many Perl poems
I've never seen, so if you know of a good one, please let us know!
</P>
<P>
<ul>
<li><a href="http://groups-beta.google.com/group/news.groups/browse_thread/thread/a923be434af183f1/c3acca124e67b446?q=author:larry+author:wall&rnum=1&hl=en#c3acca124e67b446">Black Perl, 1 April 1990</a>
<li><a href="http://groups-beta.google.com/group/comp.lang.perl/browse_thread/thread/57646a4f5752d898/c79f39974d095dda?q=group:comp.lang.perl+author:sharon+author:hopkins&rnum=5&hl=en#c79f39974d095dda">listen by Sharon Hopkins, 3 March 1991</a>
<li>From <a href="http://www.theperlreview.com/Issues/The_Perl_Review_0_1.pdf">Camels and Needles</a>: "Listen", "Black Perl", "Ode to my Thesis" by Craig Counterman, and many more.
<li><a href="http://runme.org/feature/read/+londonpl/+34/">London.pl by Blake and Harwood</a>
<li><a href="http://babyl.dyndns.org/yaph/poems/">The collected works of `/anick Champoux</a>
<li>[id://85541]
<li>[id://96943]
<li>[id://17878]
<li>[id://29907]
<li>[id://111157]
<li>[id://149759]
<li>[id://453385]
<li>[id://174135]
<li>[id://414330]
<li>[id://308310]
<li>[id://941905]
<li>[id://1103773]
</ul>
</P>
<P><B>References</B></P>
<P>
<ul>
<li><a href="http://groups-beta.google.com/group/rec.arts.poems/browse_thread/thread/c355ff7f5c2852b6/8e0d83e41a7d7b1a?q=author:sharon+author:hopkins&rnum=1&hl=en#8e0d83e41a7d7b1a">sharon-larry-esque exchange on rec.arts.poems 28-March-1990</a>
<li><a href="http://groups-beta.google.com/group/news.groups/browse_thread/thread/a923be434af183f1/c3acca124e67b446?q=author:larry+author:wall&rnum=1&hl=en#c3acca124e67b446">comp.lang.perl 1990 April Fools joke</a>
<li><a href="http://groups-beta.google.com/group/comp.lang.perl/browse_thread/thread/9aba10170b094242/5b26830b9e52189e?q=group:comp.lang.perl+insubject:sort+insubject:X+insubject:give+insubject:an+insubject:error+author:larry+author:wall&rnum=1&hl=en#5b26830b9e52189e">sort X poetic comp.lang.perl 21-April-1990</a>
<li><a href="http://www.nntp.perl.org/group/perl.packrats/17">merlyn answers packrats question 2005</a>
<li><a href="http://history.perl.org/PerlTimeline.html">history.perl.org Perl Timeline</a>
<li><a href="http://www.wall.org/~larry/keynote/keynote.html">Perl Culture</a>
<li><a href="http://www.wall.org/~larry/pm.html">Perl, the first postmodern computer language</a>
<li><a href="http://www.wall.org/~larry/natural.html">Natural Language Principles in Perl</a>
<li><a href="http://www.perl.com/pub/a/2000/10/23/soto2000.html">State of the Onion 2000</a>
<li><a href="http://www.linuxjournal.com/article/3394">Larry Wall, the Guru of Perl (linuxjournal article)</a>
<li><a href="http://search.cpan.org/dist/Coy/">Coy</a>
<li><a href="http://www.foo.be/docs/tpj/issues/vol4_4/tpj0404-0004.html">Winter 1999 TPJ article on Coy</a>
<li><a href="http://www.csse.monash.edu.au/~damian/TPC/1999/Coy/Presentation/">Damian Conway's Coy Presentation</a>
<li><a href="http://groups-beta.google.com/group/comp.lang.perl/browse_thread/thread/a238b723d0f9b1d2/3357d2f377d04da5?q=group:comp.lang.perl+author:sharon+author:hopkins&rnum=8&hl=en#3357d2f377d04da5">First Perl Poetry Contest comp.lang.perl 26 July 1991</a>
<li><a href="http://groups-beta.google.com/group/rec.arts.poems/browse_thread/thread/8a4e19fa70785c1a/9563094b294bd771?q=group:comp.lang.perl+author:sharon+author:hopkins&rnum=3&hl=en#9563094b294bd771">First Perl Poetry Contest (2nd Notice) comp.lang.perl 6 August 1991</a>
<li><a href="http://groups-beta.google.com/group/rec.arts.poems/browse_thread/thread/92ac20bd039063b7/d50bb8a85c4abb02?q=group:comp.lang.perl+author:sharon+author:hopkins&rnum=6&hl=en#d50bb8a85c4abb02">First Perl Poetry Contest: Results comp.lang.perl 27 August 1991</a>
<li><a href="http://use.perl.org/article.pl?sid=04/02/11/2341257">ActiveState Valentine's Day Perl Haiku Competition</a>
<li><a href="http://perl.plover.com/haiku2000.html">MJD's page on TPC 4 Haiku Contest</a>
<li><a href="http://history.perl.org/CHI/">TPC 4 Haiku Contest</a>
<li><a href="http://www.foo.be/docs/tpj/issues/vol4_4/tpj0404-0015.html">TPJ Perl Poetry Contest 1999</a>
<li><a href="http://www.foo.be/docs/tpj/issues/vol5_1/tpj0501-0012.html">TPJ Perl Poetry Contest 2000</a>
<li>[id://159907]
<li>[id://110952]
<li><a href="http://blog.kevinmeltzer.com/archives/cat_poetry_not_mine.html">Kevin's Ramblings</a>
<li><a href="http://groups-beta.google.com/group/rec.arts.poems/browse_thread/thread/202196122e8eabfc/b06a8598cac9165e?q=group:rec.arts.poems+author:larry+author:wall&rnum=7&hl=en#b06a8598cac9165e">im sad a non perl poem by lwall</a>
<li><a href="http://www.nntp.perl.org/group/perl.perl6.language/20127">Larry mentions the four virtues required for reading poetry aloud</a>
<li><a href="http://www.nous.org.uk/oulipo.html">Oulipo</a>
<li><a href="http://www.muthesius.de/~virtual/texts/000004.html">Some history of computer poetry</a>
<li><a href="http://www.generativeart.com/2000/ADEWARD.HTM">The Aesthetics of Generated Code</a>
<li><a href="http://groups-beta.google.com/group/rec.arts.poems?hl=en">rec.arts.poems</a>
<li>[id://170492]
<li>[id://450080]
</ul>
</P>
<P><B>References Added Later</B></P>
<P>
<ul>
<li> <a href="http://innerpablo.blogspot.com.au/2014/09/cobol-poetry.html">Unleashing the inner Pablo</a> (Cobol Poem provoked by Larry's quote above)
<li> <a href="https://sites.google.com/site/johngsworks/home/poetry-in-cobol">Poetry in Cobol</a>
<li> [id://1111395]
</ul>
</P>
<P><B>Other Articles in This Series</B></P>
<P>
<ul>
<li> [id://410774]
<li> [id://412464]
<li> [id://424355]
<li> [id://437032]
<li> [id://540609]
</ul>
</P>
</readmore>