Perl is not going away

| 4 Comments

Sterling Hanenkamp wrote a great response to the now-infamous TIOBE Index article about how Perl is on its way out. This article is the sort of thing I wish I'd done when I was doing PR for The Perl Foundation. Sterling's given me permission to republish it here. Here's a link to the original. -- Andy (Lester)

I've been taking DDJ for a couple years now. It's cheap and occasionally has something interesting in it, but it's been less interesting than I remember it being when I read it in college. I've been much more enamored with the Communciations of the ACM. Today, I received my issue and there's an interview with Paul Jansen of TIOBE Software. In the article, he's quoted saying:

Another language that has had its day is Perl. It was once the standard language for every system administrator and build manager, but now everyone has been waiting on a new major release for more than seven years. That is considered far too long.

Note: This is such a cowardly use of the passive voice. "That is considered far too long"? BY WHO exactly? He's expecting us to swallow his unattributed assertion as if everyone considers seven years "far too long". -- Andy (Lester)

While I am biased, I have to admit that I disagree pretty strongly with Jansen's assessment. First, let me go into the problems with how he came to this conclusion and then explain why I think I'm justified trusting that Perl is in it for the long haul despite my bias that would have me think so anyway.

I want to first evaluate the way Jansen has collected the data he's used to make this statement. TIOBE puts together what they call the TIOBE Index. This is a rating of the popularity of various programming languages. The TIOBE web site claims, "The ratings are based on the number of skilled engineers world-wide, courses and third party vendors." How do they measure this? By performing a search for:

+"<language> programming" 

on 5 popular search engines, including: Google, Google Blogs, MSN, Yahoo!, and YouTube. That's it.

What they are measuring is not actual popularity, but the amount of hype surrounding each one. Not only are they measuring hype, but only hype that discusses "programming". What if everyone prefers to say "programming Perl is fun!" That wouldn't get picked up by the search they use. What about "Perl scripting"? Nope. Missed. (Here I should point out that Andy Lester appears to have been on to something when he gave his lightning talk about Perl programs versus scripts at OSCON last year.) In essence, this is, if they're disclosing the complete metric, incomplete. It's a shortcut that might be 90% right or 50% right. This is just poor statistics.

The second aspect of Jansen's comments I take issue with is the statement that there has not been a major release in seven years. That's not strictly true. Perl 5.10 has just been released and it includes new features like the new smart match operator. Beyond that, there has been some very active development on a closely related project, Parrot, and language development toward a huge milestone, Perl 6. Furthermore, where Perl truly shines is in all the development on CPAN. CPAN is getting large and complex enough now that we're having to rethink how it works just so we can find anything on it. This is a good problem to have.

This comment by Jansen does, however, serve to indicate a certain perception gap caused by the long wait for Perl 6. It's even been considered that the name of Perl 6 is harmful to Perl 5. This has been discussed out by others for some time.

In my opinion, Jansen is on shaky ground with his claims and probably only because he's not well informed by anything but his own metrics. I should think that he'd at least research the trends and issues facing the top 10 languages listed by his survey as to provide some better justification for it's accuracy.

As for the reasons I still have warm and fuzzy feelings toward Perl's future, I can list them off rather easily.

  1. I am participating in a number of growing projects that depend on Perl's future. Jifty and rethinking-cpan are just a couple I'm involved in. I can point you to several other vital projects that I use or am familiar with.
  2. I know of several companies actively pursuing Perl to develop core projects and continuing to train developers. This includes imdb.com, Socialtext, Best Practical, Six Apart, and several others.
  3. Recently, Google launched Google App Engine. This tool provides services to Python developers as part of the initial release. The top most voted for issues are first to add support for Ruby and second to add support for Perl, as of this writing.
  4. There's an average of 50 new and updated modules being posted to CPAN every day. That's not a small number.

I can probably come up with more, but now it's getting late, so I'd better end this thing. If Perl is going to die, it's got some years left before it happens. I think there will be enough activity to keep it going and increasing during those years rather than dying.

4 Comments

This is all especially interesting to me as I started in Perl back in 1993 or 1994...and then over the years I strayed into other languages (mostly due to job requirements or just plain curiosity)...and now I've sort of come full circle and recently dove back into Perl. Since I took so much time off, Perl has really changed and it's really exciting diving back in and seeing everything that Perl is now a 'good choice' for...

Anyway, my thinking is that with languages like Cobol and Pascal still around, there is little chance that a language like Perl is going away for a long long time. Add to that all the 'modern' things that Perl already handles and you have to extend that 'death' even further out.

I would also add that as a language matures more and more (like Perl has)...it should take longer and longer to get to the next version. This is because things are very stable, and the changes that are added tend to be more about paradigm shifts than simple bug fixes...

Also, having most recently done heavy Ruby work (including writing a book on the ActiveRecord library) it's especially interesting to come back to Perl and find that many of the very REASONS that Ruby was created (as a 'next' to Perl) have already been addressed by Perl (ie. if Perl as it is today, existed back in '95 or so, Matz probably wouldn't have even created Ruby)...Rails has of course made Ruby a huge hit lately brining in a lot of newbies...and I think it's only going to be a matter of time before those new Ruby fans start to look for additional languages...I think Perl will really strike a cord with many of them (a lot of the Ruby they know will transfer making it easy to add Perl to their skill set -- including the conversion from Rails to Catalyst)

So long story short...yeah I agree. Perl is not going anywhere any time soon. And if for some reason it does...I'm going with it (long winded responses and all)! :)

I was installing custom integration code from Openwave into Sprint Nextel messaging systems only two years ago. That code will probably be there for at least 5 years more earning them 10's of millions for almost every one of them.

I wasn't aware of IMDBs development plans, 5.10, 6 or Parrot. I'll definitely have to look into that when I get some free hours. Thanks for the great post.

im noob programmer, working with microsoft visual c#, and i have to say C# SUCKS real hard. Of course it has its strengths, wicked IDE, i.e Visual Studio. But while writing code i very often think 'how nitty would be that in perl'. And it seems microsoft is borrowing perl features for c#, same with python. New IQueryable(??) stuff, i.e .where(x = y) or .select(a,b,c) resembles perl's grep or map...

"The lady doth protest too much, methinks"

When so much time has to be devoted to saying "No! We're not dead! Really!" then maybe there's something to it......

Leave a comment

Job hunting for programmers


Land the Tech Job You Love, Andy Lester's guide to job hunting for programmers and other technical professionals, is available in PDF, ePub and .mobi formats, all DRM-free, as well as good old-fashioned paper.