Skip to content

Perl is Dead

I’ve been doing web application development for years in several languages. I’ve spent time with PHP, Java, but primarily Perl. I consider myself a “Perl Programmer” first, everything else second. Until recently, most people would equate that to “Dinosaur.” However, there’s been a revival of Perl these days! There are a number of reasons for this.

It all started with the concept of “Inside Out Objects” as a safe, functional object development methodology. From there a number of modules sprouted attempting to do Inside-Out better. Around this time, the Perl 6 Apocalypses were being published and translated in Conway’s Exegeses.  Conway  published “Perl Best Practices” and very soon after, Perl::Critic showed up on the CPAN to enforce the rules laid out in the book.  Perl::Critic became a critical authority on the most maintainable way to write Perl code.  TIMTOWTDI will never die, but clean, maintainable code does outweigh some stranger interpreter abuses.

The modern looking object system for Perl 6 made it debut, and instantly the Army of CPAN began figuring out clever ways to implement fancy object notation in Perl 5. his eventually led to the development of Class::MOP, from which the “post Modern Object System for Perl 5,” Moose, blossomed.

Concurrently, Ruby on Rails had layed waste to the entire scope of PHP Scaffolding systems in existence, building off the Model-View-Controller (MVC) Ideology implemented earlier in Perl 5 through Maypole. As RoR gained traction, Python’s Django framework, through it’s association with the MVC philosophy, began to see serious deployment. This made sense as a lot of large Open Source and Commercial companies were using Python for much of their behind the scenes development. The result left PHP staggering and dizzy in the corner.

Unfortunately, there was a horrible association of PHP to Perl in most people’s heads, which sounded the Death Knell for Perl as well. This wasn’t the case, as Perl, inside it’s mostly impenetrable Echo Chamber had not stagnated at all. Perl 5.8.x was a huge performance and syntactical modernization of Perl 5. This improvement was eclipsed with the release of 5.10, drawing from the Perl 6 Design Documents, and the push of the Echo Chamber for a more Modern Language.

The Army of CPAN was still hard at work in the background throughout all of this. ORM’s drawing on the Success of the MVC philosophy took shape and evolved. Rose::DB, Class::DBI, and the current forerunner DBIx::Class simplified database development through the use of abstraction through modules like SQL::Abstract. Maypole, an simplified, earlier implementation of MVC sparked other MVC efforts in Perl 5, the most popular of which are Catalyst, Jifty, and CGI::Application. Each have their strengths and weaknesses.

All of these modules are beginning to converge to create a beautiful, post modern web application development platform in pure Perl.  Additionally, projects like Strawberry Perl, and Padre are aiming to expand Perl’s reach into realms it’s shied away from: Windows & IDEs.  The future is bright for Perl thanks to efforts of countless volunteers and programmers.

Perl is dead.  Long live Perl.

Share and Enjoy:
  • Reddit
  • Digg
  • del.icio.us
  • Slashdot
  • StumbleUpon
  • Google
  • Ma.gnolia
  • Facebook

{ 1 } Comments

  1. Markus Zeller | May 7, 2009 at 1:05 am | Permalink

    I am using perl for years and never really wanted to change to another “web”-language. Many of peoply are using php, python and ruby in those days.

    Until now, there is no other way for me to have such a quick way doing in things from the scratch with perl.

    Unfortunately, some customers force me to use php, but whenever it’s possible I am using perl.

    I really tried to like php and it has many nice and plenty of functions, but perl is my all time winner.

    My favourite feature of perl is are quoting methods like $text=qq~Mix so many quotation signs as you like and this is still interpolated~. There is no better way of the map-grep-sort-join family imported into a another language.

    PERL, I LOVE YOU FOREVER!