周囲がまつもと氏のまれたぐいまれなプログラミング言語アーキテクトとしての才能に気づき、まつもとがそれに専念できるような体制が自然に形作られつつある――Rubyはいま、そういう状況にあるように見える。今回は、Rubyの開発におけるまつもと氏の考えに迫る。
前回の記事はこちらから
オブジェクト指向スクリプト言語「Ruby」の開発は、1993年2月24日に始まった。最初はまつもとが1人で開発していたが、2006年12月現在、大本(おおもと)のRubyのソースコードを変更できる権限(CVSのコミット権)を与えられているのは38人となっている。ちなみに、そのうちのおよそ4分の1は海外からの参加だという。
今やRubyは、まつもと1人のプロジェクトではなくなりつつある。いや、まつもとあってこそのRubyという意味では、それは今後も変わることはないだろう。ただ周囲が、まつもとのたぐいまれなプログラミング言語アーキテクトとしての才能に気づき、まつもとがそれに専念できるような体制が自然に形作られつつある――Rubyはいま、そういう状況にあるように見える。
その象徴的な出来事として、先日、まつもとは、Rubyの現行バージョン(Ver.1.8系)のリリースマネジメントを他人に委ねることにした。一般へのRubyとしてのリリースが、まつもと以外の手によってなされるのは、Rubyの誕生以来14年目にしてはじめてのことである。
―― 先日、RubyのVer.1.8系のリリースマネジメントをほかの人に「禅譲」されましたね?
まつもと 「禅譲」というと何か偉そうですねぇ(笑)。はい、お譲りしました。というのは、リリースマネジメントは、わたしにとっては非常に面倒くさい作業で、僕はもともとやりたくなかったんですよ。でも、これまでほかにやってくれる人がいなかったので仕方なくやっていたのですが、今回、手を挙げてくださる方がいてパタパタと決まったので良かったなと。
―― では、念願かなって、ということだったのですね。
まつもと そうです。僕の作業があまりにもトロくさいので「もう、まつもとには任せておけない」ということだったのではないかと(笑)。ただ個人的には、本当は誰かが仕事として受けてくれるといいなと思っていたのですが、それはかないませんでした。
―― それは、仕事となっていた方が継続性があるから?
まつもと ええ、継続性がありますし、安定しているし。それに何より、実際に作業する人が「面倒くさいけど、お金をもらえるからいいや」と思ってもらえるだろうし。
―― 今は、次期バージョンの開発に専念している?
まつもと はい、来年のクリスマスに「Ver.1.9.1」あるいは「Ver.2.0」という名前のものを出そうと思っているので、それに向けて作業しています。
―― その次期バージョンの開発に取り組みんでいるのは、まつもとさんだけ?
まつもと いえ、そんなことはありません。わたし以外の人が担当している部分もあります。次期バージョンでは、インタプリタのコアが、笹田耕一さんが開発している「YARV」(※1)になります。ライブラリについては、僕が直接メンテナンスしているものは、もうほとんどないんじゃないかな。幾つかありますが、もう、ほとんど任せてしまっています。あと僕がやっているのは、提案に対する対応ですね。「こうすると、こんな風になります」とパッチ付きで提案が来たりすることもあるので、それについて議論したり、採用する、しないの判断をしたりしています。
―― Rubyの文法にかかわる部分は?
まつもと Rubyの文法そのものを積極的にいじっているのは、やっぱり僕ですね。手元で変更して、あぁでもない、こうでもないと、いろいろやったりしています。全体的には、今は、コーディングしている時間よりも、仕様を考えたり、議論したりといった時間の方が多いでしょう。「あぁ、こうすれば良かったんだ」と閃いて、後はずっとコーディングできるというようなことは、この10年でだいぶやり尽くしてしまったので、今残っているのは、一生懸命考えても、なかなか答えが出ないような問題ばかりですね。ここ何日かは、例えば、メソッドの可視性を制御するprivateについてずっと考えています。Rubyのprivateは、ちょっと使いにくいところがあると自分でも思っているので、どうにかして直せないものかと。
―― そういうときは、どうやって考えるのですか? 本などを参考にされるのですか?
まつもと 読みますね、「ほかの言語ではどうしてたっけ?」とか。最近だと、Common Lispの仕様書である「Common Lisp the Language」(※2)という本をよく参照したりしています。あとはとにかく、ひたすら考えますね。考えても結論が出ないことも多いのですが(笑)。
―― 誰かに相談したりということは?
まつもと ほとんどないですね。ときどき日記(※3)に「決めかねているんだけど……」と書いたりしますけど。
―― 日記に書くということは、実は、みんなの反応を見たいと?
まつもと それはありますね。それを確かめてみたいとも思うのですが、実際には、なかなか反応はないですね。みんな他人事だと思っているのかもしれない(笑)。
※1:「YARV」(Yet Another Ruby VM)。笹田耕一がRubyのインタプリタを置き換えることを目指して開発している言語処理エンジン。現在のRubyのインタプリタよりも高速化が図られている。
※2:Guy L. Steele著。日本語訳は、第1版が「Common LISP――Common LIPS言語仕様書」(訳:井田昌之、和田英一)、第2版が「COMMON LISP」(訳:井田昌之)というタイトルで、いずれも共立出版から刊行されている。
※3:「Matzにっき」(http://www.rubyist.net/~matz/)。まつもとが2003年5月から書き続けているblog。
Copyright © ITmedia, Inc. All Rights Reserved.