Perl gets new releases on a yearly cadence. We're now at 5.36 IIRC. A far cry from 5.8 or even 5.10.
The new releases usually come with bug fixes, speed-ups, additions to the core language, optional syntax features, etc.
The only way one gets to use an "old" interpreter is if they're stuck on an old OS release (i.e. RHEL?) and/or they don't build their own version and use the "system" Perl.
There's quite a bit of legacy running in our industry. Most of it is not even Perl. Think Java, Jquery, and even Python(2.x) these days.
Most shops don't have the budgets for total rewrites, or even partial and gradual rewrites.
The way old things die, is that new projects don't get started in those languages. To that end, Perl is something of the past already. It is still a very useful technology for a lot of Unixy work on adhoc tasks. But I doubt people learn Perl the way, they learn Python these days. Older people(including me), call upon Perl for lots of work even till date. This is similar to how people continue to use vim/emacs despite things like vscode. There is always going to be a audience for these tools. But the crowd moves on.
The Perl interpreter has been regular updated and improved. There's a new release of Perl every six months, and the libraries on CPAN provide access to various other kinds of technology and tooling.
Python (or at least, the implementation used 99% of the time in the real world) doesn’t have a JIT either, so this property isn’t limited to niche, dying languages.
Well yeah compare to Python - Python has multiple alternative implementations, an active academic and industrial research community coming up with new ways to improve performance and add tooling, including revolutionary work such as meta-tracing, has new GC work, has a couple of JITs depending on what tradeoffs you want, new explorations into specialising interpretation.
Perl doesn't seem to have anyone making this kind of effort? You're stuck with the tech from decades ago.
The implementation is open source and not owned by a for-profit company that could decide to kill it off in the future.
This is a good thing, because it means that we don't have to worry about a program running on one implementation vs another.
Also, one of the things that Perl is great for (unlike many other scripting languages) is backwards compatibility. A program written in the 1990s for Perl 5.004 will probably run with minimal modifications on Perl v5.36.
> Doesn't even have a basic JIT does it? Still using a 90s-era basic interpreter and GC architecture.
So?
> And there's only one implementation. Doesn't seem very healthy.
LOL, okay, this is just hunting for complaints. I could list a half dozen languages that don't have multiple implementations (Rust, Java, Scala, C#, PHP, Go) and yet I've never seen anyone raise that as a concern.
> I could list a half dozen languages that don't have multiple implementations (Rust, Java, Scala, C#, PHP, Go) and yet I've never seen anyone raise that as a concern.
That's because you're misinformed! These languages all have multiple implementations (Scala's is just multiple backends), so yeah people don't complain about it.
But hey, why not, I'll give you that one (tbh, I knew including Java on that list was a bit of a stretch).
Care to try with any of the others?
Wanna try to convince me, next, that HHVM qualifies as a reimplementation of PHP despite no one outside of Facebook using it?
But you know what, no, I have a different question: Why does this actually matter? You've positioned this as some sort of objective downside to Perl without explaining why anyone should care. So why don't we start there, rather than my taking your objection as being somehow relevant.
Please, explain to me: Why should I care that Perl (like so many other languages) only has one real implementation?
Because it fosters innovation. Perl isn't innovating as an implementation. Why's that bad? Because you don't get better performance or capabilities, and you're spending more to run it, and spending more to manage it.
> Care to try with any of the others?
For example Mono is a full clean-room implementation of .NET including C#.
> tbh, I knew including Java on that list was a bit of a stretch
This is partially wrong. Perl compiles the program to its own internal representation in one go, which is then run in a VM. It also uses reference counting, it does not have a GC.