Is Perl going extinct?

Command Line Heroes explores the meteoric rise of Perl, its fall from the spotlight, and what's next in the programming language's lifecycle.
144 readers like this.
Listen to the Command Line Heroes Podcast

Is there an endangered species list for programming languages? If there is, Command Line Heroes suggests that Perl is somewhere between vulnerable and critically endangered. The dominant language of the 1990s is the focus of this week's podcast (Season 3, Episode 4) and explores its highs and lows since it was introduced over 30 years ago.

The timeline

1991 was the year that changed everything. Tim Berners-Lee released the World Wide Web. The internet had been connecting computers for 20 years, but the web connected people in brand new ways. An entire new frontier of web-based development opened.

Last week's episode explored how JavaScript was born and launched the browser wars. Before that language dominated the web, Perl was incredibly popular. It was open source, general purpose, and ran on nearly every Unix-like platform. Perl allowed a familiar set of practices any sysadmin would appreciate running.

What happened?

So, if Perl was doing so well in the '90s, why did it start to sink? The dot-com bubble burst in 2000, and the first heady rush of web development was about to give way to a slicker, faster, different generation. Python became a favorite for first-time developers, much like Perl used to be an attractive first language that stole newbies away from FORTRAN or C.

Perl was regarded highly because it allowed developers to solve a problem in many ways, but that feature later became known as a bug. Python's push toward a single right answer ended up being where many people wanted to go. Conor Myhrvold wrote in Fast Company how Python became more attractive and what Perl might have done to keep up. For these reasons and myriad others, like the delay of Perl 6, it lost momentum.

Lifecycle management

Overall, I'm comfortable with the idea that some languages don't make it. BASIC isn't exactly on the software bootcamp hit list these days. But maybe Perl isn't on the same trajectory and could be best-in-class for a more specific type of problem around glue code for system challenges.

I love how Command Line Heroes host Saron Yitbarek summarizes it at the end of the podcast episode:

"Languages have lifecycles. When new languages emerge, exquisitely adapted to new realities, an option like Perl might occupy a smaller, more niche area. But that's not a bad thing. Our languages should expand and shrink their communities as our needs change. Perl was a crucial player in the early history of web development—and it stays with us in all kinds of ways that become obvious with a little history and a look at the big picture."

Learning about Perl's rise and search for a new niche makes me wonder which of the new languages we're developing today will still be around in 30 years.

Command Line Heroes will cover programming languages for all of season 3. Subscribe so you don't miss a single one. I would love to hear your thoughts in the comments below.

I'm happiest at a microphone
Matt was an EMC storage expert, VMware vExpert, and former fan of other proprietary technologies. He now focuses on open source and DevRel adoption.

14 Comments

cPanel, which powers a vast majority of today's websites is written in perl. Being used on the backend just about everywhere means it is very much alive.

I absolutely agree. The podcast got me thinking about the long-term vision and lifespan of any language. Thanks for reading!

In reply to by Naes (not verified)

I can think of three major reasons that Perl has languished. First, there were a lot of poorly written CGI scripts published and heavily used by unsuspecting rookies to build their web sites. That resulted in Perl developing an undeserved reputation for being unsafe and/or insecure. Second, PHP came along and made web sites a whole lot easier to write, since it was embedded in the HTML instead of having to generate all of each page. And finally, the delays in producing Perl 6 meant the language was not even considered by those enamored of the OOP fad. So a whole generation of programmers never bothered to look at Perl for their toolkits.

The kicker for me was when the Perl gurus abandoned comp.lang.perl in favor of their favorite web sites. I simply do not have the time to chase all over the web's half acres to search for information and help, so I moved on to Python, which is still actively discussed and supported on comp.lang.python. Of course, I retired six years ago, so I don't really need either resource any more. I haven't written a line of code in any language since then. There were a couple of bash scripts to automate some repetitive tasks, but that's all.

Perl development stalled at v5.8 for over a decade. That was when it lost its momentum. It will take some effort to get it back.

I started down a path to learn Perl, but sort of got bewildered when trying to decide whether to learn Perl 5 or 6. The "clarification" that Perl6 is actually its own language(?) and not the successor of Perl 5.x didn't help, so it's still mostly a mystery to me, so I've not gotten around to learning either.

Nice comments from people that do not work with Perl. I am at the moment at "https://perlcon.eu/" in Riga. We are age mixed and have lots of fun with growing Perl 6. There is more than one way describes the reality of lots of projects and programming languages. All programming languages that allow only on way, produce lots of overhead.

perl is the leader in regular expressions which get imported into all kinds of other tools like "grep -P".
On the other hand perl is the least legible language (they even have a contest to that effect).

Perl has been a low-popularity language since the 2000s, since PHP stomped all over everyone. The "death of Perl" has been going on for 17 years!

Meanwhile, Perl 5 has received major releases every single year, including the excellent 5.30 just this year. CPAN remains incredibly active, with our major libraries receiving constant updates, especially the fantastic Malicious and Dancer application frameworks.

It seemed like this podcast was more of a forum for Pythonistas than informed Perl experts, which is kind of a shame. The bit about CPAN actually being a problem because it's better to have to build everything from scratch was really something else. Also, Python does have their CPAN imitation, PyPl.

No, Perl is not reduced to a language that is "still" good for only "shell scripts." The Perl community continues to create excellent applications of all sorts, with all the bells and whistles that cool kids have.

I use Perl6 and I love it.

After a few years, we have replace all our Perl/batch/VB apps in our department with Python 3. It has been great from our point of view, as Python is much easier to read and maintain by all involved (Engineers/programmers). We haven't missed Perl at all. That said one of our vendor systems we maintain uses Perl for quite a few processes in that system. Luckily we don't have to deal with it often.

I still love perl 5 for text file processing and performing sysadmin functions where shells and other languages don't fit well. I can say however that I've never liked the perl module system and often found myself in dependency hell trying to get something seemingly simple to work. New comers like python/pip and node/npm have done much better with that.

Others here mentioned web technologies ... I never thought perl was well integrated into the likes of apache and made things complicated. PHP won there because it wasn't really a CLI tool forced into double-duty .. it was a first-class web module citizen and in my opinion more easy in syntax than perl.

I think also perl's syntax flexibility works against it. I've seen developers take pride in producing very obtuse (and unmaintainable) code. That's really the fault of the coder ... but when you're the one stuck debugging some really insane syntax the language gets under your skin.

I still feel every tool has it niche ... perl will probably always be by first go-to for sysadmin and text processing tasks. But I'll admit, I'm drawn to other languages when I need to produce more substantial code, end user application, web apps. etc.

James,

The syntax of PHP is indeed wonderful. Perl's syntax can be just as clean, but you are right, too many Perl developers take pride in writing ugly code. The "Perl obfuscation contest" was a fun joke that ended up hurting our community.

The Perl module system was indeed pretty tough with you had to compile everything. Fortunately, life got a lot better with 'cpanm' command provided by App::cpanminus, so that it's basically a package manager like 'pecl' for PHP or 'pip' for Python.

IMHO, the mod_perl extension to Apache is/was just as powerful a Perl/Apache integration as mod_php is for PHP/Apache. However, the model has shifted to running the code separate from the web server for improved security and portability, like FastCGI, so now we use Plack for web applications. Catalyst, Mojolicious, and Dancer are the popular Perl frameworks that include Plack.

Moderl Perl does have "all the things," or at least "most of the things" that the other great ecosystems have. Still, there are many advantages with PHP, and it is an excellent choice.

-Eric

In reply to by JamesF

Usually when my colleagues need weeks and multiple meetings for a project using Python/Java ,for me takes some hours to finish it with Perl5. Sorry but this is the truth.

Perl6 , I do not know why this thing came to existence .
If needed, I will jump to the GOlang train.
Is Perl for anyone ; Of course no !

G.Bouras

Nice article and interesting comments. Let's hope Perl remains among the living languages.

Creative Commons LicenseThis work is licensed under a Creative Commons Attribution-Share Alike 4.0 International License.