Perl 7 イニシアチブのリスク分析

ダンブック (ダン・ブック)、CPAN で 70 を超えるモジュールをサポート、 分析を行った 提案を実行する際のリスク Perl 7実装計画。 Perl 7 ブランチでは、デフォルトで厳格なチェック モード「strict」を有効にし、「警告を使用する」を有効にし、古いコードとの互換性に影響を与える多くのパラメータの値を変更する予定であることを思い出してください。

この変更により、Perl 7 の多数の CPAN モジュールが破損し、各モジュールの変更が必要になることが予想されますが、特にすべての作成者が参加できるわけではないため、目標年度内に実装するのは非現実的です。 Perl 7 の変更により、Perl の最新バージョン以外をサポートするように設計されたモジュールも使用できなくなります。

さらに、次のような考えられる問題についても言及されています。

  • Perl 7 用に書かれたマニュアルの例や推奨事項が Perl 5 では機能しないため、初心者の間で混乱が生じます。
  • ワンライナーの開発への影響は研究されていません。 Perl は、大規模なスクリプトを作成するためだけでなく、管理者のニーズに応じたワンライナーや短いスクリプトの作成にも積極的に使用されており、厳密モードの使用は不要です。
  • ディストリビューションには、Perl 7 と Perl 5 のスクリプトを実行するための実行可能ファイルを同時に配信するという問題があります (この話は Python 2 と 3 でも繰り返されると予想されます)。
  • Perl 7 用に書かれたコードは、Perl 5 では動作しないことを特に注意する必要はなく、多くの開発者はサポートされる最小バージョンを指定しません。
  • Perl 5 に基づくさまざまなユーティリティとモジュールは修正が必要になります。
  • Perl 7 の準備では、リソースの再割り当てが行われるため、新しい Perl 機能の開発はしばらく凍結されます。
  • 適切な動機がなければ、大量の追加作業負荷が発生するため、Perl インタープリタ、モジュール、ツール、および付随するパッケージの現役開発者が燃え尽きて離職するリスクがあります (Perl 7 を作成する必要性に誰もが同意するわけではありません)。
  • コミュニティの文化と Perl の安定性に対する態度は根本的に変わります。
  • Perl 7 には根本的に新しいものが欠けているため、既存のコードと互換性がないという批判により、この言語の権威が損なわれることになります。

悪影響を和らげるために、Dan Book は互換性のギャップを回避する計画を提案しました。 同じ開発プロセスを維持し、5.34.0 の代わりに次のリリース番号 7.0.0 を割り当てることが提案されています。このリリースでは、間接オブジェクト呼び出し表記のサポートを無効にし、try/catch などのいくつかの新機能を有効にします。 「use strict」や「use warnings」などの変更は、「use v7」プラグマを通じてコード内で Perl バージョンを明示的に指定することによって規制されることが提案されています(「use v5.12」以降のリリースでは、strict はデフォルトですでに有効になっています) )。

デフォルトでは、以前に使用されていた古い構文をクリーンアップするための標準プロセスを除き、インタープリタが Perl 5 と変わらないパラメータのセットを保持することが推奨されます。 古い機能と非推奨の構文のサポートは、既存の非推奨ルールに従って引き続き廃止される可能性があります。 コード内で新しい Perl 7 要素の使用を通知し、「use v7」プラグマを使用して新しいスタイルと古いスタイルを分離することが提案されています。

出所: オープンネット.ru

コメントを追加します