これからPerl7はどうなっていくのか?
Perl7とは?
2020/6/24 に発表された、Perl5 のメジャーアップデート
ほとんど 5.32 のデフォルトを変更したもの
strict, warnings, utf8 が use しなくても有効になる
サブルーチンシグネチャなどの実験的機能の安定化
混乱を招く間接オブジェクト記法、bareword ファイルハンドル、サブルーチンプロトタイプなどの削除
後方互換性をばっさり切るが、 use compat::perl5; すればPerl5.32 のデフォルトと同じ挙動にする
Perl5 は長期メンテナンスモードに
2月の Japan.pm の @argrath さんのLT資料でこれまでの経緯をさっとおさらい
新しくコードを書く人が書きやすいように VS 既存の資産を使えるように
Perl Steering Comitee(PSC) を結成し、Perl7の技術的な詳細を検討
混乱が発生したのでガバナンスを制定
Perl5.34 はリリースされる
リリース予定とか何が入るかとかは一旦白紙に
4/12, Perl7を発表した Sawyer X 氏が Perl Steering Committee(PSC) と Perl Core Team から退任すると発表
保守派と革新派の間で激しい争いがあった
https://dev.to/leontimmermans/a-year-of-strife-16o9
https://gist.github.com/wchristian/4e1bcdb761f20985b0a5c97a423a4fc6#file-__sawyer-txthttps://www.theregister.com/2021/04/13/perl_dev_quits/
Sawyer X 氏以外にもかなりの数の革新派の人々が意欲を失ってしまったらしい
Perl7 大丈夫か・・・?
4/11 の Perlの将来についての話し合い
Sawyer X 氏の投稿
今までと同じように, use v7.0 を宣言することでPerl7の機能を有効にする方向性で話がまとまった
後方互換性を考慮し、何も記述せずに strict, warnings を有効にすることはしない
将来的に残すことでデメリットが大きい誤機能や誤動作はサポートしなくなる可能性がある
現状では use v の利用率が少ないのでもっと普及させていきたい
モジュール作者には古いバージョンのサポートが必要だという圧力を感じられないようにしていきたい
なお、5.34.0-RC2にはデフォルトでstrictを有効にするビルドオプション-Dusedefaultstrictが存在する
デフォルトでstrictが有効なる世界を試してみたい方は今のうちに試してみましょう
5/6 Perl7のバージョンバンプについての話し合い
5.34.0 がリリースされた直後に Perl7 はリリースしない、Perl7 を価値あるものにしたいが、12ヶ月では実現できないと思っている
これまでと同じように毎年タイムボックステーブルリリースを続けていく
7のための変更の殆どは5.x のリリースで最初にリリースされるかもしれない
もし、ある機能に時間がかかりすぎることが判明した場合、それは、7.x.0、あるいは8のリリースになる
今の所、5.36.0 のリリースに間に合わせることのできる明らかに簡単に簡単に実装できる機能に焦点をあてている
5.36.0 のための作業のいくつかは結果的に7のためとみなされるものになるかもしれない
5.35.0 では experimental な機能の見直しが行われるらしい
まとめ
Perl7をどうするかでコミュニティに激しい争いが発生し、何人かの開発者が離脱してしまったのはとても残念
これまでのPerlの開発の進め方とあまり変わるところはないが、Perl7リリースへの準備は進めていく
また、これまでよりも積極的に新機能を追加したり実験的機能の安定化が図られる
Cor どうなった?
https://gist.github.com/Ovid/68b33259cb81c01f9a51612c7a294ede
Perlコアにもオブジェクト指向プログラミングがしやすい構文追加していこうぜ!って話
プロトタイプ実装みたいなのがある: https://metacpan.org/pod/Object::Pad
今年2月頃PSCでCorについての言及がある https://www.nntp.perl.org/group/perl.perl5.porters/2021/02/msg258952.html
将来的にPerl7以上で入ることはあるかも