モダンPerlの世界へようこそ

第1回 「モダンPerl」ってなんだろう?

この記事を読むのに必要な時間:およそ 3 分

「モダン」なモジュールとは?

ただ,⁠モダンPerl」の世界は,Perl本体のバージョンさえ上げれば完結するものではありません。⁠PerlはCPANモジュールを利用するためのインタフェースに過ぎない」と言いきってしまう人さえいるくらいで,⁠モダンPerl」の恩恵を十分に享受するには「モダン」なモジュールの利用が不可欠です。

では,モジュールが「モダン」かどうかはどう判断すればよいのでしょうか。

先ほど紹介したJcodeとEncodeのように,中には新旧がはっきり色分けできるものもありますが,一般に「モダン」と評価されているモジュールの中にはこれといったライバルが見あたらないものもありますし,古いモジュールと新しいモジュールの勢力が拮抗していたり,下火になっていた古いモジュールが勢いを取り戻して新しいモジュールを駆逐してしまうような例もなくはありません。

『モダンPerl入門』やperl-users.jpにはモジュールの最終更新日やテストの数,バグレポートの数などからモジュールの状態を判別する方法が紹介されていますし※5⁠,Perl 5.5時代以前の書き方を引きずっているかどうかで判別することも可能でしょうが※6⁠,それだけではどこか物足りません。

※5

http://perl-users.jp/modern_introduction_perl/cpan_sommelier.html

※6

いまどきstrictプラグマを使っていないようなものは問題外として,21世紀にもなってまだourキーワードのかわりにvarsプラグマを使っているようなものは「レガシー」と判断してもよいでしょう。ただし,この場合の「レガシー」はかならずしも「もう使われていない,使うべきではない」という意味ではありません。新しいコードを書くときの参考にはしてほしくないというだけで,昔からの定番モジュールとして今なお流行の最前線にいるものもあります。

コミュニティに認められてこその「モダン」

そこで,この連載ではそのモジュールをサポートするコミュニティの性質に注目してみようと思います。

たとえば,Perlの世界には公共性の高いモジュールを支援するための助成金制度※7)というものがあります。この助成金は主にPerl Foundationという財団が管理しているのですが,篤志家から集めた寄付金を注ぎ込むモジュールの選択にあたっては,独善に陥らないよう,財団だけでなく,四半期ごとに一般ユーザからの意見も集めて選択の参考にしています。そこで選ばれるようなモジュールはその時代層を反映した「モダン」なモジュールと考えてもよいでしょう。

また,Perlの世界には品質管理委員会※8のように公共性の高いプロジェクトチームがいくつか存在しています。このような委員会が推奨しているモジュールやコーディングスタイルについても「モダン」と考えて差し支えないでしょう。

同様に,特定分野の問題意識を共有する有志が集まり,名前空間をまるごとひとつ占有して開発を進めているような大規模プロジェクトについても――その開発母体が特定の企業や個人に偏りすぎていなければ――「モダン」と呼んでもよさそうです。

Perlの父ラリー・ウォール氏が2000年(Perl 13歳)にPerl 6の開発開始を宣言したとき,氏はこのようなことを言いました。

Perl 5 was my rewrite of perl ... I think this should be the community's rewrite of perl, and the community's rewrite of the community.

http://use.perl.org/articles/00/07/19/161217.shtml

大胆に意訳してしまえば,⁠Perl 5までは親の責任で育て上げましたが,Perl 6を一人前の大人にするのはみなさんであってほしい」というところでしょうか。後半のコミュニティによるコミュニティの作り直しというのは,Perl 5の移植管理チームのように,あまりに大きくなりすぎて身動きがとれなくなってしまったコミュニティのあり方も変えていってほしいという願いなのですが,ここでも個人からコミュニティへ,という流れがうかがえます。

※7

http://www.perlfoundation.org/grants

※8

http://qa.perl.org/

「モダン」だからといって万人向けとは限りませんが

もちろんこのようなコミュニティ主導のモジュールであっても,ときにはチームが分解したとか,設計上の不備をつくろいきれなくなった,よりすぐれた実装があらわれたといった理由で,人気を失い,過去のものになってしまうものはありますし,味方も多いけれど敵も多い(コアなファンにしか広まらない)とか,特定の環境・条件を満たさないと役に立たないというものもなくはありません。

だから,⁠モダン」はかならずしも「万人向けのベストプラクティス」ではありませんし,この先も永遠に「モダン」であり続ける保証もないのですが,取り入れるにせよ,取り入れないにせよ,⁠今風」の書き方を知るうえで「モダン」なモジュールを知っておくことはきっと役に立つはずですし,コミュニティの流れを追っていくことで見えてくるものも少なからずあるかと思います。

連載第2回以降は,そのような「モダン」なモジュールの歴史や使い方を紹介しながら,モダンなPerlの世界では今なにが起こっているかをお伝えしていきます。どのようなモジュールを紹介するかの腹案はありますが,せっかくのネット連載ですから,ニュースやニーズがあったものから紹介していきたいと思います。ご希望のジャンルがありましたら何らかの方法でお知らせください。では,次回をお楽しみに。

著者プロフィール

石垣憲一(いしがきけんいち)

あるときは翻訳家。あるときはPerlプログラマ。先日『カクテルホントのうんちく話』(柴田書店)を上梓。最新刊は『ガリア戦記』(平凡社ライブラリー)。

URLhttp://d.hatena.ne.jp/charsbar/