Last week I dug into a fairly sensitive topic in some circles: the decline in Perl's popularity in favor of other languages. I received the expected response from Perl diehards, which essentially boiled down to "No, it's not!" with much saltier language.
Somewhat surprisingly, however, as I read comments about my post here and in various places around the Internet, I found that some stalwarts are admitting they see this happening as well. It might be a few large-scale Perl projects that have been rewritten in Python or Java, or a noticeable trend of new projects begun in other languages. One comment on Reddit sums this up well, particularly a key line: "We've got cancer, and denying it just means we can't work to fight it."
[ Also on InfoWorld: Perl isn't going anywhere -- for better or worse | Why admins should know how to code | 6 things every IT person should know | Get practical IT advice and insight with Matt Prigge's Information Overload blog and InfoWorld's Data Center newsletter. ]
Some of the shift over the past decade has come from the fact that there are better languages for developing Web applications, and Web apps obviously take a major chunk of the global programming effort. While many popular websites (such as Slashdot) and Web-based apps (such as Moveable Type and Bugzilla) are written in Perl, they are the exceptions. Typically they were born in an era when Perl was a much more viable Web coding candidate than it is today.
Massive websites and large-scale Web-based apps are much more apt to be written in any number of languages other than Perl, simply because those languages are much more in tune with the specific needs of Web applications. This isn't necessarily a knock against Perl's ability to drive Web apps, any more than it would be a knock against PHP for not being the go-to language for doing heavy-duty background data manipulation.
However, a large number of developers default to using other languages in this way, and their reflexes keep them away from Perl for tasks that are more general in nature. This is where Python excels, because it has better Web chops than Perl, along with serious skills in other areas. Thus, it can be used for many other endeavors. That's how Python has become the go-to language for many folks, including many who used Perl in the same way several years ago.
I don't have an action plan or any available magic that could restore Perl to its former glory. In fact, I don't think that's possible. However, Perl needs to become more attractive to younger developers and reach out to those who've drifted to other pastures. For the first time ever, Perl needs to figure out how to sell itself. I was hoping way back in 2010 that an official release of Perl 6 might prime the pump for that occurrence. Obviously, that hasn't happened.
My worry is that by the time we see a "complete" Perl 6 spec and Perl 6 binaries are shipping standard with most major distributions, it will be a day late and a dollar short. We all know Perl 5 isn't going anywhere, especially as there are no guarantees that Perl 6 will be backward-compatible with Perl 5 code, which may ultimately harm Perl 6's adoption. The waters of the software development sea are vastly different today than they were 13 years ago when Perl 6 was announced. It's impossible to keep chasing the horizon and expect to actually get there.
Lastly, I want to make it abundantly clear that I am in no way cheering for the demise of Perl -- quite the opposite. The world is a vastly better place with a vibrant and growing Perl community. However, refusing to admit the problem and address these realities work against that goal. And as far as the vituperative nature of some of my detractors goes, read this comment by YojimboJango on Slashdot, laugh, and lighten up.
This story, "Making the case for Perl," was originally published at InfoWorld.com. Read more of Paul Venezia's The Deep End blog at InfoWorld.com. For the latest business technology news, follow InfoWorld.com on Twitter.
This story, "Making the case for Perl" was originally published by InfoWorld.