Hacker News new | ask | show | jobs
by mfontani 1514 days ago
> They keep eyeing goals like turning `strict` on by default

Not unless you declare a version. Old style perl will continue to work as before.

If you declare something like:

    use v5.40;
... then, and only then, you'll get strict/warnings/whatever turned on.

Your 20 year old script can continue to run just fine.

1 comments

That doesn't really capture what's been happening. If feature bundles are still today's plan, it's only because the multiple attempts to get strict on by default have so far all been defeated. They are still pushing forward adding options to disable features like indirect calls, multidimensional hashes, bareword filehandles, etc. And you can bet that at some point they will revive the idea of moving to Perl7/8/9 and permanently remove those things as they go.

Some--not all--of the people working on perl really want so-called "cruft" to disappear. I'm not a fan of that attitude for such an old language with such a rich history of backwards-compatibility, and I definitely don't think it's going to accomplish some kind of perl renaissance. I think it would be better to double down on what makes perl unique. When I watch Signes giving a talk like https://www.youtube.com/watch?v=FlGpiS39NMY where he shakes his head at variables like `$;` or `$,` (29:20 in the video) ... it looks like the leaders of perl hate how strange it is. That worries people like me, who love perl _because_ of its quirkiness, not in spite of it. Surely people who want something more consistent have moved to Ruby long ago.

> They are still pushing forward adding options to disable features like indirect calls, multidimensional hashes, bareword filehandles, etc.

Personally, so long as all that stuff's behind a feature bundle I'm all in favour of it.

A little nitpick: it's not about "multidimensional hashes", but rather "multidimensional array emulation". Steer clear of it, if you can.

I personally don't mind using variables like $; or whatever. Some prefer to "use English" and use longer variables name for the same effect. More power to them.

I just wrap the call with the proper "## no critic (...)" and off I go.

Well, there's certainly a deprecation cycle in play, and some things may be on their way out that I would rather see kept around (e.g. they seem to have given up on getting the case statement-- given/when-- working: it's tough to do it right without built-in types), but seriously you seem to be behind-the-times on how the project is being managed. If they implement a version 7.0 scheme again, I guarantee they'll do it without breakage: you'll need to say "use v7;" to turn it on.

I have a feeling you're reading Richardo Signes wrong, by the way-- he likes to play up what a negative kind-of-guy he is, and makes critical remarks about the state-of-perl in public that some people take a little too seriously. Perl-haters gotta hate, and they really loved to link to his talk with the title about how perl is an "Ongoing Disaster" or some such.

Hopefully you are right about all of this. I don't follow it closely, but when I periodically check in on nntp.perl.org I get the feeling they have no idea what to do about v7 anymore. Since they have to say _something_, currently they say they have no concrete plans but won't change defaults. We will see.

Feature bundles don't bother me, but if I read between the lines (possibly too much), comments they make seem like they are still looking for an opening to remove some of these features entirely. I hope I'm wrong.

(I remember the Ongoing Disaster talk, I personally thought it was fun)

last time, I saw they say perl 7 will waiting for some features finishing, e.g., new OOP system in core