Last month, not long before all the holiday excitement set in, the programming language Perl quietly turned 25. The language has grown and changed a great deal since Larry Wall unveiled version 1. But so has the programming world in general. Is there still a place for this versatile yet infuriating open source creation?
As the Register pointed out, when Wall first posted the source code to the Usenet newsgroup comp.sources.misc on December 18, 1987, he probably never envisioned what it would turn into. At the time, he was working as a programmer at Unisys, and saw it as a Unix scripting language. It quickly became much more, however.
By 1994, the language was up to its fifth version, and supported objects, references, modules, and regular expressions. It became one of the earliest languages used for developing web applications. As an interpreted language, programmers appreciated the speed with which they could write Perl scripts; such scripts were also easy to debug.
This great strength, however, has also been chided as one of Perl's weaknesses. Since there is often more than one way to write something in Perl, code can be tricky to maintain. Has this headache limited its popularity? To judge from the number of platforms on which Perl is available, the answer is “no.” Developers can write Perl code on Windows, OS X, Unix systems, and IBM mainframes; back in 2004, Nokia even released a version of Perl for its Series 60 smartphones so developers could create more apps for the device.
There are other ways in which Perl can confuse the unwary developer. First, there seem to be two branches of it. Perl 5 is up to version 5.16. Perl 6, on the other hand, represents a complete rewrite of the language done in 2000 and still in “active development.” Since it's been in active development for more than a decade, it should be out soon, right? Well...ask anyone working on it, and they'll tell you that it will be ready by “Christmas,” but they won't specify the year. It's kind of an in joke.
Nowadays, though, despite a worldwide following, more programmers seem be using PHP, Python, and Ruby to create applications for the web. Does this mean that Perl will fall into disuse, as other programming languages have over time? That's difficult to say. In a lengthy article, however, Mark Keating, one of Perl's shining lights, does not see the language fading out over the next 25 years. As he points out, “even though there are languages that can do some of the things that Perl does, some them do some things better, others do things Perl wasn't designed for, there is no language that has been designed to do the things that Perl is very good at doing.” He hails Perl's “flexibility, maturity and extensibility” and points out that it has always been able to adapt, and be quickly adapted to suit various purposes. For this reason, it has sometimes been described as a Swiss Army knife with a chainsaw attachment.
The biggest challenge that Perl must face in the future is the increasing ubiquity of mobile devices. How easy is it to develop and maintain mobile applications in Perl? The way in which the Perl community answers this question could determine whether – and how many – developers choose to take up the language for their own projects. In this area, Keating believes that Perl's legendary adaptability will serve it in good stead. “I also believe that the more we see a divergence of language uses in the other scripting languages the more they will face issues in their core designs, issues that Perl avoids due to its malleable nature, what some believe is the crippling factor for Perl is likely to be its saving grace as it has the power and flexibility to cope with the shifting goalposts of an increasingly technologically reliant world,” he wrote.
And what does Larry Wall think the future of Perl, the language he started so many years ago, will look like? The Register hearkened back to a 2008 interview with Perl's creator and quoted him as saying “My vision of Perl's future is that I hope I don't recognize it in 20 years.” With active communities circulating around both Perl 5 and Perl 6, that much at least is almost certain. Here's hoping we'll all be around to see whatever future to which we adapt both Perl, and ourselves.