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

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: