Perl Steering Council lays out a backwards compatible future for Perl 7
(2022/05/26)
- Reference: 1653577605
- News link: https://www.theregister.co.uk/2022/05/26/perl_v7/
- Source link:
The much-anticipated Perl 7 continues to twinkle in the distance although the final release of 5.36.0 is "just around the corner", according to the Perl Steering Council.
Well into its fourth decade, the fortunes of Perl have ebbed and flowed over the years. Things [1]came to a head last year, with the departure of former "pumpking" Sawyer X, following what he described as community "hostility."
Part of the issue stemmed from the planned version 7 release, a key element of which, according to a [2]post by the steering council "was to significantly reduce the boilerplate needed at the top of your code, by enabling a lot of widely used modules / pragmas."
[3]
It all sounds wonderful, but the price would have been the breaking of some backwards compatibility, meaning that some code targeting earlier versions of the programming language would have needed changing.
[4]
[5]
"This prompted [6]a lot of heated discussions ," said the council. "Some thought this was a great idea, and some thought it a terrible idea to throw away one of Perl's key strengths."
[7]Key Perl Core developer quits, says he was bullied for daring to suggest programming language contained 'cruft'
[8]Mozilla founder blasts browser maker for accepting 'planet incinerating' cryptocurrency donations
[9]PHP Foundation formed to fund core developers, vows to pay 'market salaries'
[10]Perl Foundation faces more departures after pausing Community Affairs Team
It has been a trying year for Perl, with [11]permabans turning into year-long lock-outs for "unacceptable behavior" among other events distracting the community from the business of what to do about the proposed version 7.
Last night's post clarifies things. There might be a v7 at some undefined point in the future, once there are enough new features to justify a new baseline. It will, however, be backwards compatible with Perl 5 by default.
But there are caveats. Code must be "sensibly written" according to the council, and it noted there is always the danger of something like a fix for a security bug breaking backwards compatibility. Also, and doubtless with an eye on what has already been cannibalized by the likes of PHP and Python, they expressed a desire to increase the rate at which new features are introduced and encourage their adoption.
[12]
At time of writing the third release candidate of Perl 5.36 was available, but the final release was not out yet. The post from the Perl Steering Council does much to clarify the future and answer the question, as it put it, "What happened to Perl 7?" ®
Get our [13]Tech Resources
[1] https://www.theregister.com/2021/04/13/perl_dev_quits/
[2] http://blogs.perl.org/users/perl_steering_council/2022/05/what-happened-to-perl-7.html
[3] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/devops&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=2&c=2Yo@kHS0tJjimOozgq9gViAAAAAw&t=ct%3Dns%26unitnum%3D2%26raptor%3Dcondor%26pos%3Dtop%26test%3D0
[4] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/devops&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44Yo@kHS0tJjimOozgq9gViAAAAAw&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0
[5] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/devops&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33Yo@kHS0tJjimOozgq9gViAAAAAw&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0
[6] https://gist.github.com/wchristian/4e1bcdb761f20985b0a5c97a423a4fc6#file-__sawyer-txt
[7] https://www.theregister.com/2021/04/13/perl_dev_quits/
[8] https://www.theregister.com/2022/01/05/mozilla_accepts_cryptocurrency/
[9] https://www.theregister.com/2021/11/23/php_foundation_formed_to_fund/
[10] https://www.theregister.com/2021/08/13/perl_resignations/
[11] https://www.theregister.com/2021/05/07/perl_permaban/
[12] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/devops&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44Yo@kHS0tJjimOozgq9gViAAAAAw&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0
[13] https://whitepapers.theregister.com/
Well into its fourth decade, the fortunes of Perl have ebbed and flowed over the years. Things [1]came to a head last year, with the departure of former "pumpking" Sawyer X, following what he described as community "hostility."
Part of the issue stemmed from the planned version 7 release, a key element of which, according to a [2]post by the steering council "was to significantly reduce the boilerplate needed at the top of your code, by enabling a lot of widely used modules / pragmas."
[3]
It all sounds wonderful, but the price would have been the breaking of some backwards compatibility, meaning that some code targeting earlier versions of the programming language would have needed changing.
[4]
[5]
"This prompted [6]a lot of heated discussions ," said the council. "Some thought this was a great idea, and some thought it a terrible idea to throw away one of Perl's key strengths."
[7]Key Perl Core developer quits, says he was bullied for daring to suggest programming language contained 'cruft'
[8]Mozilla founder blasts browser maker for accepting 'planet incinerating' cryptocurrency donations
[9]PHP Foundation formed to fund core developers, vows to pay 'market salaries'
[10]Perl Foundation faces more departures after pausing Community Affairs Team
It has been a trying year for Perl, with [11]permabans turning into year-long lock-outs for "unacceptable behavior" among other events distracting the community from the business of what to do about the proposed version 7.
Last night's post clarifies things. There might be a v7 at some undefined point in the future, once there are enough new features to justify a new baseline. It will, however, be backwards compatible with Perl 5 by default.
But there are caveats. Code must be "sensibly written" according to the council, and it noted there is always the danger of something like a fix for a security bug breaking backwards compatibility. Also, and doubtless with an eye on what has already been cannibalized by the likes of PHP and Python, they expressed a desire to increase the rate at which new features are introduced and encourage their adoption.
[12]
At time of writing the third release candidate of Perl 5.36 was available, but the final release was not out yet. The post from the Perl Steering Council does much to clarify the future and answer the question, as it put it, "What happened to Perl 7?" ®
Get our [13]Tech Resources
[1] https://www.theregister.com/2021/04/13/perl_dev_quits/
[2] http://blogs.perl.org/users/perl_steering_council/2022/05/what-happened-to-perl-7.html
[3] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/devops&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=2&c=2Yo@kHS0tJjimOozgq9gViAAAAAw&t=ct%3Dns%26unitnum%3D2%26raptor%3Dcondor%26pos%3Dtop%26test%3D0
[4] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/devops&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44Yo@kHS0tJjimOozgq9gViAAAAAw&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0
[5] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/devops&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33Yo@kHS0tJjimOozgq9gViAAAAAw&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0
[6] https://gist.github.com/wchristian/4e1bcdb761f20985b0a5c97a423a4fc6#file-__sawyer-txt
[7] https://www.theregister.com/2021/04/13/perl_dev_quits/
[8] https://www.theregister.com/2022/01/05/mozilla_accepts_cryptocurrency/
[9] https://www.theregister.com/2021/11/23/php_foundation_formed_to_fund/
[10] https://www.theregister.com/2021/08/13/perl_resignations/
[11] https://www.theregister.com/2021/05/07/perl_permaban/
[12] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/devops&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44Yo@kHS0tJjimOozgq9gViAAAAAw&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0
[13] https://whitepapers.theregister.com/
Backwards compatibility
-> It all sounds wonderful, but the price would have been the breaking of some backwards compatibility
This has been around forever, and I don't care about backwards compatibility 25 years later. I want to avoid doing this with Perl.
#!/usr/bin/perl
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
print("Year according to Perl: $year\n");
$year += 1900;
print("Fixed year: $year\n");
Year according to Perl: 122
Fixed year: 2022
Before you chime in I know that I can do:
use Time::Piece;
my $t = Time::Piece->new();
print $t->year . "\n";
That wasn't my point. My point is localtime(time) has forever been broken in Perl, and the reasons given were 'backwards compatibility'. Move on, Perl.
Then there's the Perl web site. Full of tutorials, some of which do not work. How about DNS? (https://learn.perl.org/examples/dns.html). If I copy and paste that (changing the resolver IP) and run it, do I get some DNS result? No, instead I get:
String found where operator expected at ./dns.pl line 17, near "say "Found an A record: ""
(Do you need to predeclare say?)
syntax error at ./dns.pl line 17, near "say "Found an A record: ""
Execution of ./dns.pl aborted due to compilation errors.
It's not good.