Submitted via IRC for TheMightyBuzzard
This morning at The Perl Conference in the Cloud, Sawyer X announced that Perl has a new plan moving forward. Work on Perl 7 is already underway, but it's not going to be a huge change in code or syntax. It's Perl 5 with modern defaults and it sets the stage for bigger changes later. My latest book Preparing for Perl 7 goes into much more detail.
Perl 7.0 is going to be v5.32 but with different, saner, more modern defaults. You won't have to enable most of the things you are already doing because they are enabled for you. The major version jump sets the boundary between how we have been doing things and what we can do in the future.
Remember, Perl was the "Do what I mean" language where the defaults were probably what you wanted to do. In Perl 4 and the early days of Perl 5, that was easy. But, it's been a couple of decades and the world is more complicated now. We kept adding pragmas, but with Perl's commitment to backward compatibility, we can't change the default settings. Now we're back to the old days of C where we have to include lots of boilerplate before we start doing something:
[...]
This is slightly better with v5.12 and later because we get strict for free by using setting a minimum version:
[...]
Perl 7 is a chance to make some of these the default even without specifying the version. Perl 5 still has Perl 5's extreme backward compatibility behavior, but Perl 7 gets modern practice with minimal historical baggage.
Source: https://www.perl.com/article/announcing-perl-7/
(Score: 5, Interesting) by Anonymous Coward on Monday June 29 2020, @12:39PM (10 children)
The most likely thing that happens to Perl in the next 30 years is that it follows the footsteps of COBOL. People completely stop using it for new projects, but there are still tens of millions of lines of legacy code in use and requiring maintenance.
But this is the first step of what could be a Perl revitalization. All of the features added to the Perl 5.x minor releases since 2002 have been placed behind optional experimental flags placed at the top of each source file. That was great for backwards compatibility, but bad for evolving the language and also more complicated for novices learning the language. With Perl 7.0, a curated list of those experimental flags from the 5.x minor releases is the default, and a new flag is introduced to restore the previous 5.x default.
Three things could move Perl forward:
Maybe with those changes Perl 8 or 9 could be back on even footing with Python, PHP, and Ruby. I think right now it's behind. Separately, Perl6/Raku is totally awesome and I highly recommend it for anyone who wants to play with a neat language - but industry adoption is still low, so don't expect Raku expertise to get you a job and don't wedged it into some project at work and then force a colleague to maintain or rewrite it after you leave. (I raved about Raku up-thread, https://soylentnews.org/comments.pl?noupdate=1&sid=38229&page=1&cid=1014013#commentwrap [soylentnews.org] )
(Score: 5, Insightful) by The Mighty Buzzard on Monday June 29 2020, @01:31PM (2 children)
You wish. Perl, unlike COBOL, still has things that it is the absolute best language for. Even for brand new projects. It doesn't matter if it's the most all-around useful language or not, so long as it's the best at what it was made for. And it still is.
My rights don't end where your fear begins.
(Score: 3, Interesting) by gawdonblue on Tuesday June 30 2020, @07:36AM (1 child)
Hey, COBOL is still the best language for what it was invented for - financial systems. Java is more trendy for this, but you end up with a crap-ton more code and added libraries to achieve what COBOL could do natively, and you have no chance without an IDE holding your hand.
It's weird, when I was first learning to program in the early 80s they used COBOL as an example of a wordy language with too much boilerplate cruft. Then someone invented Java. Ha!
(Score: 0) by Anonymous Coward on Tuesday June 30 2020, @04:01PM
static.public.Integer.add(1)
(Score: 1, Insightful) by Anonymous Coward on Monday June 29 2020, @01:58PM (6 children)
Some time in the past, we learned "scary things" like C, C++, Perl, assembly, etc. and thought nothing about it. Those tools were to HELP us do things that we needed done, is all. Is the new generation born damaged in the brain, or is the braindamage dealt them by their early education?
(Score: 2, Insightful) by Anonymous Coward on Monday June 29 2020, @02:51PM (5 children)
For the record, I prefer Perl to Python/PHP/Ruby, and yes I'm familiar with all four.
That's the reality. "Perl is spectacular as-is, don't change a thing." -- that guarantees that Perl becomes COBOL 2. Perl's share of the market is already a tiny fraction of what it was 15 or 20 years ago, continuing with the status quo makes the problem worse.
(Score: 2, Interesting) by Anonymous Coward on Monday June 29 2020, @07:45PM (1 child)
Obviously, the easier accomplishing the tasks you need accomplished. What else?
For example, C certainly can accomplish any task that Perl can; Perl itself is written in C and Perl. However, I learned Perl too as it makes complicated text processing tasks far easier.
CPAN. No abuse of whitespace. Two or three times less writing to do any given thing.
Everything is far easier to learn than C++. And it was made that way incrementally, precisely through NOT "continuing with the status quo".
Market shares are gained by use of marketing tools, not by any objective thing. Perl did not have a deep-pocket corp backer in the time the deep-pocket corps were divvying up the market; Perl lost.
Community-based project do not have the money to burn on promotion, but promotion is the only thing that matters in the real world. Technical merit means nothing.
(Score: 0) by Anonymous Coward on Tuesday June 30 2020, @06:17PM
That's not the whole story, because Python grabbed a huge share of the market without a corporate backer either. I think Perl lost market share for three reasons:
Perl is still fighting an uphill battle on the first point. The second point is finally resolved now that Raku is separate. I think the third is where there is the most room for progress.
(Score: 2) by The Mighty Buzzard on Monday June 29 2020, @09:14PM (2 children)
1) Suitability to purpose is more important than ease of learning. Which is why AAA games are not written in Java.
2) It's not an either/or situation. Learning only what you need for a job makes you a mediocre investment by a boss. Learning everything you can and being able to use the best tool for the best job makes you a fantastic investment by a boss.
My rights don't end where your fear begins.
(Score: 0) by Anonymous Coward on Tuesday June 30 2020, @05:25AM (1 child)
I'd expect Java would be right at home with games eating GBs of RAM 😈
(Score: 2) by The Mighty Buzzard on Tuesday June 30 2020, @02:44PM
Only if you're talking HelloWorld.jar. If you're talking an awesome game, you're looking at yottabytes.
My rights don't end where your fear begins.