Seems like the Perl community is getting pretty lost. My team at work is still using Perl 5 for some pretty non-trivial applications, but there is no plan to ever change versions. Either keep maintaining or rewrite it in another language when we can. I imagine there are others in similar situations?
I think you’re overestimating the cost of the version transition. If your team follows Perl’s best practices, they’re already not using the things that will be phased out. If they update to current Perl 5 versions, they’ll move on to Perl 5 and exhale in relief, not having to declare 10 lines of Modern Perl Boilerplate at the start of every file.
It’s nowhere close to a Huge Language Change. It’s mostly a culture shock, like leont mentions in the post, where the “stability first” mentality that’s been driving Perl for all this years is being phased out in favour of “let’s actually make the new, good features available by default”.
I’m learning Perl5 (after a brief glimpse at Perl6/Rakudo and saying to myself that Perl6 does not seem to have rooted enough).
As I’m learning on my own, what cultural shock are you referring to ? I add to my learning bits of Perl, just ad hoc, at the moments I need some improvement, and that makes me learn something. (For example I’m not there yet to use what seems strikingly similar to OOP in Perl)
Is it the fact of always having use strict;use warnings; and always using my for variables? Or are there deeper coding rules ? In such case, what is the name, or a name, for this group of recommendations ?
the “stability first” mentality that’s been driving Perl for all this years is being phased out in favour of “let’s actually make the new, good features available by default”
Perl5’s MO, for as long as I remember was “we never break old code, unless there is a really good reason. Everything should be backwards compatible by default”. It was not all roses, but the maintainers have stuck to it, for better or worse – a lot of progress was inhibited because of it. If you’re new to Perl you may have noticed that a lot of good features (like subroutine signatures) are locked out behind use experimental or similar: that’s because Perl really tries to not break old code. But because of this, the experience for a new programmer is really substandard – unless you know what to enable, the Perl you write is the Perl from roughly 20 years ago – hardly the best Perl there is.
If you’re new here, you’re the main benefactor of this culture shock – good for you, and welcome to the community :) The change will mostly hurt the “I have a Perl code from 2004 that I haven’t updated since” people – and they often don’t update their Perls anyway.
Perl 7 is still very far from workplace adoption, considering the project itself is still figuring it out. Its necessity is definitely obvious though. Perl is an awesome idea that should definitely keep being explored, nothing else is quite like it, so I think Perl 7 is a step in the right direction, they just need to figure out where to leave the footprints.
First build the new thing, then push for adoption. One step at a time.
Seems like the Perl community is getting pretty lost. My team at work is still using Perl 5 for some pretty non-trivial applications, but there is no plan to ever change versions. Either keep maintaining or rewrite it in another language when we can. I imagine there are others in similar situations?
I think you’re overestimating the cost of the version transition. If your team follows Perl’s best practices, they’re already not using the things that will be phased out. If they update to current Perl 5 versions, they’ll move on to Perl 5 and exhale in relief, not having to declare 10 lines of Modern Perl Boilerplate at the start of every file.
It’s nowhere close to a Huge Language Change. It’s mostly a culture shock, like leont mentions in the post, where the “stability first” mentality that’s been driving Perl for all this years is being phased out in favour of “let’s actually make the new, good features available by default”.
I’m learning Perl5 (after a brief glimpse at Perl6/Rakudo and saying to myself that Perl6 does not seem to have rooted enough).
As I’m learning on my own, what cultural shock are you referring to ? I add to my learning bits of Perl, just ad hoc, at the moments I need some improvement, and that makes me learn something. (For example I’m not there yet to use what seems strikingly similar to OOP in Perl)
Is it the fact of always having
use strict;
use warnings;
and always usingmy
for variables? Or are there deeper coding rules ? In such case, what is the name, or a name, for this group of recommendations ?Like I mentioned in my post:
Perl5’s MO, for as long as I remember was “we never break old code, unless there is a really good reason. Everything should be backwards compatible by default”. It was not all roses, but the maintainers have stuck to it, for better or worse – a lot of progress was inhibited because of it. If you’re new to Perl you may have noticed that a lot of good features (like subroutine signatures) are locked out behind
use experimental
or similar: that’s because Perl really tries to not break old code. But because of this, the experience for a new programmer is really substandard – unless you know what to enable, the Perl you write is the Perl from roughly 20 years ago – hardly the best Perl there is.If you’re new here, you’re the main benefactor of this culture shock – good for you, and welcome to the community :) The change will mostly hurt the “I have a Perl code from 2004 that I haven’t updated since” people – and they often don’t update their Perls anyway.
Take a look at this module: https://metacpan.org/pod/Modern::Perl
The associated book: http://modernperlbooks.com/books/modern_perl_2014/
Perl 7 is still very far from workplace adoption, considering the project itself is still figuring it out. Its necessity is definitely obvious though. Perl is an awesome idea that should definitely keep being explored, nothing else is quite like it, so I think Perl 7 is a step in the right direction, they just need to figure out where to leave the footprints.
First build the new thing, then push for adoption. One step at a time.