Perl Overview

Motivation: Perl's Position in the Web Development Spectrum
Credit: Imagenation


IBack in 1987 Larry Wall created Perl as a report writing and text manipulation processing language. It was quickly adopted as a replacement for sed, awk, bilk, and the like by Unix system administrators because it provided a scripting environ with full string, array, and control of flow capabilities they were used to in C or Basic which it resembled.

In the mid 1990's Perl got another spurt of growth as Web developers adopted Perl especially because of its CGI suppoert and its comparative ease of development in a web standalone world. Perl added new regular expression, directory reading, and array improvements in versions 2-4. Perl also thrived it no small part due to the lively open source community and its GNU Public License. By 1994 a new version 5 of Perl involved a complete rewrite of the language adding objects, packages and modules. In addition, the first wave of database routines were developed for connections to Oracle followed by ports of Perl 5 to Mac and Windows.

However, Perl has not been alone in prospering as TCL/TK, Python, PHP, Ruby and XSLT all have captured strong communities as the need develop quickly across platforms while integrating across systems has taxed traditional programming languages. As well language wars, just like the Browser Wars, has seen Microsoft virtually banish Java from their development and support portfolio while virtually recreating a Java-look-alike in their C#. Likewise there has been no agreement on a macro or scripting language among Unix vendors. And database vendors have not been able to agree on a standard stored procedure language though some movement through SQLJ is apparent towards a Java derivative. In the meantime, Perl lurks on the horizon with its standalone, serverside and cross platform capabilities attractive for a broader mission.

But to achieve a broader mission, the development team that carry Perl along decided the language needs to address 4 major sets of problems:
  1)Unicode support presents internal problems;
  2)threading and signaling options have to be enhanced;
  3)likewise for exception handling and syntax;
  4)messaging and asynchronous operations are integrated.
These major concerns have been linked with a public request for changes and the result is the implementationemrging Perl 6 language and its separately developed Parrot interpreter engine. One key design goal is to decouple the language syntax and design from the internal execution engine in a manner similar to Java's Virtual machine and the .NET CLR-Common Language Runtime. So like many new languages, Perl 6 will generate an intermediate language code that can be interpreted and compiled/optimiuzed by the Parrot engine. This allows work on the language design and the interpreter to move in parallel. In sum, Perl 6 has the opportunity to become a major scripting player as no language has yet emnerged as a good cross platform client, server and batch language - with JavaScript, Python and Perl coming closest.

In the meantime, Perl 5 has been invigorated by Perl 6 developments with Unicode, basic threading and bug clean-ups in the 5.7 and 5.8 versions. The next versions, Perl 5.9 and 5.10 will add refined regular expressions, better database and XML internals, and the ability to emulate and/or directly execute some of the new Perl 6 syntax. So Perl appears to be moving in a concerted effort towrds broader appeal and functionality while continuing to develop its base engine and providing for a "smooth upgrade path". the latter is important because Microsoft fumbled that ball in a mjjor way with VisualBasic.NET making the such drastic changes to the language that no translator has yet emerged either from Microsoft or third parties that is able to port VB6 code to VB.NET (and if you have legacy VB3, VB4, or VB5 code that must be ported to VB6 and then partially converted to VB.NET by the Microsoft upgrade utility but then hand converted the rest of the way. Result-VB is dropping in usage while C#, a VB.NET superset language, continues to grow dramatically. So the Perl Pumpkings (lead developers) have to careful to usher Perl carefully through this 5 to 6 transition.


Top of Page  Tutorials Home