3月29日から30日にかけて、東京都内で「YAPC::Asia 2006」が開催された。これはウェブサイトの構築などにおいて人気が高いスクリプト言語、Perlの草の根的シンポジウムだ。同シンポジウムでは、Perlの生みの親であるLarry Wall氏もスピーカーとして来日した。
シンポジウムのスポンサーの1社であるヤフーは、ユーザーが直接触れることのないバックエンド部分でPerlを多用している。また、Wall氏が執筆したPerlプログラマーの教典ともいえる「プログラミングPerl」(通称Camel Book 「らくだ本」:オライリー・ジャパン出版)の日本語訳を担当した近藤嘉雪氏は現在、ヤフーのシステム統括部に勤務している。この2人のPerlプログラマーが数年ぶりに再会し、Perlについて語り合った。
「ハタチ」を迎えたPerl
近藤: Perlは2007年には20周年を迎えます。これまでのPerlの「進化」をどう振り返りますか。
Wall: Perlは人とまったく同じように「成長」してきました。最初の数年間は、めまぐるしいペースでいろいろなことが変わってきました。
その後、赤ちゃんから子供に成長しました。ちょうどPerl 4の頃です。この頃はテキスト処理が主な用途でした。Perl 5の登場で、Perlはティーンエイジャーになりました。私は実際、家庭人としても4人のティーンエイジャーを育ててきました。うち2人は現在進行形でティーンエイジャーです。ティーンエイジャーにはおもしろい特徴があります。
彼らは、見かけよりずっと大人な側面がある一方で、ずっと子供っぽいところもあるのです。つまり、15歳の子供でありながら、ある側面は25歳並で、別の側面では5歳並みということもあります。我々はそれをそのまま受け止めてあげなければなりません。
近藤: ではPerl 6は大人になるのでしょうか。
Wall: Perl 6で、Perlは成人します。日本語でいう「ハタチ」です。ある程度年も取ったし、頭の中の配線を再構築する、人生においておそらく最後のチャンスで、大人として受け入れられるようになる年です。「もう、これまでのようにティーンエイジャーみたいな振る舞いを続けるわけにはいけない」と思い始めていて、自分のどこを改めるべきかわかっていると同時に、どの部分はまだ子供らしさを残しても大丈夫かも心得ています。
人間同様、成人するまでに、20年かかったことを考えると、もしかしたらまだ40年くらいは「ロージン(老人)」にならず現役で活躍できるのかもしれません(笑)。
Perlのマイルストーンを振り返る
近藤: Perlの成長において、マイルストーン的な出来事はありましたか。
Wall: 最初は小さなことだと思えたのに、後から非常に大きく流れを変えるような出来事がいくつかありました。
一例をあげれば、正規表現(検索対象の表記法)の書き方があります。最初のPerlでは、正規表現はgrep風の書き方をしました。例えば、正規表現の一部をグループにまとめる時には、カッコの前にバックスラッシュをつける必要があったのですが、その後これをegrep風に改め、カッコの前にはバックスラッシュをつけないことにしました。これはPerlがテキスト処理言語としても人気を高めた理由のひとつかもしれません。情報を圧縮する際によく利用されるハフマン符号というものがあります。その原理は、頻繁に使うものはできるだけ短くする一方で、あまり使われないものは長くてもかまわない、というものです。個人的にはこれを「簡単なことは簡単に、難しいことも可能に」(Easy things should be easy, hard things should be possibleというPerlのスローガンのひとつ)ととらえています。こうした考えがその後のPerlのつくり方にも影響していると思います。
Perl 2と3の間でもそんなことがありました。Perl 2では「Perlはテキスト処理用言語だから」と言い逃れをしてきましたが、Perl 3ではバイナリデータも扱うようにしました。この頃、多くの人からいろいろな問題が寄せられてきたのですが、私は、問題の9割はテキスト処理の問題で、1割がバイナリデータの問題だという感触を得ました。そこで、ここでも「簡単なこと、つまりテキスト処理は簡単に、難しいこと、つまりバイナリデータの処理も可能に」を実践したのです。
近藤: なるほど。