In association with heise online

12 January 2009, 11:29

Healthcheck: Perl

The Perl Future

Piers Cawley

If you ask for the languages of the moment, you will hear people talk about Ruby, C#, JavaScript, Erlang, Python or even Haskell. You probably won't hear Perl mentioned.

Perl's current standing is like that of JavaScript a few years ago. JavaScript was perceived as a ghastly, hacky language, which was so awful that one had to hold ones nose to program in it. With the rise of excellent JavaScript frameworks like Jquery, YUI, MooTools and Dojo and the publication of Douglas Crockford's JavaScript: The Good Parts, people are realising that it's actually a really nice language with occasional quirks.

Perl began life as a language for systems administration, probably because its creator Larry Wall was a systems administrator at the time. With the release of Perl 5, the language changed to support more general programming - Larry was working as a general programmer by then. This change of use has left the language with some oddities and a syntax that has been likened to line noise. However, if you look at the good parts (O'Reilly haven't announced "Perl: The Good Parts", but it's a book that's crying out to be written), there's a really nice language in there. Arguably there's at least two. There's the language of the one-liner, the quick throwaway program written to achieve some sysadmin related task, and there's the more 'refined' language you use when you're writing something that is going to end up being maintained.

I think it's this split personality that can put people off the language. They see the line noise of the one liner school of programming, the games of Code Golf (originally called Perl golf, the idea spread), the obfuscated Perl contests, the terrible code that got written by cowboys and people who didn't know any better in the dotcom bubble (you can achieve an surprising amount with terrible Perl code, but you will hit the wall when you try and change it) and they think that's all there is.

But there is another Perl. It's a language that runs The Internet Movie Database, Slashdot, Booking.com, Vox.com, LiveJournal and HiveMinder. It's a language which enables people to write and maintain massive code-bases over years, supporting developers with excellent testing and documentation. It's a language you should be considering for your next project. It's also something of a blue sky research project - at least, that's how some people see Perl 6.

Perl 6

Perl 6 has been a long, long time in coming. Its gestation period makes elephants' pregnancies seem like the blink of an eye. Jon Orwant (co-author of Programming Perl and O'Reilly CTO) threw the coffee mugs that precipitated the Perl 6 effort, during a meeting at the Perl Conference in 2000. In those 8 years, Perl 5 has seen two major releases. Meanwhile, Perl 6 continues to creep closer to its 'Christmas' release.

There are encouraging signs. The Perl Foundation recently received a $200,000 grant from Ian Hague to support Perl 6 development; key projects have well defined roadmaps and have been hitting their targets; and Patrick Michaud, who leads the development of Rakudo (Perl 6 on the Parrot virtual machine), has said that it is starting to 'feel like Perl' (and rakudo has been able to run a growing subset of Perl 6 for a long time).

I think we're unlikely to see a full Perl 6 before Christmas 2009, but there's a history of announcing interesting developments at the Open Source Conference.

If you consider yourself to be, in the words of one core Parrot hacker I spoke to, "a language dilettante and you like saying 'How much code didn't I have to write to solve that problem?'" then the next couple of months should be very interesting.

Probably Perl 6's biggest impact so far is the effect it's had on the Perl 5 ecosystem, as ideas trickle down into Perl 5 implementations and CPAN libraries. If you've used Perl 5 before, but it's been a while, then 2009 will be a good year to take another look.

Next: Perl 5, Version 10

Print Version | Permalink: http://h-online.com/-746527
  • Twitter
  • Facebook
  • submit to slashdot
  • StumbleUpon
  • submit to reddit
 


  • July's Community Calendar





The H Open

The H Security

The H Developer

The H Internet Toolkit