Perl programming language marks 25th birthday
Munging data since 1987
Perl, the open source programming language used by developers and sysadmins to automate any number of text-wrangling and data-management tasks, celebrates its 25th birthday on Tuesday.
It was on December 18, 1987 that Larry Wall released Perl 1.0, posting the source code to the Usenet newsgroup comp.sources.misc.
Wall had begun developing the language while working as a programmer at Unisys, and had initially intended it to be a Unix scripting language in the vein of
awk. The language grew quickly, however, steadily adding new features in subsequent releases over the next few years.
By the time Perl 5 shipped in 1994, it had developed into a full-fledged general programming tool with support for modern language features including objects, references, modules, and rich native support for regular expressions.
Around the same time, web developers began adopting Perl as the go-to language for coding CGI scripts, an early method of developing web applications. The fact that Perl is an interpreted language made scripts quick to write and easy to debug, and its strong text-processing capabilities made it ideally suited for outputting complex HTML.
Perl has fallen out of favor for web development somewhat in recent years, its role having in large part been subsumed by more recent upstarts such as PHP, Python, and Ruby.
Critics often take a negative view of Perl's somewhat idiosyncratic syntax, which can make Perl programs difficult to maintain (even, sometimes, for the original developer, if much time has passed). As such, Perl has occasionally been described as a "write-only language".
Fans of the language deny the charges, however, arguing that Perl's flexible syntax and its overarching philosophy – "there's more than one way to do it" – are actually two of its greatest strengths.
And if web developers have shunned Perl of late, it still enjoys a healthy and loyal following among systems administrators, scientists, database admins, and anyone else who appreciates what Wall describes as "the three great virtues of a programmer": laziness, impatience, and hubris.
These days, Perl is available on almost every OS platform imaginable, ranging from Windows and OS X to Unix systems and IBM mainframes. For a while, Nokia even maintained a version of the language for System 60 smartphones.
Eighteen years after Perl 5 was released, it still remains the most popular version of the language, with the current stable version of that branch numbered 5.16.
Separately, however, a portion of the Perl community has moved on to Perl 6, a troubled rewrite that intentionally breaks compatibility with earlier versions. Despite good intentions and lofty goals, Perl 6 has remained in "active development" for over a decade, yet is still considered "not production ready".
In fact, when Perl 6 developers are asked when it will be released, the customary response has always been "Christmas" – though no one ever specifies which year. That jokey response is typical of the laid-back attitude of the Perl community, though, and Larry Wall clearly wouldn't have it any other way.
Wall continues to oversee Perl development as the language's official Benevolent Dictator for Life, and plans to do so through the development of Perl 6 and beyond, having said in a 2008 interview, "My vision of Perl's future is that I hope I don't recognize it in 20 years." ®
With Yoda strapped to his back, Luke climbs up one of the
many thick vines that grow in the swamp until he reaches the
Dagobah statistics lab. Panting heavily, he continues his
exercises--grepping, installing new packages, logging in as
root, and writing replacements for two-year-old shell scripts
YODA: Code! Yes. A programmer's strength flows from code maintainability.
But beware of Perl. Terse syntax... more than one way to do it...
default variables. The dark side of code maintainability are they.
Easily they flow, quick to join you when code you write. If once
you start down the dark path, forever will it dominate your destiny,
consume you it will.
LUKE: Is Perl better than Python?
YODA: No... no... no. Quicker, easier, more seductive.
LUKE: But how will I know why Python is better than Perl?
YODA: You will know. When your code you try to read six months from
The internet's Cobol?
I started using Perl in the late 90's and still continue to do so, today - though our relationship is by no means exclusive (yes, I do compile other languages). There are better languages for a lot of the stuff I use it for, but no other single language that can do ALL the stuff I do in Perl, with the ease (through familiarity) and third-party additions I can simply install.
Perls greatest benefit is CPAN. If any language wants an example of how to make libraries integrate with little effort for the user and less fuss they should sit back and watch as Perl modules automatically download, work out their dependencies, download them without further help, build the whole mess, test it's installed properly and then let you get on with your job..
The code may look ugly, it may not have a de-facto IDE, it may be interpreted, you do need to use semi-colons all over the place. But it's well documented, there are plenty of examples (mostly working!) and it's easy to get started. Here's looking forward to another 25 years.
Just because Perl allows people to write unmaintenable code doesn't make it an unavoidable "feature" of the language. Anyone with enough discipline to be called a half-decent programmer can and will write perfectly maintainable Perl code.
As much as craftsmen like to accuse their tools, in the end it's always their fault for not using a tool properly.