Guest Post: Why Perl isn't Going Away Soon (Or Ever)

by Guest Editor - May. 10, 2010Comments (13)

Lately, the Perl language has had less buzz surrounding it than many other languages and development environments, but Perl is still a key component on the Internet. For this guest post, we asked Jeff Hobbs, Director of Engineering at ActiveState, to weigh in on the topic.

Why Perl isn't Going Away Soon (or Ever)

By Jeff Hobbs,  Director of Engineering, ActiveState

Out of sight, and out of mind. Perl has taken a backseat the last few years in terms of hype, but the language is alive, well, and still holding the Internet together. With the release of Perl 5.12 a few weeks ago, it's time to take stock of and address the misconceptions around Perl.

Yes, Perl 6 is still a long way from being production-ready, by many metrics of "production-ready". We'll get to that more in a moment. However, Perl 6 development is being continued in parallel with Perl 5. Though it might not be obvious from media coverage of the open source landscape, the Perl community is still thriving, evolving, and releasing consistent improvements to Perl 5 and supporting technologies. That's really important, so let's say it again: Perl 5 development is continuing at the same time as Perl 6 development.

The Perl 5 community is moving forward at a good clip.

Look at the Perl 5.12.0 release announcement from mid-April. More than 200 contributors have poured in over 5,000 changes in the two years of Perl development since 5.10 was released. Development won't stop there, of course. The Perl development team has moved from feature-related releases to time-based releases. Perl will have monthly development releases and a yearly stable release for the Perl 5 platform.

Odds are, you didn't read about the 5.12 release outside of Ryan Paul's overview on Ars Technica. You see, Perl not being dead and just continuing business as usual doesn't make for compelling news. Also, let's admit, the Perl community has a great deal of competence in producing software, but couldn't market its way out of a soaking wet paper bag.

So, the primary failing of Perl these days is an insufficient quantity of hype and clarity regarding the future of the language. If Perl isn't being hyped at the same level as other interpreted languages being used today for enterprise applications and Web development, why is it neck-and-neck with other languages in its class?

The answers are longevity, maturity, and a rich ecosystem of development tools and modules that developers can leverage for almost any programming task. Consider the Comprehensive Perl Archive Network (CPAN). CPAN is an enormous collection of software and documentation, largely unmatched outside of the Perl community. Yes, other languages have similar repositories patterned after CPAN -- but thus far none have matched CPAN for its size and scope. CPAN continues to grow at a rapid clip.

Perl's ecosystem for consuming modules continues to evolve as well. While CPAN's collection of Perl modules is much beloved in the Perl community, and envied outside of it, CPAN.pm has (rightly) been criticized for its lack of simplicity. As powerful as CPAN is, installing modules using CPAN.pm is a little bit frustrating, particularly for developers new to the language.

Taking that to heart, Tatsuhiko Miyagawa has recently come up with cpanminus. As the name suggests, cpanminus is not quite as full-featured as CPAN.pm -- nor does it need to be. The idea is to just get the job done, quickly, and let developers get on with it. There is the Catalyst web framework that speeds up web development in a similar fashion to Ruby on Rails -- but with Perl's CPAN behind it. There's also ActivePerl which is a commercial-grade Perl distribution with a convenient package manager for easy Perl module management. The Plack webserver interface. You might notice that Perl is borrowing ideas from other languages. This another sign of a healthy community, and influence coming full circle. There's a lot of Perl in PHP and Ruby, and now the developments in those communities are coming around to Perl.

Signs of Life

One only has to look to see that Perl is still thriving. Search Google Code Search for Perl (with the lang:perl search operator) and you'll receive more than half a million results. Ruby is shy of 400,000, Python has a respectable 465,000 results. To be fair, PHP outstrips them with more than 800,000, but that only speaks to the fact that PHP is also amazingly popular.

Considering adding Perl to your list of languages? You'd be wise to do so. Perl may not be as buzzword compliant as PHP or Python, but it's every bit as relevant in the job market. Perhaps more so. A recent search for Perl jobs on Dice.com turned up 4,126 matches against PHP's 2,127. Python matched only 1,742, and .Net only 1,025. Searching LinkedIn turns up 403 results, Python 352, and .Net 439 results. Is this an authoritative metric? No, but it does demonstrate that Perl still commands attention in the job market.

Perl 6 Soldiers On

Since much of the confusion over Perl's health stems from misconceptions about Perl 6, let's address the status of Perl 6 and how it relates to Perl 5.

It's tempting to think of Perl 6 as the successor to Perl 5 in the same way that Windows 7 was the successor to Windows Vista, or PHP 5 is the successor to PHP 4. That may have originally been the intent, but a more accurate analogy is to think of Perl 6 as another sibling in the Perl family. Even when Perl 6 is "officially" released, Perl 5 may continue to be developed and enjoy a life of its own side-by-side with Perl 6.

How is Perl 6? It's moving along with regular releases of Rakudo Perl, an implementation of Perl 6 that runs on top of the Parrot virtual machine. It may not be ready to replace Perl 5 for some time, but it's continuing and should be an interesting option when ready.

Summary

Though it may not be readily apparent at first glance, Perl is healthy and growing. After a short lapse, Perl development is picking up and enthusiasm for Perl 5 is as strong as ever.

 

Disclosure: Jeff Hobbs is Director of Engineering at ActiveState, which offers development, management and distribution solutions for Perl.

 



Shailesh Patel uses OStatic to support Open Source, ask and answer questions and stay informed. What about you?



13 Comments
 

Oh, my, PERL is COBOL!


0 Votes

Perl 5 is rotten at the core. Take a good, long look at the source code, and try and count the tantalizing number of "we should really do this another way...", "this should really be a proper library..." and similar comments.


A lot of it probably stems from Perl being available on a multitude of platforms. Doing something correctly across many platforms requires an elaborate design process, and in most places, Perl was simply slapped together out of a need to do something quickly. As it is, that won't hold up.


Writing a good, stable module for CPAN is difficult, because there are so many Perl internals and other CPAN libraries you depend on that just doesn't work right in all circumstances.


There's a million little modules coming into CPAN all the time. They work very well, but only for a very limited problem scope each.


The foundation is crumbling and has been for a long time. The Perl community needs Perl 6 before it can rise to anywhere near the level of Python or Ruby.


0 Votes

nice this one


0 Votes

Usually, when I see an article that claims something is alive and well, I have to wonder why they would have to make such a proclamation in the first place.


0 Votes

I think this is unfortunate. Perl works. Those who need to solve problems quickly and then move on turn to Perl to get the job done. They don't wring their hands wondering about whether the language source code has "could be done better" comments in it.


I've written critical applications and utilities in perl within a large corporate finance department. Any number of other languages could have done the job, but I chose Perl because it reduced the time it took to solve the problem, test it and distribute the results.

With another couple of years of Python/Ruby experience I could be as productive in those too, so I'm not saying it's special, but that it's available, practical, useful, stable and relevant. Those things become very very important when your output has to be *right*.


In 2006 I gave up waiting for perl6 and now view it as a completely different language that I may look at if/when it emerges. From my perspective it has little to do with perl5 - it's a new and interesting language that shares a name, some ideals and a part of the community. Maybe a little like scheme and lisp, although I'm not qualified to know.


Don't write off Perl because it's not getting credit by google, et al. It's a useful language and one that has a surprising number of advanced and pragmatic features that help to solve problems quickly.

Sometimes it's easy to look at code and think "hack! it's a hack!". I've done that too. But I come back and learn that there is a very very expressive language there that will let you do potentially silly things - it doesn't govern you, it allows you to work freely.


0 Votes

Lack of "buzz" doesn't mean a thing. You don't hear much about C these days, either, yet it's still in heavy use doing real work.


Language zealots don't seem to understand that the key to being successful in software development is understanding that there is a wide variety of tools out there and understanding the strengths and weaknesses of enough of them to be able to pick the right one for the job.


0 Votes

Perl holding the Internet together? If any single language is holding the Internet together it's PHP : http://w3techs.com/technologies/overview/programming_language/all. At least Perl is still stronger than Ruby and Python.


0 Votes

Please note in the link in previous post: "whose server-side programming language we know."


If "Perl" eq "COBOL", remember how a lot of the code, you use daily is written in COBOL - and the financial institutions need people, who know COBOL nowadays.


0 Votes

"The foundation is crumbling and has been for a long time."


That's what Guido was saying 15 years ago. At this point, that seems like wishful thinking. Perl 5 is going from strength to strength.


"Usually, when I see an article that claims something is alive and well, I have to wonder why they would have to make such a proclamation in the first place."


It's a response to the continual false assertions from people outside the Perl community that 'Perl is dying' (e.g. see other comments here).


0 Votes

'Perl 5 is rotten at the core. Take a good, long look at the source code, and try and count the tantalizing number of "we should really do this another way...", "this should really be a proper library..." and similar comments.'


I'd be very surprised if any project as large and long-lived as Perl is hadn't accumulated such comments. Is Linux (4 years younger than Perl) "rotten at the core"? or the X Window System (3 years older than Perl)? All 3 codebases have their fair share of decade-old comments about how something is just a hack that should be replaced before next week. None of the 3 is going away any time soon, and at least 2 of them are still growing robustly.


0 Votes

It's just silly to rank things the way W3Techs did and for us to trust their rankings. There are several reasons.


First, their "methodologies" link doesn't list how they know these things. Did they ask the people who actually know? Did they search for pages with extensions like "php", "pl", and "py" (which is entirely inaccurate since a URL need not disclose how the page is constructed). Did they grep it out of headers (which can be manipulated not to show anything and in many cases don't include Perl, Ruby, Python, or Java since there are popular ways to use them with web servers besides Apache modules). Just what the hell are they measuring?


Second, the fact that a site uses a PHP CMS doesn't mean that any PHP development went into that particular individual site. It likely means someone untarred the CMS or installed it via Fantastico (which is written in PHP IIRC), and maybe Fantastico was presented as part of the popular CPanel (which is itself written largely in Perl). I know I care much more about getting paid for code than about whose (some of them notoriously buggy) PHP message board is favored over whose when they're all free one-click installations on a $5 per month hosting package.


Third, they don't list shopping carts or any other type of application other than general content management.


Fourth, they keep saying a site can use more than one server-side language, but not that one site can use more than one web server, OS, markup language, content language, etc.


Fifth, and this is the kicker: Their automated tool for finding out what a site uses absolutely lies! I pointed this at a site I control which consists of one plain static HTML page. It claims that site uses PHP 5.2.5 for server-side programming (probably because the server has PHP 5.2.5 installed and Apache lists the module as installed in the headers ... which Apache does... but it is not being used for that page!). I pointed it at another static HTML page which neither is generated by PHP (but they claim it is) nor is the HTML 4.0 Transitional they claim (it's XHTML 1.0, validates as XHTML 1.0, and has a proper DOCTYPE).


What interest does this site have in lying? Well, it is run by a "Software Quality Management Consulting" company called Q-Success. Is Q-Success mainly interested in selling you PHP-based solutions? Are they really code-quality people whose code don't understand what HTTP headers mean? Are they hoping PHP programmers will need more consulting to get quality code? I have no idea.


I just know that their tool lies, which means their site tells lies, tells damn lies, and tells statistics. The statistics are even more flawed than most, since they are choosing to use false inputs.


0 Votes

I think nobody can make the exact answer about this , http://www.rzdvdcreator.com


0 Votes

As an embedded software engineer, Perl is an amazing language that can solve my problems easily. I don't need to say about its automation capabilties, its text and file manipulation capabilities are unbelievable. It is really a script language.


0 Votes
Share Your Comments

If you are a member, to have your comment attributed to you. If you are not yet a member, Join OStatic and help the Open Source community by sharing your thoughts, answering user questions and providing reviews and alternatives for projects.


Promote Open Source Knowledge by sharing your thoughts, listing Alternatives and Answering Questions!