Live data from Hacker News

Perl's decline was cultural

beatworm.co.uk

71–80 of 472 posts

Re: Perl's decline was cultural

#71

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.

Yep. Perl 6 was a wall that Perl 5 would never move beyond. It’s still Perl 5 25 years later.

Re: Perl's decline was cultural

#72
post #29
post #4

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.

Perl is a great language, the way Scala and Haskell are great: as openly experimental languages, they tried interesting, unorthodox approaches, with varied success. "More than one way to do it" is Perl's motto, because of its audacious experimentation ethos, I'd say. Perl is not that good a language though for practical purposes. The same way, a breadboard contraption is not what you want to ship as your hardware pro…

> "More than one way to do it" is Perl's motto, because of its audacious experimentation ethos, I'd say.

Perl lets every developer write Perl in their own idiosyncratic way.

And every developer does.

It makes for very un-fun times when I'm having to read a file that's been authored by ten developers over ten years, each of whom with varying opinions and skill levels.

I guess in 2026, it'll be 11 developers writing it over 11 years. My sincere apologies to those who come after me, and my sincere fuck-you to those who came before me. :)

Re: Perl's decline was cultural

#73
post #38
post #14

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 = []…

Before I eventually switched to PHP, I ended up writing multiple CMS-like solutions that would run via `cgi-bin` but write contents to the webroot (what we would now call a static site generator). As I was quite limited with the standard shared hosting at the time, I ended up inventing my own single file database format (it was a simple text file) to keep state. It worked quite beautifully and kept me afloat for the…

I wrote php2 + msql before starting in that company (and a bit of php3). Like in your case it was essentially static site generator but the management part was HTA (application hosted in internet explorer. you could write one using whatever activex/language: vbscript, python, perl).

as backend we had oracle. at first we tried oracle/linux (just released). but we never managed make it work (oracle engineers that came to us failed as well). So we got dedicated sun server for it.

One day I was bored, installed mysql on my workstation, made a changes in couple of queries and all of sudden i got x20 performance of sun box with oracle. Lead developer said that it's bad solution as mysql doesn't properly supports referential integrity (we didn't actually used it in oracle iirc)

Re: Perl's decline was cultural

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

Re: Perl's decline was cultural

#75
post #29
post #4

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.

Perl is a great language, the way Scala and Haskell are great: as openly experimental languages, they tried interesting, unorthodox approaches, with varied success. "More than one way to do it" is Perl's motto, because of its audacious experimentation ethos, I'd say. Perl is not that good a language though for practical purposes. The same way, a breadboard contraption is not what you want to ship as your hardware pro…

The big pearl of wisdom I took from Larry Wall seemed to be counter to the culture I experienced looking in from the outside. That always confused me a bit about Perl.

And that was, paraphrased: make the way you want something to be used be the most concise way to use it and make the more obscure features be wordy.

This could have been the backbone of an entire community but they diminished it to code golf.

Re: Perl's decline was cultural

#76
post #29
post #4

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.

Perl is a great language, the way Scala and Haskell are great: as openly experimental languages, they tried interesting, unorthodox approaches, with varied success. "More than one way to do it" is Perl's motto, because of its audacious experimentation ethos, I'd say. Perl is not that good a language though for practical purposes. The same way, a breadboard contraption is not what you want to ship as your hardware pro…

In a similar vein, as the industry matured, we went from having teams of wizards building products, to teams of "good-enough" developers, interchangeable, easy to onboard. Perl culture was too much about craft-mastery which ended up being at odds with most corporate cultures.

Unfortunately, as a former Perl dev, it makes a lot of other environments feel bland. Often more productive yes, but bland nonetheless. Of the newer languages, Nim does have that non-bland feel. Whether it ends up with significant adoption when Rust and Golang are well established is a different story.

Re: Perl's decline was cultural

#77
post #44

Earlier quoted context omitted.

Python 3 was a disaster and enterprises were still undertaking pointless 2->3 upgrade projects 10 years later

It was annoying but if it hadn't happened Python would still be struggling with basic things like Unicode. Organizations struggled with it but they struggle with basically every breaking change. I was on the tooling team that helped an organization handle the transition of about 5 million lines of data science code from python 2.7 to 3.2. We also had to handle other breaking changes like airflow upgrades, spark 2->3,…

> It was annoying but if it hadn't happened Python would still be struggling with basic things like Unicode.

They should've just used Python 2's strings as UTF-8. No need to break every existing program, just deprecate and discourage the old Python Unicode type. The new Unicode type (Python 3's string) is a complicated mess, and anyone who thinks it is simple and clean isn't aware of what's going on under the hood.

Having your strings be a simple array of bytes, which might be UTF-8 or WTF-8, seems to be working out pretty well for Go.

Re: Perl's decline was cultural

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

Re: Perl's decline was cultural

#80
post #44

Earlier quoted context omitted.

Python 3 was a disaster and enterprises were still undertaking pointless 2->3 upgrade projects 10 years later

It was annoying but if it hadn't happened Python would still be struggling with basic things like Unicode. Organizations struggled with it but they struggle with basically every breaking change. I was on the tooling team that helped an organization handle the transition of about 5 million lines of data science code from python 2.7 to 3.2. We also had to handle other breaking changes like airflow upgrades, spark 2->3,…

With the benefit of hindsight, though, Python 3 could have been done as a non-breaking upgrade.

Imagine if the same interpreter supported both Python 3 and Python 2. Python 3 code could import a Python 2 module, or vice versa. Codebases could migrate somewhat more incrementally. Python 2 code's idea of a "string" would be bytes, and python 3's idea of a "string" would be unicode, but both can speak the other's language, they just have different names for things, so you can migrate.

Post reply on HN