以下、"The Future Of Perl5" という、Andy Lester氏による Jesse Vicent氏のOSCON 2011での発表内容のまとめです。Perl5 の今後のロードマップがおぼろげに見えてくる良いエントリーだと思いましたので、和訳・意訳しました。
(ここから)
Perl5の開発リード(pumpking)のJesse Vincent氏が今年のOSCONで"Perl 5.16とそれから"という、Perl5 の未来の道筋を解説するプレゼンテーションを行いました。このスライドはslideshareにあがっており、皆さんも是非一読してみることをおすすめします。私はPerl5開発者メーリングリストである perl5-portersをもう数年購読していませんが、このプレゼンテーションは Perl5 をレガシーな環境でも使い続けられるようにしつつ、技術的な革新を行っていくためにどのような試行錯誤が開発者達によって行われてきたのかを改めて浮き彫りにしてくれる素晴らしい資料だと思います。
なお、Pumpkingは厳密には開発リードというか、あちこちの開発者達の意見をまとめる裁定者のような役目を担います。またJesse以前はPumpkingとはPerlのリリース自体の責任を負う人でしたが、リリースプロセスは現在は役目としては別となりコミュニティのより幅広い層の人達が参加できるように改訂されています。
スライド内容のハイライトは以下の通り:
Perl5はある一定の変更がなされたらリリースされるのではなく、定期的にリリースが行われる時限リリース方式に変わった。
マイナーバージョンが奇数の場合は開発版(例:5.13.x)、偶数の場合は安定版(例: 5.14.x)、というポリシーは以前と同じく続けられる
現在の安定版は Perl 5.14.1 だが、 5.12.4も5.15.0 もちゃんとリリースされている
以前(注釈:Perl 5.12.x以前の話だと思われる)はPerlをリリースするための作業はpumpkingが一人で行って3週間もかかっていた。今は全てがドキュメント化され、数時間で終えられるプロセスとなっている。リリースはボランティアベースで何人のメンテナが順番にその責任を負うようになった。Larry (注:Perlの作者であるLarry Wall氏)曰く「Pumpkingが英雄である必要があった時代は終わった」。
Perl5 の開発・リリースが一段と加速するようになり、今度は逆に間違いを犯した場合にその状態から回復する方法も必要となっていくだろう
Perl5 はいまよりさらに有効なデフォルト値・動作を有効に変更されるべきである。なおデフォルト値とは以下のような動作の制御も行う物も含め想定している(注釈:use strictのように、プラグマやスイッチでデフォルト
- 警告(warnings)を有効にする
- autodieに準ずる動作を有効にする
- 失敗の戻り値を返すのではなく、例外を使用するようにする
- 引数が1個と2個のopen()を無効にする
- Latin-1への自動変換を無効にする
- UTF-8への自動変換を有効にする
- 基本的なオブジェクト・メソッドを有効にする
- 間接的オブジェクト構文を無効にする
Perl5 は全ての環境で動くように進化するべきである。全てのOS、全てのブラウザ、全ての電話端末がターゲットである
Perl5 コアへの変更は古いコードをちゃんとサポートするべきである。Perl5プログラマー達にPerl5本体の変更から自分を守るための防御的なコーディングを強いる事はしない(注釈:Perl5は基本的にこれまでも後方互換性に相当気をつけて来た数少ない言語です)
Perl5ランタイムはスリム化されるべきである。古くからあるいくつかのモジュールはコアから切り離され、CPANへと移動されている。これらは非推奨化されているのではなく、あくまでコアとは別物にされているだけである。
また、このようにスリム化されたPerlと、それら全てのモジュールがバンドル化されたPerlの二つのバージョンをリリースするようにするべきである
テストスイートは言語本体、バグ修正、そして実装検証の種類に分類されるべきである。
これらの事をなるたけ早くもたらすためにあなたができる事のひとつはPerl5 コアのメンテナンスファンドに寄付することですので、是非ご検討ください
私は個人的にはこのトークを見る事ができなかったので動画があれば是非見たいと考えています。
最後になりましたが、Perl5をこのように素晴らしい物にしてくれているJesseとp5pの皆さんに惜しみない賛辞を送りたいと思います。