[Python-Dev] FW: [humorix] Unobfuscated Perl Code Contest

Mark Hammond MarkH@ActiveState.com
Thu, 21 Sep 2000 10:37:31 +1100

And now for something completely different ;-)
Unobfuscated Perl Code Contest
September 16, 19100

The Perl Gazette has announced the winners in the First
Annual _Un_obfuscated Perl Code Contest.  First place went
to Edwin Fuller, who submitted this unobfuscated program:

print "Hello world!\n";

"This was definitely a challenging contest," said an
ecstatic Edwin Fuller. "I've never written a Perl program
before that didn't have hundreds of qw( $ @ % & * | ? / \ !
# ~ ) symbols.  I really had to summon all of my
programming skills to produce an unobfuscated program."

The judges in the contest learned that many programmers
don't understand the meaning of 'unobfuscated perl'.  For
instance, one participant sent in this 'Hello world!'

open OUT, ">$x.c";
print OUT <<HERE_DOC;
#include <stdio.h>
int main(void) { 
 FILE *f=fopen("$x.sh", "w");
 fprintf(f,"echo Hello world!\\n");
 system("chmod +x $x.sh");
 system("./$x.sh"); return 0; 
close OUT;
system("gcc $x.c -o $x && ./$x");

"As an experienced Perl monger," said one of the judges, "I
can instantly tell that this program spits out C source
code that spits out a shell script to print 'Hello
world!'.  But this code certainly does not qualify as
unobfuscated Perl -- I mean, most of it isn't even written
in Perl!"

He added, "Out of all of the entries, only two were
actually unobfuscated perl.  Everything else looked like
line noise -- or worse."

The second place winner, Mrs. Sea Pearl, submitted the
following code:

use strict;
# Do nothing, successfully

"I think everybody missed the entire point of this
contest," ranted one judge.  "Participants were supposed to
produce code that could actually be understood by somebody
other than a ten-year Perl veteran.  Instead, we get an
implementation of a Java Virtual Machine.  And a version of
the Linux kernel ported to Win32 Perl.  Sheesh!"

In response to the news, a rogue group of Perl hackers have
presented a plan to add a "use really_goddamn_strict"
pragma to the language that would enforce readability and
unobfuscation.  With this pragma in force, the Perl
compiler might say:

 Warning: Program contains zero comments.  You've probably
 never seen or used one before; they begin with a #
 symbol.  Please start using them or else a representative
 from the nearest Perl Mongers group will come to your
 house and beat you over the head with a cluestick.

 Warning: Program uses a cute trick at line 125 that might
 make sense in C.  But this isn't C!

 Warning: Code at line 412 indicates that programmer is an
 idiot. Please correct error between chair and monitor.

 Warning: While There's More Than One Way To Do It, your
 method at line 523 is particularly stupid.  Please try

 Warning: Write-only code detected between lines 612 and
 734. While this code is perfectly legal, you won't have
 any clue what it does in two weeks.  I recommend you start

 Warning: Code at line 1,024 is indistinguishable from line
 noise or the output of /dev/random

 Warning: Have you ever properly indented a piece of code
 in your entire life?  Evidently not.

 Warning: I think you can come up with a more descriptive
 variable name than "foo" at line 1,523.

 Warning: Programmer attempting to re-invent the wheel at
 line 2,231. There's a function that does the exact same
 thing on CPAN -- and it actually works.

 Warning: Perl tries to make the easy jobs easy without
 making the hard jobs impossible -- but your code at line
 5,123 is trying to make an easy job impossible.  

 Error: Programmer failed to include required string "All
 hail Larry Wall" within program.  Execution aborted due to
 compilation errors.

Of course, convincing programmers to actually use that
pragma is another matter.  "If somebody actually wanted to
write readable code, why would they use Perl?  Let 'em use
Python!" exclaimed one Usenet regular.  "So this pragma is
a waste of electrons, just like use strict and the -w
command line parameter."

Humorix:      Linux and Open Source(nontm) on a lighter note
Archive:      http://humbolt.nl.linux.org/lists/
Web site:     http://www.i-want-a-website.com/about-linux/

----- End forwarded message -----