logoalt Hacker News

Perl's decline was cultural

190 pointsby todsacerdotitoday at 5:42 PM232 commentsview on HN

Comments

jordanbtoday at 6:16 PM

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.

show 14 replies
jancsikatoday at 8:12 PM

> None of this is literally serious,

Exactly.

I remember someone telling me to RTFM when I posted a question on IRC back in the 90s. Luckily, I explicitly asked if they were serious. They responded of course not-- they were kidding!

Then they PM'd me with hidden link that had an image map of Perl wizards with whom I could schedule a free meeting and coffee to get started as a newbie. I was skeptical-- who cares about some random noob from the interwebs?!? Well, Perl, apparently. That face-to-face meeting left me with goosebumps that I feel to this day when I think back on it. It turned out to be an important confidence booster and my chief way into programming.

I don't think it's an exaggeration to say that without Perl's focus on outreach I would never have served as president of Software Local 2142.

Like my wizard mentor told me when I tried to pay for the coffee that afternoon: Perl it forward!

show 1 reply
mmastractoday at 6:11 PM

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.

show 6 replies
calmbonsaitoday at 6:19 PM

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.

show 1 reply
dc396today at 6:21 PM

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.

show 1 reply
hinkleytoday at 6:49 PM

> 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.

RayFrankensteintoday at 6:17 PM

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.

show 2 replies
fenazegotoday at 8:22 PM

My first and only experience with Perl was like this: in 1997, just for fun, I tried to write a program in Perl to turn my Mozilla bookmarks into a website. After a week of not succeeding, in frustration I decided to try Python. In two days I had what I wanted, and programming it was a joy. That sealed my judgement that Perl (and all of its culture) was not for me, so I'm not surprised at all that others might feel the same. (To be fair, there's a single oneliner that does make life a lot easier: ... | perl -pe 's{...}{...}')

heikkilevantotoday at 9:33 PM

I don't know, but for me Perl has not died at all. I still use it for smallish scripts and some CGI. Maybe I am an old retired fart, but it is the tool I reach for, when the problem looks like Perl-ish. Like I reach for C or other languages when I need that kind of things.

show 1 reply
streptomycintoday at 6:29 PM

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.

daedrdevtoday at 6:13 PM

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

show 2 replies
0xbadcafebeetoday at 9:40 PM

I think it's worth pointing out that Python only became popular after Google started using it. Remember when every nerd on the web was an ardent defender of Google? When people wanted to reach for a new language (say, for data science, also a new thing at the time) they reached for that slightly obscure yet easy to learn language that the cool tech company used. Schools adopting it exposed it to more people, but they picked it up, again, cuz Google used it and it was easy to learn.

Nowhere in that decision-making process is there the consideration of if it's actually a good language, more efficient, more flexible, more powerful, faster, etc. It was ease of use and "the cool kids are using it".

darrenftoday at 7:40 PM

> [TIMTOWTDI] literally means 'there is more than one way to do it in Perl' - and you can perhaps infer from that that there's little to no reason to do it using anything else

Not my experience at all, FWIW. For me, and the vast majority of Perl devs I’ve worked with over the past 30 years, TIMTOWTDI absolutely means some of the “ways to do it” don’t involve Perl, and that’s not only OK but expected. Of course Perl isn’t the be all/end all. It’s a lot of fun though!

(I’m a majority Perl coder to this day, it’s my favourite language by far. Hell, I even find it readable and easy/fun to debug)

getnormalitytoday at 6:41 PM

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!

show 1 reply
dana321today at 9:40 PM

I remember the first time a saw Perl, it looked like some kind of alien language from outer space, all the symbols it used looked insane.

But once you get it, its pretty intuitive to use.

The worst part about it was the syntax for object oriented programming, which in raku (perl 6) is a lot better and intuitive.

Raku has some great ideas like grammars, but has a lot of new magic symbology and lost what i thought was an intuitive way of regular expressions in Perl 5.

=~ vs ~~

js2today at 6:36 PM

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

grim_iotoday at 9:36 PM

At first glance it looks like shit. That's all the reason I need to never touch it.

It doesn't feel like I've missed out.

lemonwaterlimetoday at 6:46 PM

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

PLenztoday at 9:08 PM

I'm really, really confused by the typescript overtaking python comment, they're not really tackling the same domain of problems, right?

show 1 reply
sammy2255today at 6:40 PM

I don't understand how Perl fell off and PHP didn't

show 3 replies
chihuahuatoday at 8:37 PM

I had an interesting experience starting a job at ZipRecruiter, and finding that up to that point (2022), most of their code had been written in Perl. Their CTO had just gotten fed up with Perl and decreed that from now on, all new projects should be written in Go. I was the first one on my team to write code in Go.

There were various greybeards who kept telling me that Perl was a perfectly fine language and was fast enough for most purposes. I didn't argue with them and just backed away slowly.

Regarding Perl as a language, it seemed fine in the 1990s as a slightly more advanced alternative to Unix shells. But for me, what made it a failure as a language is that in order to have an array of hashes, or a hash of arrays, you needed to use references. That may have been a nice hack to enable some things in the 1990s, but even in 2005 that sounds pretty primitive and outdated to me. Plus the reliance on using magical variables consisting of $ and every non-letter ASCII character for all kinds of random stuff, like $_ and $# and so on. That may have been cool in 1992, but it's not 1992 any more.

Overall, Perl was pretty neat for little scripts up to 20 lines, but a bad idea for building an entire company on (like ZipRecruiter.) That's more of an indictment of ZipRecruiter than Perl.

tbrownawtoday at 7:16 PM

The reason I mostly use Python is `python3 -mvenv env`. If I know that everything I might want is part of Perl's built-in modules, I prefer Perl.

diegof79today at 6:47 PM

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

fredsmith219today at 8:38 PM

My client uses IBM servers with it’s hobbled version of Unix (AIX). Perl and access to copilot have really helped me out. I don’t love Perl but I’m damn glad I have acres to it.

twentyfiveoh1today at 8:47 PM

early pearl was just about having an awesome tool at your disposal. There was minimal code written in a team environment.

People were still amazed that you could do X in 1 line rather than 100 lines. Some people couldn't have done those 100 lines.

So the idea of recipes/spells/hacks was an intentional parallel.

It became a cultural thing. New people wanted to be respected for compact code that impressed people the same way they were impressed.

bufordtwaintoday at 6:34 PM

I thought its decline was due to Perl's confusing syntax. That's what caused me to move away from it anyway.

stack_framertoday at 9:25 PM

Should the Rust community take a lesson here, and maybe the Zig community to an extent?

To me it seems that some in the Rust community in particular, perhaps because they're just the most vocal, are tightly coupled to progressive, social activism.

I guess in general I just find myself wishing that political and social issues could be entirely left out of technical communities.

show 1 reply
1vuio0pswjnm7today at 7:23 PM

Perl is still required for compiling autotools, openssl, nasm, etc.

As such, is likely to be around for a long, long time

Python is sometimes required for compiling software, too, but projects like the ones mentioned above requiring Perl have not switched to Python

deafpolygontoday at 6:12 PM

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.

show 5 replies
Emen15today at 6:54 PM

Perl 5's non-breaking conservatism kept old scripts running forever, but it also meant there was never a clear migration path the way Python 3 eventually provided, and that made long term planning a lot harder.

show 1 reply
rcarmotoday at 9:28 PM

This tracks. My own experience was that I moved from Perl to Python (for system and API stuff) and PHP (for templating and HTML).

The only thing I kept using Perl for over a decade was RADIUS (we ran Radiator, which was arguably the most insanely flexible AAA server for ISPs)

bueschertoday at 6:36 PM

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.

notepad0x90today at 6:37 PM

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.

morshu9001today at 7:08 PM

I looked at Perl once and decided to just not use it, and hoped it'd go away so I never have to use it. Sorry, the decline was probably due to it being bad.

tguvottoday at 6:18 PM

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

show 3 replies
____tom____today at 8:14 PM

perl died because "Perl is write once, read never"

nucleogenesistoday at 7:44 PM

The number of blogs posted on here by people who can’t be arsed to make their writing legible on mobile blows my mind. Did everybody just skip the section of their CSS journey that covered media queries or what?

I enjoyed the article but it was a nightmare to read on my phone’s browser

999900000999today at 6:10 PM

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.

show 1 reply
oncallthrowtoday at 7:14 PM

> Perl always had a significant amount of what you might call "BOFH" culture, which came from its old UNIX sysadmin roots. All of those passive aggressive idioms and in jokes like "RTFM", "lusers", "wizards", "asking for help the wrong way" etc.

> [...]

> Cultural conservatism as a first principle.

Counterpoint to this: Rust. Rust has a similar RTFM/"wizards" culture, but is not culturally conservative (in any sense of the word).

My two cents: Perl's "culture" had little to do with its fall. I think Perl's problems run much deeper. Perl is built on rotten foundations. It's fundamentally a scripting language (albeit with bolted on additions to make it kinda-OOP), and it therefore has all the problems that scripting languages have for building large software projects.

Those problems have no quick fix, and indeed fixing them would require throwing the language out entirely -- at which point, why not simply switch to another language entirely (which is exactly what happened...).

show 1 reply
neuroelectrontoday at 6:57 PM

Perl being so old means it's extremely fast for what it's designed to do, process streams or pipes. In a few tasks, it's faster than C, but being much faster to create a script or program that is useful, and with the implicit syntactic sugar, and since it's so flexible, you can just do things in the one way you know how and that's usually good enough.

Python is pretty good too for this and because modern computers are so fast it doesn't matter that it's much slower than perl, but if you're doing something like processing terabytes of files, it's probably worth your time to find or vibe code a one-liner in perl and torture it into working for your task.

show 1 reply
d_semtoday at 7:14 PM

I worked for a few years in an large org which utilized perl for build scripts, testing automation, and a few other things. I would summarize the half decade Perl learning curve as initial bewilderment, intermediate cult like praise, to advance level disillusionment.

There was something about scaling usage in large teams that felt awkward and high friction.

IshKebabtoday at 6:18 PM

Nah Perl just wasn't a very good language. Not every language is equally good.

show 2 replies
anarticletoday at 7:27 PM

Perl was of a time, so it's important to remember when it was around. CPAN was legitimately one of the first package managers for a programming language that WORKED. Contextually, its references are bash, sed, awk, and other cli tools. There are too many ways to do things in perl because of the various flavors / takes on how to do things. It was also a fun way to write cgi apps in the era of C/C++. Is that the best way to do things today? No! It was one way to do something complex in few lines of code. It was the python of its day in many ways.

There are tons of quirks that are interesting that influenced language development today, for me the spaceship operator "<=>" was a fun one. You can have a flip through the camel book to see what kind of stunts were common in its era.

It is an auteur language that was not really done the way languages are today.

Perl 6 did massive damage to the community mainly because it was so different that it looked like a fantasy language. That along with Parrot really lost the plot for me, I had mostly stopped doing that kind of work and moved on to R for my bioinformatics things. Bioconductor was the bees knees.

I'm surprised at all the haterade, probably you're either <30, and/or being overly critical of a very nascent tech era. Perl was pre and post .bomb, and had one of the first online communities that I remember that shared tips and tricks at scale at perlmonks.org. It predated stackoverflow! It was a very different time to now.

This was also from a time when people still paid for compilers(!)

I am deeply biased, as I wrote a 3d distance calculator in Perl for small molecule drugs. We were looking for disulfiram analogs doing biopanning and then simulations. There was a great PDB library for structures at that time that saved me tons of time. This was circa 2005~, ages from now.

ChrisArchitecttoday at 7:05 PM

Related:

What Killed Perl?

https://news.ycombinator.com/item?id=45977900

outside1234today at 8:00 PM

C'mon. The language was like something born in Hogwart's. Magic spells, incantations. It lost because it was not an easy language to learn - and others were (in particular Python) - while being just as powerful.

mschuster91today at 6:39 PM

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.

show 1 reply
webdevvertoday at 6:28 PM

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.

show 1 reply

🔗 View 1 more comment