Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Aren't you missing advances in programming language technology (performance, tooling, instrumentation) by sticking with such an old interpreter?


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.


>stuck on an old OS release (i.e. RHEL?) and/or they don't build their own version and use the "system" Perl.

I build my containers and put Perl right in them. Makes the container a little chubbier but no outside dependencies.


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.


No.

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.


Doesn't even have a basic JIT does it? Still using a 90s-era basic interpreter and GC architecture.

And there's only one implementation. Doesn't seem very healthy.


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.


> The implementation is open source and not owned by a for-profit company that could decide to kill it off in the future.

That's the same for almost all languages though? Which major languages aren't open source or are owned by a company?


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


Yeah, no they don't. Show me another implementation of any of those languages and I'll show you a toy no one actually uses.


For example independent Java implementations used in production include OpenJDK, OpenJ9, and SVM.


And the vast majority of people use OpenJDK.

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?


> Why does this actually matter?

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

Sure. Sure.


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.

It is true it doesn't have a JIT, though.


> This is partially wrong.

Which bit was wrong? It has a basic bytecode VM - isn't that the 90s era interpreter tech I was talking about?

> It also uses reference counting, it does not have a GC.

Reference counting is GC.


Same with python. GIL and everything.


It's not - Python has innovation going on into new techniques for interpretation and GC. Perl doesn't have any activity like that at all.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: