Perl turned 25 a few days ago. What makes that a remarkable achievement is that the language remains cutting edge, pervasive, and useful in the present day. While there are many detractors to the language and its philosophy[1] that I’ve encountered in my experiences as a programmer, I continue to like the language and perhaps one day I will even find a way for someone to pay me to use Perl.
My interest in Perl started with a college friend, Chris Nandor aka pudge. There was a small web development forum in our on campus BBS where people could post questions and answers. I always admired the facility with which problems could be solved in Perl. I don’t remember all the details (I think I used Fermats Little Theorem) but after being proud of myself for solving a Google job application puzzle on a billboard he decimated the problem in a few lines of Perl[2]. Chris worked on Slashdot and did a lot of other cool things with Perl, things like voting for Nomar Garciaparra 14,000 times in balloting for the “all star” game[3,4]. Things like that made me think: what if I could figure out a way to use that language for my own devices?
I started with the O'Reilly Perl Books and enjoyed the wry humor with which they were written. It soon became apparent to me that unlike the faceless drone corporate developers writing code in Visual Basic with variable names like intCounter, the Perl community was an agglomeration of really smart, lateral thinkers with senses of humor to match the inventor of the language, Larry Wall.
Although I did work on a few things both for myself and for others, I never quite graduated to a big project or the Perl community unless you count mailing lists and listening to virtually every episode of the Perlcast. I never made it to YAPC or OSCON although it’s still a goal of mine to get to one someday. But my efforts with Perl really did pay off; as a part of learning the language I was forced to become proficient with Regular Expressions and my efforts in doing that led to nregex.com, my .NET Regular Expression testing tool.
I am biased but I think .NET developers should care about Perl for two reasons: the first is because it’s impossible to learn Perl without getting better at Regular Expressions, which is a portable skill. The second reason is CPAN, the Comprehensive Perl Archive Network (online network of libraries). There are thousands of modules in CPAN that deal with a lot of the muck that you run into as a developer if you’re dealing with “real world” problems that are boring but not really commercially viable for a big company to be interested in.
This is a long and belated birthday card, but what more can you expect from a fan boy? On my bucket list: one day port an interesting module[5] from CPAN to .NET.
[1] TMTOWTDI (there’s more than one way to do it) vs there should be only one way to do things (Zen of Python)
[2] http://google-tale.blogspot.com/2008/07/google-billboard-puzzle.html – the trick was to just iterate through digits of e in blocks of 10 making http requests.
[3] Archived story at http://static.espn.go.com/mlb/s/2001/0624/1218244.html. This may not seem like a big deal since today’s Microsoft ecosystem has equivalents of LWP::Simple but remember the Perl community has had that for many years.
[4] Okay, some things that are more substantive like running use.perl.org but this is one of the fun ones I remember since I worked with some avid baseball fans at the time
[5] Such as Twig ( http://search.cpan.org/~mirod/XML-Twig-3.42/Twig.pm ) though I'm open to suggestions