Hacker News new | ask | show | jobs
by kamaal 8 hours ago
>>Turns out that Larry (and the team) were much better at language design than project management.

It is true many times to deliver quality products you can't have deadlines. But without a deadline you are never finishing a thing.

Unfortunately for Perl, Larry Wall, and several of its project leads(Patrick Michaud, Audrey Tang) at various times had major health issues. Time moves on, and people have to at times resign entirely from projects due to shifting priorities and personal problems. Parrot VM I guess went through a similar arc.

Other people have moved mountains to get Perl going. But with time people's priorities have entirely moved on. At one time, all Python programmers would do is bad mouth Perl all over the internet, and that never really stopped. Any body who saw a Perl programmer do over a weekend, what they would take a year to do in their language(especially Java and Python)- had a deep rooted seething envy at Perl and Perl programmers. So they went around almost on religious crusade to have Perl gone. This was done entirely to crush competition. They just didn't want other people to wield a power they didn't have. Lisp has had a similar arc of development over the decades.

Perl 5 development being entirely stopped for years further complicated this issue. Eventually as most of the Perl code in many companies bit rotted and died, newer projects were started in Python/Java. And of course Frontend stack entirely moved away to Node/React. We had mobile development of which Perl never was ever a part of.

By the time ML/AI era came into being Python was defacto the language of programming for these kind of tasks.

The best part is now in the LLM era, the whole idea of a programming language itself is pointless.

3 comments

> Any body who saw a Perl programmer do over a weekend, what they would take a year to do in their language(especially Java and Python)- had a deep rooted seething envy at Perl and Perl programmers. So they went around almost on religious crusade to have Perl gone. This was done entirely to crush competition. They just didn't want other people to wield a power they didn't have. Lisp has had a similar arc of development over the decades.

Isn't that the fate of the archetypical loser? To end up on the sidelines thinking "I'm actually the smartest and most powerful, the wider world just isn't capable of appreciating it".

I saw someone recently say something like... they wished contemporary Lisp people put anywhere near as much effort into creating lots of great software with Lisp as they do extolling Lisp.

Have literally seen a 'architect astronaut' crap on Perl in some 2 hour long call, and eventually had his way with getting the management to approve Java. This was mid-2000s

When our team initially budgeted it, 4 guys over 6 months were enough to get this over the finishing line. The java team took over took more than 3 years, and close to 30 people. It was a AbstractClassFactoryFactorySingletonDispatcher mess with spring decorators all over. Which quite honestly was quite ironic because the original case against Perl was it was hard to read.

The java code was easily 30x more verbose, no body at the end knew how to maintain it. It was all about the guy getting to own his own team, promotions, bonuses, raises etc.

Have seen the same story repeat over and over again, everyone knew they wanted Python because they could get to inflate their headcounts.

Its one of things about tech, its not the good tech that wins, its the tech that helps with office politics wins at the end of they day.

After golang came along a lot of these java things too went out of fashion. Curiously enough golang does feel a lot perly to use. And Python has long moved away from its minimalism activism days. To that Python has transformed into the same feature bloat it once accused Perl of.

> Python programmers would [...] bad mouth Perl all over the internet [...]

I am one of those, and I disagree with the moral connotation of that framing.

When you're in the know and give advice to someone who isn't, or when you're the previous generation passing on your lessons learned to the next, then you have two paths. You can either be honest about things that don't/didn't work, so mistakes won't be repeated. Or you can make it seem as if pixie dust covers everything you have expertise in that others don't and everything that your generation did that the next one will never know, so you look good. -- I don't think that the former path is the more morally reprehensible one at all. "Bad mouthing" is the wrong analogy here.

> You can either be honest about things that don't/didn't work, so mistakes won't be repeated.

What things don't work, then? There's a difference between disliking something to the point of personally being incapable of working with it, and something that in itself truly does not work. My impression is that the saying "Perl makes easy things easy and hard things possible" really does hold up.

>>My impression is that the saying "Perl makes easy things easy and hard things possible" really does hold up.

People who haven't used Perl to its full power have little how idea just how magical a language it was/is.

Have seen people's jaws on the floor watch Perl guys do automation they always thought was impossible, even more so delivered in such record times. CPAN itself as an idea was way ahead of its time.

Around COVID I had a project delivered, in a week. I basically wrote a Perl script that wrote Apache Pig scripts(Basically using Perl like a macro facility, and Perl is great at anything text). It was a massive project which otherwise would have taken more than a year to deliver. When I did show the team what I had done, had them in total awe in the same way people look at Claude Code today. Nevertheless it was the same reaction, when the project got done, they were not comfortable that some programmers could do stuff like this, which seemed alien to the remaining.

I have a belief that proliferation of Java/Python stunted the growth of web dev, and a lot other industries. In some way the last decade was entirely slowed down by adoption of these technologies. If Ruby/Perl were there things would have been way better.

I do love what LLMs are doing to Java and Python today.

Software development was never supposed to be as slow as what Python and Java made it.

> People who haven't used Perl to its full power have little how idea just how magical a language it was/is.

...why would you prefer to reach for the "no true scotsman ...", rather than read in any one of two other places in this thread that you are dealing with fellow scotsmen here?

I can't debate Raku with you, because I don't know any Raku, because, why should I? Life is short. I do know Perl 5, and the only context where a discussion of Raku even makes sense is as an upgrade path for Perl 5. Upgrade path doesn't mean that a program written in Perl 5 should run with unaltered syntax and semantics in Raku and not panic. Providing an upgrade path for Python 2 was one of the primary purposes of Python 3, and they didn't understand it that way either. Upgrade path simply means: Leverage syntax and semantics and mental models already in programmers' minds and change them where necessary to trade off short term pain for long term gain. (But it's less pain than learning a different language altogether with completely different syntax and semantics and mental models).

I can give you a list of grievances I have with Perl 5. Maybe Raku addresses some of those. Maybe it doesn't. I don't know, but also, it doesn't matter. The late arrival of Raku means decades' worth of people using Python and other languages as an upgrade path for Perl 5 instead, so Raku addressing any of those grievances is now closing the barn doors after the horse has bolted. Any Perl 5 codebases still out there are run by people who are so allergic to the idea of having to touch their code, that Raku isn't an option for those folks either.

Having said all of that: Some of my grievances with Perl 5:

* No separate types of bytestrings versus sequences of unicode codepoints. Wherever there's strings in any non-trivially-sized real-word Perl 5 project, there is utter irreversible and irredeemable mojibake. This includes databases backing Perl applications, where they themselves don't have enforcement, so even if you threw away all of your code and started from scratch and just wanted to keep your data, Perl 5 would still haunt you from its grave. -- Having strings not be mojibake is easy as hell in 2026. Perl 5 makes this easy thing impossible, so I really don't share your idea of "make easy things easy"

* No canonical way to do object-orientation. (cf. blessed objects, Moo in different versions, and different conventions around how to use them) -- This stuff should be easy in 2026. Perl makes this easy thing really hard.

* Regexes suck. Their brevity is a nice circus stunt for a computer science audience, but unless you follow very particular patterns for composing them from ergonomically named constants, etc. etc. (which "in the wild" I rarely see), they are very unergonomic.

* Perl one-liners, and RSA decryption written in the form of a camel, make for nice t-shirts, but the same argument as above applies to them. There is no purpose today (but probably never was) in one-linerism because an LLM will knock out 10 lines of Python just as fast as 1 line of Perl, and reading those 10 lines of Python (which is the part that actually still matters) is more ergonomic than reading the Perl one-liner.

* The Perl 5/CPAN ecosystem has been left to rot and is no longer safe for consumption.

* No separate types of bytestrings versus sequences of unicode codepoints.

Fixed in Raku. You either have a string (Str) or a bytestream (Blob).

* Wherever there's strings in any non-trivially-sized real-word Perl 5 project, there is utter irreversible and irredeemable mojibake.

No mojibake in Raku.

* No canonical way to do object-orientation. (cf. blessed objects, Moo in different versions, and different conventions around how to use them) -- This stuff should be easy in 2026. Perl makes this easy thing really hard.

Raku has single object / type system.

* Regexes suck. Their brevity is a nice circus stunt for a computer science audience, but unless you follow very particular patterns for composing them from ergonomically named constants, etc. etc. (which "in the wild" I rarely see), they are very unergonomic.

Raku regexes allow arbitrary whitespace, can contain comments and are composable.

Grammars are collections of tokens / rules / regexes that can be used to build an AST, and actions that can take that AST and build another data structure of it. A grammar is used to parse Raku itself.

Grammars can be subclassed or have rules / regexes mixed in (slangs).

* The Perl 5/CPAN ecosystem has been left to rot and is no longer safe for consumption.

The Raku ecosystem, albeit much smaller, is growing and actively maintained: https://raku.land

yeah to "deep rooted seething envy"

and yes, LLM is moving HLL to a back seat - but not eliminating it entirely - otherwise, why not have your LLM emit ASM (or binary)

fortunately Raku got enough https://stackoverflow.com/questions/tagged/raku and https://rosettacode.org/wiki/Category:Raku that it made the cut to be usable on LLMs

so it is also (just) possible to argue that since the relevance and attention on the HLL you pick choice is diminished, now you can just pick one you like as opposed to sticking with the Python / Go / Rust straightjackets