logo

Perlの生みの親ラリー・ウォール氏が語る、Perlの生い立ちと今後 - (page 3)

  • このエントリーをはてなブックマークに追加

Perl 6の完成は「クリスマス」

近藤: さて、ここで答えるのが難しい質問をしなければなりません。Perl 6の完成はいつ頃になりそうですか。

Wall: それを聞かれた際にいつも使っている答えが、「クリスマスには完成します」というものです。ただし、「どのクリスマスか」は特定しませんが(笑)。ただ、終わりが近づいているのは実感しています。物事は終わりが近づいてくると、いろいろなことが起き、進歩のスピードが加速します。今、我々はちょうどPerl 6をブートストラップしている段階にあります。つまり、Perl 6そのものをPerlで書き直すという段階です。Perl 6の正規表現や文法もできてきましたし、この数週間でコンパイラもつくられはじめました。

 現在はPerl 6をPerl 5で書き直していますが、いずれPerl 6のコンパイラができあがったら、そちらでやりなおします。そうなればもっと多くの人が使えるようになることでしょう。

近藤: ところで、Haskell言語で記述された「Pugs」というPerl 6のプロトタイプも登場しましたね。このPugsとはどのような関係にあるのでしょう。

Wall: とても良好な関係です。Pugsのおかげで、Perl 6の仕様をテストしたり検証したりすることができます。私自身Pugsをデバッグしたこともあります。

 Perl 6の開発では、私はインプリメンテーションの部分は人に任せて、自分は言語デザインに集中することにしています。というのもPerl 6にとりかかり始めた時、大勢の人が「我々はPerl 5を見てきたので、あなたがどのように言語をインプリメントするか知っています。あのようなことはもうゴメンです」と言ってきたからです(笑)。

近藤: Perl 6の特徴を教えてください。

Wall: Perl 5にもオブジェクト指向の要素は付け加えていましたが、ご存知のように非常にゆるやかで、これというオブジェクト指向プログラムの書き方が決まっていなかったため、同じオブジェクト指向のプログラムでも数十通りもの書き方がありました。Perl 6は、パワフルさと柔軟性は保ちますが、表記などの方法についてはもっと明確な方針を打ち出していくつもりです。

 我々はPerl 6をひとつの言語としては捉えておらず、いろいろな言語の集合体のトップに立ちまとめるものとして捉えています。もし、その集合体にある言語のひとつを宣伝した場合、あるいは何か変更があった時、皆が合意している頂点であるところのPerl 6から、それらの言語をポイントするURLのようなものが用意されていて、簡単に参照できるようになっている--これもPerl 6の大きな特徴です。

 要するに我々は、我々自身がそんなにスマートではないことに気づいたのです。自らすべての人々のすべてのニーズを満たそうとするのではなく、何かをやりたい人が、既にあるさまざまな言語を使って、やりたいことをやりたいようにできる環境を提供することが大事だと思い直したのです。

近藤: あなたは元々、言語学を勉強されていたんですよね。

Wall: そうです。コンピュータ科学者に話すときは「自分は言語学が専門ですから」と言って逃げ、言語学者と話をする時には「自分はコンピュータ科学者だから」といって逃げてきました。

近藤: これまでどんな言語を使ってきましたか?

Wall: いろいろな言語を使ってきましたよ。BASIC、C、PASCAL、ADA、LISP、PROLOG。それからPL/0のインプリメンテーションにも参加しました。

近藤: PL/0?

Wall: まだPL/1とは呼べない状態で、PL/0からPL/0.5の間くらいという段階でした(笑)。それからJAM、BASIC PLUS、非常にマイナーな分離型イベントシミュレーション言語のMODLIT。C++やJava、Rubyなども使いました。

近藤: Javaも使ったんですか!

Wall: ええ、「ドロボー」ですね。もっとも、我々言語デザイナーは皆そうですが(笑)。

近藤: 日本のPerlエンジニアに何かメッセージはありますか。

Wall: 日本のPerlファンからは、いつも「まだあのホンダ アコードに乗っているのか」と聞かれます。オライリー・ジャパンが出版したPerl本の日本語版巻頭で、私がホンダのアコードに乗っていると書いたからです。それでその答えなんですが(ニヤっと笑って)、実はそうなんですよ。今でも乗っています。

CNET Japanの記事を毎朝メールでまとめ読み(無料)

-PR-企画特集

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]