I am feeling a different end of the Perl elephant. To me Perl becoming unpopular and not "improving" has meant that code I wrote in 2003 still runs today in 2024. And nearly all the code I write now will run on that perl interpreter from 2003. That kind of multi-decade stability is exactly what a system management (or personal codebase) language needs. It's an amazing boon for people who want things to just work and keep working.
It isn't hamstrung; it's a language that has stayed itself. If you want to run a perl script you just use your system perl (and it doesn't matter how old or new the OS is). If you want to run a python script you have to set up a container then use a package manager to setup an entire dedicated python and libs just for that script. Python may have acquired many nice features and refactorings but it stopped being a dependable shell language.
It traded run time complexity for write time ease; it's that way with all popular languages eventually. Not being popular after the Perl 6/Raku debacle is the best thing that could've happened.
Absolutely perl's backward compatibility is amazing and makes other languages look like a joke. But it is arguably holding the language back from changing in any meaningful way.
> To me Perl becoming unpopular and not "improving" has meant that code I wrote in 2003 still runs today in 2024. And nearly all the code I write now will run on that perl interpreter from 2003. That kind of multi-decade stability is exactly what a system management (or personal codebase) language needs. It's an amazing boon for people who want things to just work and keep working.
This does kind of remind me of the Python 2/3 and Java 8 vs newer versions situation - where both the older and more stable version is maintained, but most of the development effort moves over to the new version. The good news is that for a while you get a really stable platform, but the bad news is that eventually it'll get deprecated and you won't find many new libraries and such developed for the old version anymore.
While something like Perl and Pascal (especially with Lazarus; a really good combo for building GUI apps and still an okay language, except the ecosystem is limited) are unlikely to disappear anytime soon per se, the flip side is that some of the existing libraries and frameworks might fall out of being maintained, or even entire projects be abandoned, like BackupPC, for example, with nobody really stepping up to keep them alive: https://backuppc.github.io/backuppc/
>A group of blind men heard that a strange animal, called an elephant, had been brought to the town, but none of them were aware of its shape and form. Out of curiosity, they said: "We must inspect and know it by touch, of which we are capable". So, they sought it out, and when they found it they groped about it. The first person, whose hand landed on the trunk, said, "This being is like a thick snake". For another one whose hand reached its ear, it seemed like a kind of fan. As for another person, whose hand was upon its leg, said, the elephant is a pillar like a tree-trunk. The blind man who placed his hand upon its side said the elephant, "is a wall". Another who felt its tail, described it as a rope. The last felt its tusk, stating the elephant is that which is hard, smooth and like a spear.
Years ago, someone would say "It is quite easy to write Python code that works just with all Python versions since 2.6. Easier than writing any Perl code..."
Perl requires a 'use version' statement otherwise your code can't use anything added since ~15 years ago. Python has no such system, so it's hard to know if the code is going to work on any given version of python. The core modules also seem to change much more often than Perl's.
It isn't hamstrung; it's a language that has stayed itself. If you want to run a perl script you just use your system perl (and it doesn't matter how old or new the OS is). If you want to run a python script you have to set up a container then use a package manager to setup an entire dedicated python and libs just for that script. Python may have acquired many nice features and refactorings but it stopped being a dependable shell language.
It traded run time complexity for write time ease; it's that way with all popular languages eventually. Not being popular after the Perl 6/Raku debacle is the best thing that could've happened.