"Oh, it took too long to update Perl and now Perl is dead" is true.
"Raku is an interesting new language with some neat features, and excels at this particular type of problem" can also be true. But nobody can hear this message while they keep thinking about Perl.
"Raku is an interesting new language with some neat features..." will be met with "Oh, you mean Perl 6? lol."
If Perl is dead, renaming the last version isn't going to change anything.
It doesn't mean "no developers or support" because that's at least as true of newly invented languages that HN loves to get excited about. CPAN is a thing and has been for decades.
It doesn't mean "doesn't work, not delivered yet" because there it is.
It doesn't mean "no exciting features" because that's not true either.
It seems to be more of a condemnation than a description. I suspect it's really just a synonym for "passé, uncool, brings back memories of the 1990s I was trying to forget".
It's the same kind of "dead" as Latin: lots of folks actively use it, but meeting someone that does is pretty dang unusual unless you work for the Catholic church, in which case "everyone still uses it, what's dead about it?"
Perl6, on the other hand, is effectively another language altogether, and I hope they rename it completely to stop the confusion.
For example, if you find a page suggesting you run 'perl -MCPAN -e shell', and you try using that, you'll probably have a very bad time. Watch out for it trying to upgrade perl itself! There are newer, saner and nicer ways to access CPAN and install packages.
There's also possible conflicts between CPAN and your distribution's own packaged perl modules, but that's a common problem with any software you install yourself rather than through the distro's packaging scheme.
Both have huge problems, perl5 being effectively dead and the most hated language amongst devs. (I'm still trying to save it via cperl though).
And Perl 6 interesting (I was the parrot backend maintainer, until they ditched it), but with no significant future.
Maybe add a few default warnings for using "ugly" features - maybe just in a linter - perhaps not affecting the runtime at all?
One of TypeScript's strengths is that it is JavaScript, but you can configure tslint to help detect certain "bad" JavaScript. Or you can switch on stricter checks (and TypeScript could be just a name for a default list of strict error checks, depending on how you use it!).
JavaScript actually copied its `‘use strict’` syntax from Perl's `use strict;` which in Perl is using a pragma, not a magical string literal that reconfigures the compiler.
You want types? Several systems exist, but the leading implementation is Type::Tiny.
A big part of Perl culture in the late 2000s and early 2010s was focused around rooting out horrible old practices and tutorials, defining good practices, and getting tooling to help. Perl Best Practices came out of in 2005. Some effort to describe these tools and techniques as “modern Perl” followed—check out the inaugural entry of the Modern Perl Books blog from 2009. http://www.modernperlbooks.com/mt/2009/01/
Since Perl5 did what you’re asking for, maybe you should check it out and see what Perl 5 looks like in 2019.
For me it's the top goal, but I'm still only at 20%.
Calling this perl7 would have been a huge joke. Renaming the thing also doesn't help with the personnel who is doing the desastrous decisions they did in the last decade. Management need to change, not the name.
Except that it hasn't. What other language does everything P6 does? (Or even tries, let alone does it as well or better.) What language does "most" or "a lot" of it? To be honest, I would have expected that after a couple of decades, there would be other languages that stole a lot of P6's thunder, but if there is anything remotely comparable, I haven't heard of it.
P6 is an surprisingly ambitious project. (I think even surprisingly so to its creators.) Apparently it just takes this long to do something that big and powerful.
Why would any language do what Perl 6 does? Languages do what they need and typically do at least some things Perl 6 doesn't do and at least some things do better than Perl 6 does them. Sometimes such things are much more important to people than everything Perl 6 does.
If you need real rational number math and are doing a lot of text processing for example, there might not be a better alternative.
Possibly the latest thing that perl 6 does not do (and most languages don't do) is heterogenous computing (GPU/CPU, etc). But perl 6 strength is that it can drop into a new language DSL inline without issue so if any language will just freely mix GPGPU and normal CPU compute in a nice way it could be perl 6. Wonder if anyone in the community is working on that...
The "one tool to do all of the sysadmin's hacks" isn't much of a thing. Instead of the monolithic system and all of its services, we're moving to smaller and smaller systems in smaller and smaller containers.
As I've gotten older, the cost of going back and trying to read the old code has gotten more and more mentally expensive. Code that doesn't provide a reasonable way (as in "way that can be reasoned about") to be read gets slowly replaced by that which I can get back into the mindset of when I wrote it quicker.
Perl 6 with its myriad of operators is unreasonable. What does ⊖ or ∅ mean? Or −= (note the unicode U+2212 minus sign vs the traditional minus sign - are they different? edit: ok, I can't even add the unicode 'atom' symbol here) or »=«? How do you even type those?
I enjoyed perl 5. I'll still code in it for a quick script... but I'm finding myself leaning more and more to groovy for the scripts in part because I've been writing Java for the two decades rather than perl.
I don't need the abilities that perl 6 provides and I wouldn't want my coworkers developing a DSL.
Perl 6 brings a lot of interesting ideas to the table... but I don't want them in my code base.
Perl 6 is actually a joy to code in, as weird as that sounds. It's fairly straightforward to begin using, but the deeper I go the more I see the huge benefit to its long development which was mainly in spec-writing. The two killer features (for my work, at least) have been the grammars (a sort of regex on steroids that is actually readable) and the multiparadigm approach. I mean you can do functional coding with Javascript sort of, but you end up with a lot of extra line noise compared to P6 where it was contempalted from the beginning (and multisubs clear things up even more). All the typical paradigms are integrated fairly seamlessly to let you choose the best tool for the job for whatever block of coding you're working on.
multi sub eat-pie( Pie slice where *.is-custard ) { ... }
multi sub eat-pie( Pie slice where *.is-fruit ) { ... }
multi sub eat-pie( Pie slice ) { ... }
eat-pie( a-slice-of-pie );
That’s just awesome.There are two programming languages that I learned in their first 5 years. They both ended up being languages I dislike. A language that takes time to mature and isn't the pop language of the week sounds terrific to me.
Good languages stay in use for decades. If I miss the first 5-10 years of a new programming language, either I'll skip its turbulent youth and still be around for most of its life, or it'll turn out to have been a flash-in-the-pan language and I'll have missed nothing.
If you want to be fancy you can run the JS implementation of the Rakudo compiler in browser targeting JS https://perl6.github.io/6pad/#b66f6f0eb46f296b8a285c45a152f1...
Perl6 is a big language, but has a lot of power and beauty.
Today, while those two things are still slow enough in Perl 6 I wouldn't make Perl 6 my primary language for doing them, I can't even remember the last time I wrote a script in Perl 6 and it was too slow to be usable.
Mind, I think Perl 5 is still faster on things Perl 5 was super-optimized for -- regex processing, for instance. But on a normal week, I throw together a couple of quick Perl 6 scripts to get stuff done. It's usually a joy to program in and execution speed just hasn't been a problem for me.
>Perl 6 performance has now gotten to the point where it's often comparable to Perl 5 or surpasses it. It still needs some work in this area, but the work is clear, the goals are straightforward, and Perl 6 is going to easily oustrip Perl 5 in terms of performance.
I hope it's true. Perl was a great language that was ahead of it's time. Eg, most complaints about Perl boil down to needing an equivalent of PEP8 and a linter.
Yea... libraries are always good (especially for math and analysis), but I find that powerful languages need far fewer libraries to get things done. APL can do something with a few characters that might commonly be implemented as a lengthy function or library in some languages.
Windows Powershell can surprisingly do a lot of what Perl 6 can do and people mostly understand the limitations. You can automate processes, build your own DSL, have full OO support, full .NET interop, concurrency, you can pipe data around kind of like with FP...etc. It doesn't have some of the more perlish features though.
I wonder if the JIT will interfere with scripts where startup time is not acceptable?
But if you actually wanted to get the job done idiomatically, the code is one short, simple line of Perl 6. The performance, while admittedly slower, is within the same order of magnitude as your Perl 5 version.
To me, this is the magic of Perl 6. Sure, if you want to use 16 lines of loopy integer-crunching code to calculate the first N primes and you care about speed, Perl 6 should not be your choice. On the other hand, if you'd prefer to say
(1..$N).grep(*.is-prime)
and get the answer back in reasonable speed, Perl 6 is perfect.and yet, here you are :D
It is probably more reasonable to block a comment which appears to have nothing of value (except in proclaiming its own ignorance) from our collective psyches.
Perl6 was promised. Then it never happened. It's now an almost quarter century later. The world has moved on. Taking that long for a single version update in a language is not reasonable. I loved Perl. I still love Perl5. But I've moved on and have 100% blocked Perl6 from my psyche and list of expectations. No one I know uses it. I am not excited by it. I dont need it. And I don't care to hear these discussions about minutia related to it. It's a debacle and a case study in the failure of what was a beautifully ugly practical performant language.