Come Back, Zinc!

by chromatic

In a recent post to the Perl 5 Porters mailing list, Yves Orton argued that it's time to debunk the myth that Perl 5 is dying.


Andrew Burton
2006-06-16 19:59:01
If the Perl community wants people to sit up and notice Perl again, they really need to pour more effort into promoting mod_perl. Perl got its start, it's biggest thrust, when every webhost worth their salt gave you access to Perl in the CGI-BIN. Then PHP came along, and, hey, wow, it was faster on web pages than Perl. PHP's in-born speed and scalability on the web, like Perl's original gifts to the 'net, are what's made it so popular.

Look at Ruby. It's not the Smalltalk, Object-Oriented roots that's made it so popular in the last couple of years. It was Ruby on Rails that made it such a big hit. This is, my guess, why Python has never been that big -- it's a great language, but neither Jope nor TurboGears caught web developers' attention like Perl's CGI module, PHP, and RoR.

So, if the Perl Community wants Perl to regain some lost ground, they need to push mod_perl. Developers need to spit on and decry the CGI module. They need to make mod_perl easier to install with Apache (and maybe even IIS). mod_perl brings the speed of PHP back to Perl's table; it also gives people access to things like WebnGUI.

Perl 5's not dead, and it never will be dead. However, I venture to say that the reason Perl has lost some of its footing is because it's over-shot its scope. Perl stopped being the web development language and became the can do anything language. Meanwhile, PHP has sat back and absorbed the developers who still love Perl, need the speed that PHP provides, and don't have a week to figure out how to get mod_perl installed.

Speaking as that kind of developer, that's my opinion anyway.

Andrew Langmead
2006-06-20 08:19:37
I think I have to disagree with Andrew Burton. To me, Perl was the "do anything" language long before the world wide web existed. It was the language for the problem, as Larry described it, that was "too big for the shell and too trivial to code in C".

My suspicion is that the reason that it became the web development language of the early years of the world wide web was that developers and sysadmins got asked to, in addition to their current tasks, whip up some quick web interface for something or other. The developers early web applications so these web apps as a distraction from their real job. As the web became the application development platform, the variety of development options proliferated.

Andrew Burton
2006-06-21 21:33:10
I don't mean to say that Perl isn't still a "do anything" language. I'm just saying that the languages that seem to get more press, PHP and Ruby to name a pair, are getting that because of the web. JavaScript as well is getting a lot of press because of AJAX. Perl can and will continue to "do anything," I'm just suggesting one way to get it more attention in the current, Web2.0-happy proto-bubble.
2006-06-22 12:30:58
Andrew, I don't think you're wrong. mod_perl requires a fair bit of customization and assumes full control over the web server. It's certainly not as easy as plopping down a single file in the cgi-bin/ directory, as using Perl in CGI mode, or as using mod_php.

(You can make the argument that most sites don't need high-powered in-process acceleration because they don't even serve a page a second at their peak, but the Java fetish for "scalability" has poisoned the well.)

It seems to me that part of the appeal of PHP is its simplicity. Some people might legitimately call that oversimplicity, but simple and effective defaults -- especially in deployment and the commmon introductory tasks -- are very useful. mod_perl really doesn't offer either.

I'm not sure how to characterize Ruby on Rails, except that Ruby has better metaprogramming than Java, and, with that, the Rails defaults are sufficiently better that smart and tired Java programmers are willing to suffer through more installation and deployment woes to do the same thing with much less effort. (To be fair, it would be difficult for Rails to approach the difficulty of deploying your average EJB application. Ouch.)

Tom Legrady
2006-07-20 07:50:39

Yes, the web has been important in driving use of Perl, but it's not the only application for the language.

Anywhere that does a lot of text manipulation, you are likely to find Per. For example, it is used in a number of dictionary projects. Perl is important in biology for manipulating gene information. Stock brokers and other financial industry companies use it to convert incoming data to canonical formats.

Piers Cawley
2006-08-10 02:41:18
I confess that I've not been looking at what's coming up in 5.10 while I've been doing the Ruby thing, but I will say that there are a couple of things that keep me using ruby, whilst wishing that Perl 6 were here because it addresses those issues, and Perl 5 doesn't.

Firstly, I am sick to the back teeth of unrolling @_ every time I write a method. Yes, I know it's trivial really, but my $self = shift; at the beginning of a one or two line method is visual cruft that I can do without, frankly. I'll live with 'end' so long as I get named parameters and an implicit self.

Second, Ruby's metaprogramming and capabilities for runtime manipulation aren't significantly more capable than Perl 5's. The trouble is, much Perl 5 metaprogramming is, frankly, deep voodoo, fenced about with corner cases and scary bits made scarier and, um, cornerier by the fact that there's more ways to represent an object than you can shake a stick at. Admittedly, recent advances in the Devel::* and B::* family of modules are making things easier, but it's still borderline impossible to write (say) an object-relational mapper that will work with types of objects (not that it's been done in Ruby either, but experiments I did before Ruby on Rails came along and occupied most of my time led me to think that it is, at least possible to do it, and to do it reasonably cleanly)

Hmm... I may have to go and turn this into a full blog post.

2006-08-10 14:59:36
Piers, your experiences match mine.

I do some Ruby programming, but I stick with Perl for almost everything for a handful of reasons. First, Perl has documentation, not just through perldoc but online and available almost everywhere. Digging through ruby-talk or the source code or trying to extract some gem of wisdom from a weblog posting cached somewhere just doesn't work for me.

Second, trying to get Ruby to do what I want in some cases (even compiling a simple extension on someone else's Mac OS X machine) is an exercise in pain and undebuggability.

Third, I miss the strict pragma and the nice testing tools and all sorts of other useful modules and features.

I can live with a few syntax issues and other problems I personally know how to work around in Perl -- I have a lot of experience with it. I know that's not an answer for everyone else with less experience (or even the answer for everyone with as much Perl experience as you have), but it's interesting to consider what is and is not important for various projects.

2007-03-24 10:54:18
Just let Perl die. Seriously. It doesn't have anything that all the other better designed languages don't. People working in Perl are just wasted resources that could be helping push technology forward. It's a real shame.
2007-04-29 21:46:02
Perl5 and modperl are in many ways still the fastest way to prototype an application; be it client-side or web-based. Those who have not tried it yet will find it difficult to understand. One of Perl's (many) strengths is the ease in which it connects to the innards of the OS, as well as third-party applications. Arguably, you have to jump some hoops in Java to access Office, and nobody will really recommend .Net on Linux/ BSD platforms.

For me, I look forward to a more complete threading support, which
many languages like Python, C#, and Java already do very well. It's probably a big mess to untangle from the core libraries, but if it CAN be untangled, it will make many of us a fair bit happier.