Perl
From Linux & Open Source @ NUS
Perl is a multiparadigm dynamic programming language used to write everything from system scripts to large websites to computer games. Advocates chant the Perl mantra - "there's more than one way to do it!" (TMTOWTDI to the initiated) - while critics complain about there being too many ways to do a single task, and point towards something more straightforward. Perl's biggest strengths are its incredible flexibility, powerful and expressive syntax, fantastically well-tested interpreter and toolset, and the 15,000 modules available through the CPAN.
- Perl 5 was first released in 1994, and - now in its tenth major release - continues to be widely used, though not as much as at its height in the late 1990s. Many programmers of CGI-based websites have switched over to PHP for its simpler deployment, application developers and script writers to Python for its simpler, more straightforward syntax, and lovers of multiparadigm languages to Ruby which, many argue, provides enough Perlish effiency and TMTOWTDIness to make it easy to use, enough Pythonesque object-oriented strictness to make creating large object hierarchies easy, and enough features "borrowed" from other languages (a very Perlish habit!) to bring incredible expressive power to its syntax. Perl 5, the oldest of this generation of dynamic languages (though not by much), has many of Ruby's and Python's features, and IMHO the much more expressive syntax. The Perl 5 interpreter is also a marvel of engineering, having being ported to a large number of platforms, comparing well on speed, memory usage and source code size with other dynamic languages, and over 30,000 tests included in the test suite run during interpreter compilation.
- Perl 6 was long considered to be in DNF-territory when it came to delivery - a long-standing joke held that it would be released "on Christmas day", without clearly specifying which year that would be. That mysterious year draws nearer: "Rakudo" Perl is an implementation of the Perl 6 language in the Parrot virtual machine - itself an ambitious project to provide a common virtual machine for all dynamic programming languages, allowing Ruby, Python and Perl code to communicate with each other freely and easily (much like .Net allows a single project to be written in C#, C++ and Visual Basic). Rakudo Perl is now passing 7,007 specification tests, with large swaths of Perl 6 already implemented. Parrot plans on releasing version 1.0 in March 2009. Both projects are looking for language hackers!
- Learning Perl: Perl is a large, complex and sometimes scary language, but baby Perl is a completely acceptable way of learning to speak it fluently. There are also a number of Perl mailing lists and websites, including the beginners mailing list, a large number of topic-specific mailing lists and especially PerlMonks. You can also ask at the Singapore Perl Mongers, a newly relaunched group of Perl enthusiasts.
TODO: the CPAN, Modern Perl, put up a copy of XKCD #208.
