Perl 5は生き返った! 新たな前進を再開したPerl

2010年4月16日

「Perl 5コアの開発はここ数年、負の連鎖が続いていた。リリースは滞り、開発者は去り、将来の見通しはどんどん悪くなっていった。ここで話すのは、Perl 5の開発におけるこの悪い流れがどのようにして、楽しく、前向きで、エキサイティングなものに変わったか、というストーリーだ」

Perl 5 is Alive Marked by Release of Perl 5.12 | ActiveState Blog

Perl 5のコアデベロッパーで、ActiveStateの技術リードでもあるJan Dubois氏は、4月13日に同社のブログにポストしたエントリ「Perl 5 is Alive」で、このように書き出しています。

Perlは、機能が高度化し複雑になったPerl 5までのバージョンを見直し、新たに作り直そうと、2000年にPerl 6の開発が始まりました。しかしPerl 6は10年たったいまでもリリースされておらず(今月に最初のバージョンがリリースされるといわれていましたが…)、一方でPerl 6の開発が始まってからは、旧バージョンになることが分かっていたPerl 5の開発もスローダウンしていきました。

つまりPerl全体の先行きが不透明なものになってしまったのです。

そうした中で昨年11月に、Perl 6は次世代Perlではなく、Perl 5とPerl 6は別々のPerlとしてそれぞれが進化していく、という合意がなされました。Perl 5はPerl 6に置き換えられる存在ではなく、これからは独自に進化していくソフトウェアであるということが明確になりました。

そして4月13日に行われたPerl 5.12.0のリリースとともにPerl 5は勢いを取り戻そうとしています。その裏で何があったのでしょうか?

Perl 5.12.0リリースと同じ日にDubois氏がポストしたエントリを基に、そのストーリーを追っていきましょう。ここからは彼のエントリや参照先などを要約して紹介していきます。

開発者は去り、メジャーリリースは困難に

Perl 5はかつて、約2年周期でメジャーリリースが登場していました。1998年に5.005、2000年に5.6、2002年に5.8。しかしその次の5.10の登場は5年後の2007年でした。

しかしこの頃には外部開発者がコードベースに対して機能拡張などをしにくくなってきたため、外部開発者たちの意欲が減退し、ある者は去り、ある者はPerl 6のプロジェクトへ移りました。そして、Perl 5の内部に詳しい何人かの人たちは、バグフィクスのレビューと、それを古いメンテナンスブランチに対して適応するという作業を行うことになりました。

2000年夏にPerl 6の開発がアナウンスされた後では、Perl 5はメンテナンスモードに入ったとみなされるようになります。当時は、まさかPerl 6のリリースに10年もかかると思う人は一人もいませんでした。

こうして時間が過ぎていくうちに、Perl 5のメジャーリリースはどんどん難しくなっていきます。というのも、Changelogの更新、ローカルに行われた修正を外部モジュールに反映させる作業、CPANからのアップデートモジュールをコアへの統合といった作業がどんどん繰り延べられ、蓄積していったためです。

こうした中で2009年の夏、Best Practical Solutionsのプレジデント Jesse Vincent氏は、何か手を打たなくてはと行動を起こしました。

過去の体制から決別へ

Vincent氏は、Webアプリケーションのchangeloggerをセットアップし、開発者の共同作業を助け、Perl 5.10以降の変更に注釈が付くようにしました。

そしてPerl 5.11.0(デベロップメントリリース)のスナップショットとともに、次のようなメッセージをメーリングリストにポストしました。Perlのリリース方法の見直しです。

Today marks a major change in how we'll be releasing development versions of Perl.

Historically, a single individual, the Perl "pumpking" has been personally responsible for all aspects of the Perl development process - ranging from direction setting, dispute resolution and deep hacking to mentoring, patch application and release engineering.

いままではPerlのリリースは「pumpking」のメンバー個人に依存していたけれど、それをやめようと彼は宣言します。pumpkingは、Perlの開発者ラリー・ウォール氏やその右腕としてこれまでずっとPerlのパッチ適用の判断とその適用、意見のとりまとめなどを行い、リリースを管理してきた人たちです。リリースごとにその中の誰かがリリースマネージャとして割り当てられ、多くの作業をこなしていました。

新しい仕組みでは、こうした個人に多くを依存するのをやめ、もっと純粋にリリース作業だけを行う方式です。

新しく「release manager’s guide」も作り、リリース用スクリプトも自動化します。また、(デベロップメント)リリースは毎月行い、担当者も毎月変わります。pumpkingは意見のとりまとめ、および最終意志決定の権限を持つことになります。

こうしたJesse氏の施策は少しずつ成功していきます。

かぼちゃ大王はやってこない

The Great Pumpkin - nntp.perl.org

その後の2カ月で2回のデベロップメントリリースを出した後、Jesse氏は2009年10月31日に「Halloween message」を公開します。そこでは、デベロップメントリリースではなくパブリックリリースとしてPerl 5.12のリリースをすると宣言されていました。

「Halloween message」と呼ばれるメッセージには「The Great Pumpkin」(かぼちゃ大王)というタイトルが付けられています。そこで彼はこんなエピソードを書いています。

「ハロウィンで思い出すのは、スヌーピーの『The Great Pumpkin』(かぼちゃ大王)の話だ。ハロウィンの日、ライナスはかぼちゃ畑でかぼちゃ大王をずっと待ってるんだ。だけどかぼちゃ大王は全然やってこない、それでも彼は我慢強くずっと待ち続けているんだ」

このエピソードの後で、彼はこう切り出します。

I'm tired of being Linus. And I don't want perl porters around the world to spend their Halloweens wondering whether there is a Great Pumpkin or not.

僕はライナスでいるのにはもう疲れた。世界中のPerl開発者にも、ハロウィンの日にかぼちゃ大王がくるかどうか思いを巡らせて過ごしてほしくない。

そうして、パブリックリリースであるPerl 5.12を自分たちでリリースしよう、ということになるのです。

開発者が戻り、再び軌道に

ここからPerl 5には再び協力者が拡大していき、またPerlリポジトリのソースコード構成も変更され、CPANとPerl 5 coreの両方にあるソースコードがメンテナンスしやすいようになります。

長年にわたり無償でPerl 5のコントリビュータとして活躍していたDave Mitchell氏は、現在The Perl Foundationの報酬を受け取る立場としてPerl 5のバグに対して精力的に修正を行っており、そのほかにもコアデベロッパー以外の.pmグループの協力者がバグの仕分けをしたりと、より広い範囲の人たちがPerl5の開発に直接参加できるようにコミュニティ全体が動いています。

そして更新の勢いを維持するために、Perlのリリースは機能ベースから、時間ベースへと変更されました。Perl 5.12の1カ月後にバグフィクス版の5.12.1メンテナンスリリースを予定し、その11カ月後に5.13デベロップメントリリース、そしてその約1年後に5.14パブリックリリースを予定しています。

こうしてPerl 5の開発は再び順調さを取り戻そうとしています。

ブログの書き手であるJan Duboisは、この数年、Perlを取り巻くトピックはMooseCatalystなど、Perlコアではないところにあったと書いています。

But with all the focused activities directed at releasing Perl 5.12 people have returned to core Perl development again.

Perl 5.12のリリースで再びPerlの開発に人々が戻ってきている。Perlの未来は再び明るくなるだろうと、このエントリを結んでいます。

(この記事はJapan Perl Associationの牧大輔 代表理事に情報を教えてもらいました、ありがとうございます。ただし本文に誤解や間違いがあった場合の責は執筆した新野にあります。)

スヌーピーとかぼちゃ大王 特別版 [DVD] スヌーピーとかぼちゃ大王 特別版 [DVD]
ハロウィンが近づき、子どもたちはお菓子をもらうために大忙し。みんなおばけに仮装して「お菓子かいたずらか」と近所の家々を訪ねて回ります。そんな中、ライナスだけは「ハロウィンにはかぼちゃ畑にかぼちゃ大王が来て願いをかなえてくれる」という話を信じて…。

関連記事

このエントリーをはてなブックマークに追加
Bookmark this on Delicious

タグ : Perl , オープンソース

≫次の記事
アドビはHTML5を「Flashと連係できるテクノロジー」と位置づける
≪前の記事
社内にマイクロブログ「Chatter」を導入した国内企業、その効果を語る

Loading...

Blogger in Chief

photo of jniino Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。新しいオンラインメディアの可能性を追求しています。
詳しいプロフィール


新サイト「Publickey Topics」始めました!


Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
RSSリーダーで : Feed





アクセスランキング - 過去7日間

  1. Microsoft Azureが10時間を超える障害。原因はストレージの性能改善のバグと運用のミスとの報告
  2. Google、自社サービスで利用しているものと同じ性能の「Google Compute Engine Autoscaler」をベータ公開
  3. マイクロソフト、開発中のWindows版Dockerクライアントを初披露。オープンソースでビルド可能に
  4. 新しいアプリケーションアーキテクチャは従来のネットワークトラフィックのパターンを変えつつある。ガートナー
  5. Forguncy(フォーガンシー)は単純なExcel活用ツールではなく、業務アプリケーション開発のためのWeb開発ツールである[PR]
  6. マイクロソフト、Linux版の.NETをDocker上でデモ。Visual Studioからリモートデバッグ可能
  7. [速報]マイクロソフト、フル機能の無料版「Visual Studio Community 2013」公開
  8. Red Hat、Docker専用の軽量OS「Red Hat Enterprise Linux 7 Atomic Host」ベータ版をリリース。Kubernetesを統合
  9. IT系企業の平均給与を業種別にみてみた 2014年版 ~ ネットベンチャー、ソーシャル、ゲーム編
  10. 「Windows ServerがDockerを採用する」とはどういうことなのか
  11. [速報]まるでクラウドで走るマクロ言語「AWS Lambda」発表。AWS re:Invent 2014
  12. [速報]Amazon Aurora発表。MySQL互換で性能5倍、商用リレーショナルデータベースと同等の機能を提供するマネージドなデータベースサービス。AWS re:Invent 2014
  13. [速報]マイクロソフト、サーバサイドの「.NET Core Rutime」と「.NET Framework」のオープンソース化を発表。C#コンパイラやASP.NETなど
  14. [速報]マイクロソフト、「.NET server framework」のLinuxとMacOS X用オフィシャルディストリビューションを発表。.NETアプリケーションのビルド、実行が可能に
  15. Publickey Smar

Publickey 最新記事 10本

Publickey Topics 最新記事 10本


PR - Books


fig

fig

fig

fig



blog comments powered by Disqus