A Brief History of Perl

Perl is older than dirt. Well, actually, that’s not true at all. Perl is older than Linux though. Perl 1.0 was released in 1987, 4 years prior to the release of the first Linux distribution. The creator of Perl, Larry Wall, got a graduate degree in Linguistics from UC Berkeley, and had grand plans to find an unwritten language with his wife Gloria, and invent a writing scheme for it. These plans fell through, to the great advantage of computer science field!

Back in the day, Larry Wall programmed on Unix with the usual suspects, C, sed, awk, shell. He grew frustrated with the options available to him. So he set out to write his own language that took the best from what is avaialble, and left the rest behind. The creation of the first Perl interpreter took the better part of 1987. Wall released the first version on December 17th 1987. Through out the late 80’s and early 90’s Wall released improved versions of Perl untile 1994, when he released Perl 5, that included a complete overhaul on the Perl interpreter. Perl 5 is the version that most current Perl programemrs are accustomed to. It has had several sub-versions released through out the 90’s and the current decade. The current version is 5.10.0.

The Perl community has been eagerly waiting for the next major release of Perl for what feels like forever, but it’s actually only been 9 years. Work on Perl 6 began in 2000. We are still waiting on a proper release of Perl 6. Larry Wall and his team aren’t rushing it. They want to build a worthy successor to Perl 5, and they are taking their time in order to make sure they are doing it right.  Perl 6 has many differences from Perl 5, here is a select few:

  • Optional data typing system – You won’t have specify your types, just as with Perl 5, but in Perl 6, you will have the option to specify your data types
  • Formal subroutine parameter list – The days of ’shift’ and @_ will end in Perl 6, as C/Java style subroutines will be the way in Perl 6
  • Consistency with arrays and hashes – Where in Perl 5 we declare an array as @myarray, and reference an element in an array as $myarray[0], Perl 6 will maintain the @ symbol for both the declaration and the reference. To access and array element in Perl 6 will be done by: @myarray[0]. The same goes for hashes. $myhash{‘item1′} will become %myhash{‘item1′}
  • Formal object-oriented programming – For those of you stickler who say Perl 5 isn’t object-oriented enough, Perl 6 introduces more formalized object orientation with the use of the world ‘Class’ and everything!

Perl 6 will not be back compatible with Perl 5, though there is supposed to be some sort of compatibility mode included.

Perl stands for Practical Extraction and Report Language, though this  acronym was created as an after thought. Larry Wall wanted a short word for the name of the programming language, one that had positive connotations. He settled on Pearl, but laster found out that there was a real-time focused programming language called PEARL, so he changed the spelling, and it has been called Perl ever since.

Posted in Perl/mod_perl. Tagged with , .

2 Responses

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.

  1. I’ve heard that the original name, “Pearl”, came from the Parable of the Pearl. Wikipedia claims this, too, but without a reference.

  2. Although of course Moose provides the OO, signatures.pm and Method::Signatures::Simple the formal parameter lists and MooseX::Lexical::Types a start towards optional typing
    The consistency thing is bullshit anyway – perl sigils are consistent in terms of conjugation ($ is always ‘this’, @ is always ‘these’), perl6 sigils are consistent in terms of data type. Neither more nor less; the perl6 team just decided that being consistent that way was clearer than the way it’s done in perl.
    Personally, I’m not waiting on perl6 at all – it’s been an interesting research project into how to design a perl like language from scratch, and is heavily informing work on perl itself, but I don’t expect it to ever be relevant as a production language.
    That’s not a bad thing though – the state of the art of perl itself has been hugely improved by stealing ideas from the perl6 research work; we even recently borrowed the multi method resolution algorithm from rakudo for MooseX::MultiMethods :)

Some HTML is OK

(required)

(required, but never shared)

or, reply to this post via trackback.