100 comments

[ 10.3 ms ] story [ 1650 ms ] thread
Perl's "decline" saved it from a fate worst than death: popularity and splitting into dozens of incompatible versions from added/removed features (like python). Instead Perl is just available everywhere in the same stable form. Scripts always can just use the system perl interpreter. And most of the time a script written in $currentyear can run just as well on a perl system interpreter from 2 decades ago (and vice versa). It is the perfect language for system adminstration and personal use. Even if it isn't for machine learning and those kinds of bleeding edge things that need constant major changes. There are trade-offs.

This kind of ubiquitous availablility (from early popularity) combined with the huge drop-off in popularity due to raku/etc, lead to a unique and very valuable situation unmatched by any other comparable language. Perl just works everywhere. No containers, no dep hell, no specific versions of the language needed. Perl is Perl and it does what it always has reliably.

I love it. The decline was a savior.

Python is mentioned and I think the key reason it's continued to grow while Perl declined, is a vastly more welcoming culture.

Python says you know nothing, but want to automate a small task. The community will help you. More so than any other language.

Then again, Python 2 and Python 3 are two different languages.

Very few projects are willing to have such a massive migration.

In fairness, Perl died because it was just not a good language compared to others that popped up after its peak. Sometimes people just move to the better option.
When I learned perl, I encountered a way to express myself more easily than any other language. For example, being able to say not only "if foo" but "unless bar" gave me a more fluid vocabulary to get things out of my head and into code.

Thing is, it worked great for ME but when I started interacting with other people's perl code, it all broke down.

One person would write it all on one line. Another would be extra verbose. Some would use all the idioms, others would be 10 levels of nested braces.

Every person's brain expressed itself differently and it was much harder to find common ground.

Eventually I left perl for python, which seemed to be more sane. It seemed pythonic was more of a thing and the code was more readable. Also, it had a large standard library and you didn't have to leave the language to solve just about any problem. It did require extra effort to write code, but the benefits were pretty obvious.

A couple other sort of random points - perl 6 was delayed and that might have hurt the language. Just the same python 3 did come out, but the 2 to 3 changeover was a huge negative to the language.

Perl6/Raku killed Perl.

Python 3 almost killed Python.

It's normal. Once a community loses faith, it's hard to stop them from leaving.

"Perl6/Raku killed Perl."

Perl was effectively "dead" before Perl 6 existed. I was there. I bought the books, wrote the code, hung out in #perl and followed the progress. I remember when Perl 6 was announced. I remember barely caring by that time, and I perceived that I was hardly alone. Everyone had moved on by then. At best, Perl 6 was seen as maybe Perl making a "come back."

Java, and (by extension) Windows, killed Perl.

Java promised portability. Java had a workable cross-platform GUI story (Swing). Java had a web story with JSP, Tomcat, Java applets, etc. Java had a plausible embedded and mobile story. Java wasn't wedded to the UNIX model, and at the time, Java's Windows implementation was as least as good as its non-Windows implementations, if not better. Java also had a development budget, a marketing budget, and the explicit blessing of several big tech giants of the time.

In the late 90's and early 2000's, Java just sucked the life out of almost everything else that wasn't a "systems" or legacy big-iron language. Perl was just another casualty of Java. Many of the things that mattered back then either seem silly today or have been solved with things other than Java, but at the time they were very compelling.

Could Perl have been saved? Maybe. The claims that Perl is difficult to learn or "write only" aren't true: Perl isn't the least bit difficult. Nearly every Perl programmer on Earth is self-taught, the documentation is excellent and Google has been able to answer any basic Perl question one might have for decades now. If Perl had somehow bent itself enough to make Windows a first-class platform, it would have helped a lot. If Perl had provided a low friction, batteries-included de facto standard web template and server integration solution, it would have helped a lot as well. If Perl had a serious cross-platform GUI story, that would helped a lot.

To the extent that the Perl "community" was somehow incapable of these things, we can call the death of Perl a phenomena of "culture." I, however, attribute the fall of Perl to the more mundane reason that Perl had no business model and no business advocates.

I think a big part is does someone starting to program even hear that Perl exists? No, and they start learning python and so have little need to learn Perl after that
I always found the Perl "community" to be really off-putting with all the monk and wizard nonsense. Then there was the whole one-liner thing that was all about being clever and obscure. Everything about Python came off as being much more serious and normal for a young nerd who wasn't a theater kid.
Python for awhile had its own cultural issues. I guess, coming from more of a C and lisp background, the stuff you're mentioning seemed playful and fun to me and I didn't get the sense anyone expected to write performance critical code in it anyway.

Python forums in contrast to me included neverending justifications for why whitespace and indent formatting was critical and this kind of odd (to me) imperfect type system implementation, like the whole thing was some toy language pretending to be more than it was (in the sense that if you wanted something more complete in language or performance you'd go elsewhere).

Perl just seemed to know its place and not take itself too seriously.

Things changed though. I haven't touched Perl in years but use Python all the time. I never understood why Python got the traction it did given its performance limitations compared to some other languages (except as part of a broader trend for people to use whatever language they leaned in introductory comp sci) but I do think I understand why people stopped learning Perl.

In community college our perl professor was often late. One time he just didn't show up. I remember him once saying something like job security involved writing indecipherable code so none of your coworkers could understand it. There was a tinge of bitterness in his remark. Our exams were essentially obscure perl puzzles where we had to read the code and determine the output, some kind of coded phrase.
There was a lot of pressure in the Perl community to write things as succinctly as possible instead of as maintainably and understandably. That’s not realistic for use in a field with a lot of turnover and job hopping.
Nah Perl just wasn't a very good language. Not every language is equally good.
Neither is Ruby that has also similarly disappeared and article praised it? Or Lisp? On the opposite end, C, PHP, JS that are omni-present are good languages? Sometimes meritocracy and success don't align.
I spent year developing CMS in Perl in 1999 (HTA application with ActivePerl. wonder if anybody else did something like this). It traumatized me, and first thing that I did in my next job is to learn python and develop some core systems in it. Few of my friends moved from perl to python as well.

I still remember spending time with my coworkers on bench outside of building trying to figure out #@$%$^&$%@something = []sd[dsd]@$#!&lala lines written by previous developers

No. Perl died because other languages starting having an equivalent to CPAN and its extremely flexible syntax does not scale for medium to large team coordination.
I was a fairly heavy user of Perl, but eventually migrated to Python. The primary reason was the generally abysmal quality of what was in CPAN compared to what was available as third-party packages for Python. I found myself having to spend way too much time fixing stuff I pulled down from CPAN far more than I'd need to for Python for the same functionality. Undoubtedly Perl stuff got better, but I didn't have time to wait.
(comment deleted)
i disagree, python is Just Better. ive never used perl but ive had to install it due to some antique tools requiring it, and every time its been an incomprehensible mess. i still have no idea how packages work in perl. also, it seems like everything in perl is a string? and the syntax looks like a mess.

maybe its painful for guys to admit that languages could be a lot better designed, and when such langauges appeared, everyone flocked to them.

For me it wasn't cultural.

Perl was my first language because I wanted to make interactive websites and that was the most common way to do it in the late 90s. Shortly after, everyone switched to PHP because mod_php was much faster than Perl CGI scripts.

mod_php was distributed w/ Apache httpd, so it was "already installed". mod_perl needed to be installed manually, so it posed immediate friction, if not a complete freeze-out, depending on the situ. I believe that was why PHP became popular.
I thought its decline was due to Perl's confusing syntax. That's what caused me to move away from it anyway.
I never really warmed to perl in its era but perl dbi was kind of perfect in its way. If you needed what it could do, it got very intuitive very fast, and was pretty terse. Both of which were supposedly the appeal of perl.
Perl died for many reasons. For me, it was a language that was always too tempting to be too clever by half. I'd been using Perl pretty significantly from 1995-2000 (perl4 to perl5) when I was introduced to Python (1.5.2)[^1]. I greatly appreciated its simplicity, zen, batteries included standard lib, and REPL. I found add on packages easier to install than dealing with CPAN. I switched to Python and basically never looked back.

[^1]: https://news.ycombinator.com/item?id=44790671

I didn't like cpan and python was just easier and available, if python didn't exist I'd like to think I'd have invested heavily in perl because it was everywhere at some point.
I don't get why Ruby is mentioned before PHP. The only Ruby thing I've ever come across is GitLab, and not with positive associations either - up until maybe 3, 4 years ago particularly Sidekiq was a constant point of utter pain.
I suspect it's because Ruby's ability to deal with strings is so heavily influenced by Perl.

When I first started using Ruby after years of Perl, it felt familiar but everything was just more... sensible.

I don't understand how Perl fell off and PHP didn't
The lede says Perl died because it was "reactionary" and "culturally conservative", but the content says Perl died because it had bad culture, the culture of angry, socially corrosive anonymous internet commenters.

If Perl had had a good culture, then conserving it would have been good!

(comment deleted)
Rather than its "decline was", Perl's existence is cultural. All programming languages (or any thought tools) are reflections and projections of the cognitive values of the community who creates and maintains them. In short, the Perl language shares the structure of the typical Perl dev's mind.

A shift to Python or Ruby is fundamentally a shift to a different set of core cognitive patterns. This influences how problems are solved and how sense is made of the world, with the programming languages being tools to facilitate and, more often than not, shepherd thought processes.

The culture shift we have seen with corporations and socialized practices for collaboration, coding conventions, and more coincides with the decline of a language that does in fact have a culture that demands you RTFM. Now, the dominant culture in tech is one that either centralizes solutions to extract and rent seek or that pretends that complexity and nuance does not exist so as to move as quickly as possible, externalizing the consequences until later.

If you've been on this forum for a while, what I am saying should seem familiar, because the foundations have already been laid out in "The Pervert's Guide to Computer Programming", which applies Lacanian psychoanalysis to cognitive patterns present in various languages[1][2]. This explains the so-called decline of Perl—many people still quietly use it in the background. It also explains the conflict between Rust and C culture.

As an aside, I created a tool that can use this analysis to help companies hire devs even if they use unorthodox languages like Zig or Nim. I also briefly explored exposing it as a SaaS to help HR make sense of this (since most HR generalists don't code and so have to go with their gut on interviews, which requires them to repeat what they have already seen). With that stated, I don't believe there is a large enough market for such a tool in this hiring economy. I could be wrong.

[1] [PDF] -- "The Pervert's Guide to Computer Programming" https://s3-us-west-2.amazonaws.com/vulk-blog/ThePervertsGuid...

[2] [YouTube Vulc Coop]-- https://www.youtube.com/watch?v=mZyvIHYn2zk

This is interesting to me, as someone moving from a company that uses C++ to one that uses Rust. It feels like the whole culture of the former company is built similarly - no guardrails, no required testing, or code review, minimal "red-tape".

In effect, the core principles of the company (or at least, the development team of the company) end up informing which programming language to use.

>The Pervert's Guide to Computer Programming

That's a rather glamorous piece of discourse, yall aint sleepin

There is no doubt that a product’s community culture and the maintainer’s attitude have a significant influence.

However, I used Perl and stopped using it without knowing anything about its internal politics or community. PHP, ASP, Java JSP and later Rails were much better than Perl for web development.

* I know that for some the mention of JSP will be rare, as it was ugly… However in the 2000s it was the state of the art

> if difficulty itself becomes a badge of honour, you've created a trap: anything that makes the system more approachable starts to feel like it's cheapening what you achieved. You become invested in preserving the barriers you overcame.

The mentality described here has always galled me. Half the reason I’m willing to scramble up these hills is to gain the perspective to look for an easier way up the next time. It’s my reward for slogging through, not for the gathering of sycophants.

I’m not sure you’ve mastered a thing until you’ve changed the recipe to make it a little bit better anyway. My favorite pumpkin pie recipe, isn’t. As written the order of operation creates clumps, which can only be cured with an electric mixer. You shouldn’t need an electric mixer to mix pumpkin pie filling. If you mix all the dry ingredients first, you get no clumps. And it’s too soupy. Needs jumbo eggs, not large. So that is my favorite recipe.

But maybe this is why I end up writing so many tools and so much documentation, instead of hoarding.