レベル: 初級 風穴 江, ITmedia
2007年 5月 18日 オープンソースソフトウェアの開発にかかわっている人のインタビューをシリーズでお届けする「Open Source People」。記念すべき第1回はMatzのニックネームでも知られるまつもとゆきひろ氏。
オープンソースという「お仕事」
 |
Open Source Peopleを始めるに当たって
オープンソースソフトウェアを開発しているのはどのような人たちなのか――オープンな場で開発が行われているとはいえ、そこで実際に作業している開発者たちを具体的にイメージできるという人は、案外少ないのではないだろうか。
一般にオープンソースソフトウェアの開発は、誰でも参加できるメーリングリストのようなオープンな場で行われている。そこを覗いてみれば、誰が、どんなことをしているのかということは、それこそ、いつでも誰でも知ることができる。しかし、誰でも閲覧できるからといって、みんながアクセスして読んでいるわけではないのが、インターネットの常でもある。また、開発の議論やソースコードがオープンになっているとはいえ、そこに参加している開発者たちの「人となり」まですべて分かるかというと、そういうものでもないだろう。結果、オープンソースソフトウェアの開発について、冒頭のような疑問というかモヤモヤを抱いてしまうことになる。
そこでこの「Open Source People」では、オープンソースソフトウェアの開発にかかわっている人――あえてプログラマーに限定しない――のインタビューをシリーズでお届けしていく。
「オープンソースの現場」で実際に手を動かしている人たちのことを具体的に知ることは、オープンソースに対する理解を一段深めるために役立つことは間違いない。なぜならオープンソースとは、理論とか法則というよりも、そこに人が集まるということにこそ本質があるからだ。開発者を知らずしてオープンソースを語るなかれ、である。
|
|
まつもとゆきひろは、オブジェクト指向スクリプト言語「Ruby」の作者として知られている。本名は松本行弘。海外ではMatzのニックネームで通っている。
以前、とある調査のために行われた、一線で活躍する日本のオープンソースソフトウェア開発者に対するインタビューを手伝ったことがある。そのとき「日本人で、オープンソースソフトウェア開発者として成功した人は誰か?」という質問をしたところ、話を聞いた十数人の開発者のほとんどが、まつもとゆきひろの名前を挙げていた。おそらく、もっと広い範囲の人に同じような質問をしたとしても、多くの人がまつもとの名前を口にするだろう。
そう考えられる最大の理由は、自分でオリジナルに開発したソフトウェアが、国内だけでなく海外でも広く使われているという圧倒的な実績にある。そのことで優劣をうんぬんするつもりはないが、とはいえ、誰かが開発したソフトウェアを日本語化したり、その改良に手を貸したりすることに比べて、やはりオリジナルのソフトウェアを開発するということは、それだけで一目置かれる存在となりうる。それが、国内のみならず海外でも熱狂的に使われるようになったとなれば、その度合いはさらに増すことになる。
さらにまつもとは、プログラムコードを書くばかりでなく、さまざまなメディアから受けるインタビュー、自らが書く記事やblog、そして国内外で開催されるイベントでの講演などを通じて、Rubyやオープンソースに関する自らの考えを発信することに積極的である。そうした姿勢や、内外でその言動が注目される存在になっているということも、多くのオープンソースソフトウェア開発者の「あこがれ」につながっている。
そんな彼も、Rubyの開発をスタートさせた14年前は、社内向けシステムを開発する一介のサラリーマンプログラマーにすぎなかった。それが今では、Ruby開発者として給料をもらう立場となり、会社にRuby関連での売り上げをもたらす原動力ともなっている。(敬称略)
まつもとゆきひろ氏
- ――
-
会社においては、まつもとさんはどういう立場なのでしょうか? 年間でこれぐらいの売り上げにかかわるべしというノルマのようなものはあるのですか?
- まつもと
-
いや、そういうのはまったくないですね。
- ――
- というと、いわゆるフェロー(特別研究員)のようなポジションなのでしょうか?
- まつもと
-
それに近いでしょうね。
- ――
-
それでも、今の会社(ネットワーク応用通信研究所、以下NaCl)に入社したときから、そういう立場だったわけではないですよね?
- まつもと
-
最初は違いましたね。なし崩し的にこうなったという感じです。まぁ、あまり仕事をしないのに、対外的な知名度だけが上がっていったので、結果的に会社としては、このような形でしか(まつもとを)使えなかったということだったのではないかと(笑)。
「仕事をしなかったから」というのは、もちろん、まつもとの謙遜だろうが、彼が入社した1997年当時、会社として今日のようなRubyのビジネスに確信があったわけでもなかったであろう。しかし今では、同社の売り上げの過半を占めるとまではいかないものの、Rubyのビジネスのために何人かの人員を配することができるほどになってきているという。
- まつもと
- 最近は、Rubyを仕事にする会社が幾つか出てきました。例えば、Rubyを使ってCMS(コンテンツマネジメントシステム)やSNS(ソーシャルネットワーキングシステム)を構築し、それをビジネスにしているところがあります。あるいは、システムコンサルティング会社がRubyを積極的に活用する例も出てきています。
- ――
-
NaClは、そういった企業とのビジネスも行っているのですか?
- まつもと
-
そうですね。開発の規模が大きくなってくると、1人の優秀な技術者がとりあえず作りました、コンセプトはできましたというだけでは手に負えないことも出てきます。そういうところを手伝ってもらえませんかという相談がウチにくるわけです。
 | |
- ――
-
それは開発のお手伝いですか? それとも、バックエンドのサポートということでしょうか?
- まつもと
-
今の話は主に開発の方ですね。ただ、バックエンドのサポートをすることもあります。「Rails Platform」という Ruby on Rails のための統合開発環境では、日本語化などの開発に加えて、バックエンドサポートとトレーニングをウチが提供しています。
- ――
-
そうした仕事では、まつもとさんの出番も多いのでしょうか?
- まつもと
-
いえ、わたしのところまで持ち込まれるようなケースはあまりないですね。Rubyのビジネスをやっているチームには、Rubyの主要な開発者として活動している者もいますので、ほとんどはそこで解決されてしまいます。
- ――
-
まつもとさん自身が営業的なところで動くことはあまりないのですか?
- まつもと
-
例えば「Rubyのまつもとがいるから……」ということで仕事になっているものがあって、その打ち合わせに同席したり、僕自身が「客寄せパンダ」的に役立つときには営業的な打ち合わせにも出たりしています。
- ――
- Rubyでのビジネスが増えてきたのは最近のことですか?
- まつもと
- 特に今年になって急速に増えてきている感じです。この1年で大きく状況が変わりました。
- ――
- やはりそれは「Rails景気」?
- まつもと
- そうですね。Railsが日本でも使われるようになってきたということでしょう。
- ――
- 今後もRailsのビジネスは増えていきそうですか?
- まつもと
- 増えるのは増えると思いますね。ただ、あと1年もすればライバルが出てくるでしょうけど。今はまだ、そのほとんどがウチに来るような状態ですけども。
まつもと氏とRubyの歩み
| 時期 | 出来事 |
|---|
| 1993年2月 | Rubyの開発を始める | | 1995年12月 | Ruby Ver.0.95をfj.sourcesに投稿 | | 1996年12月 | Ruby Ver.1.0をリリース | | 1998年11月 | 「Perl Conference Japan」でRubyについて講演 | | 1999年10月 | 「オブジェクト指向スクリプト言語Ruby」を上梓 | | 2000年10月 | 英語で書かれた初の解説書「Programming Ruby: The Pragmatic Programmer's Guide」(Addison-Wesley刊)が出版 | | 2000年10月 | 未踏ソフトウェア創造事業で「オブジェクト指向スクリプト言語Ruby次期バージョンの開発」が採択 | | 2000年11月 | 初めての専門カンファレンス「Perl/Ruby Conference」が京都で開催 | | 2001年10月 | 海外では初めての専門カンファレンス「Ruby Conference 2001」が米国フロリダで開催 |
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系のリリースマネジメントをほかの人に「禅譲」されましたね?
- まつもと
- 「禅譲」というと何か偉YARV」 そうですねぇ(笑)。はい、お譲りしました。というのは、リリースマネジメントは、わたしにとっては非常に面倒くさい作業で、僕はもともとやりたくなかったんですよ。でも、これまでほかにやってくれる人がいなかったので仕方なくやっていたのですが、今回、手を挙げてくださる方がいてパタパタと決まったので良かったなと。
- ――
- では、念願かなって、ということだったのですね。
- まつもと
- そうです。僕の作業があまりにもトロくさいので「もう、まつもとには任せておけない」ということだったのではないかと(笑)。ただ個人的には、本当は誰かが仕事として受けてくれるといいなと思っていたのですが、それはかないませんでした。
- ――
- それは、仕事となっていた方が継続性があるから?
- まつもと
- ええ、継続性がありますし、安定しているし。それに何より、実際に作業する人が「面倒くさいけど、お金をもらえるからいいや」と思ってもらえるだろうし。
- ――
- 今は、次期バージョンの開発に専念している?
- まつもと
- はい、来年のクリスマスに「Ver.1.9.1」あるいは「Ver.2.0」という名前のものを出そうと思っているので、それに向けて作業しています。
- ――
- その次期バージョンの開発に取り組みんでいるのは、まつもとさんだけ?
- まつもと
- いえ、そんなことはありません。わたし以外の人が担当している部分もあります。次期バージョンでは、インタプリタのコアが、笹田耕一さんが開発している「YARV」になります。ライブラリについては、僕が直接メンテナンスしているものは、もうほとんどないんじゃないかな。幾つかありますが、もう、ほとんど任せてしまっています。あと僕がやっているのは、提案に対する対応ですね。「こうすると、こんな風になります」とパッチ付きで提案が来たりすることもあるので、それについて議論したり、採用する、しないの判断をしたりしています。
- ――
- Rubyの文法にかかわる部分は?
- まつもと
- Rubyの文法そのものを積極的にいじっているのは、やっぱり僕ですね。手元で変更して、あぁでもない、こうでもないと、いろいろやったりしています。全体的には、今は、コーディングしている時間よりも、仕様を考えたり、議論したりといった時間の方が多いでしょう。「あぁ、こうすれば良かったんだ」と閃いて、後はずっとコーディングできるというようなことは、この10年でだいぶやり尽くしてしまったので、今残っているのは、一生懸命考えても、なかなか答えが出ないような問題ばかりですね。ここ何日かは、例えば、メソッドの可視性を制御するprivateについてずっと考えています。Rubyのprivateは、ちょっと使いにくいところがあると自分でも思っているので、どうにかして直せないものかと。
- ――
- そういうときは、どうやって考えるのですか? 本などを参考にされるのですか?
- まつもと
- 読みますね、「ほかの言語ではどうしてたっけ?」とか。最近だと、Common Lispの仕様書である「Common Lisp the Language」という本をよく参照したりしています。あとはとにかく、ひたすら考えますね。考えても結論が出ないことも多いのですが(笑)。
- ――
- 誰かに相談したりということは?
- まつもと
- ほとんどないですね。ときどき日記に「決めかねているんだけど……」と書いたりしますけど。
- ――
- 日記に書くということは、実は、みんなの反応を見たいと?
- まつもと
- それはありますね。それを確かめてみたいとも思うのですが、実際には、なかなか反応はないですね。みんな他人事だと思っているのかもしれない(笑)。
 | |
「Ruby Ver.10」はありません
Rubyの開発は、大きく2つの版に分けて行われている。1つは、現在広く使われているVer.1.8系で、もう1つが、積極的に機能の改良や仕様変更などが行われる「次世代版」である。次世代版については、以前からまつもとが「Rite」という名前で呼んでいた完成イメージがあり、これが次期バージョンという意味で「Ruby 2.0」と呼ばれてきた。Riteは、Rubyの進化形として大いに期待を集めていたが、しかし、そのすべて実装するにはなお時間がかかりそうな情勢になってきたため、Riteを目指して開発されているものをある程度のところで取りまとめてリリースしようという機運が高まってきた。それが「Ver.1.9.1」と呼ばれるものである。
一方、現行のVer.1.8系も、機能追加はせずにバグフィックスのみを行う「安定版」と、Ver.1.8系としての互換性を維持したまま、有用な機能は追加、拡張していく「開発版」という2つの流れがある。今回の「禅譲」によって、Ver.1.8の安定版、開発版にそれぞれリリースメンテナーが就任し、まつもとは次世代版の開発に専念できることになった。
なお、Rubyの安定版は、これまでVer.1.6、Ver.1.8のように2番目の数字として偶数が当てられてきたが、Ver.1.9からはそのポリシーが変更され、奇数も利用されることになる。すなわち、Ver.1.9.1がリリースされれば、それが、Ver.1.8に代わって広く使われることを想定された「現行バージョン」となる。
- ――
- 来年のクリスマスにリリースされる次期バージョンというのは、「2.0」になるかどうかは、まだ分からない?
- まつもと
- なるかもしれないし、ならないかもしれない。まだ分かりません。今のままだとVer.1.9.1としてリリースするつもりです。ただ、周囲から「現在1.9.1と呼んでいるものを2.0にして、これまで2.0といってきたものを3.0にした方が良いのではないか」といわれて心が動いているところです。1.8から1.9への変更はそれなりに大きいので、2.0と呼びたい人の気持ちも分かります。とはいえ、これまでずっと「2.0」という名前でもっと違うものを出すという話をしてきているので、理屈としては分かるんだけど、心理的な抵抗が……(笑)。まぁ、まだ先のことだから、もう少し考えてみようと思っています。
- ――
- その「心理的な抵抗」というのは、あまりバージョン番号を上げたくないということ?
- まつもと
- それもあるんだけど、やっぱり、いままでずっといい続けてきたこと(Ver.1.9とVer.2.0)をあっさり覆しちゃうことに対する抵抗ということですよね。
- ――
- オープンソースソフトウェアの開発者は、バージョン番号をむやみに上げたがらず、小刻みなバージョン番号に固執するような傾向があるように思うのですが、これはどうしてでしょうか? 例えば毎年Ver.2、Ver.3、Ver.4と上げていっても、別に構わないと思うのですが。
- まつもと
- うーん、どうなんでしょうね……。確かに、Ver.はじめからVer.2にするような場合は何か大きなことをしないといけないなというような、プレッシャーのようなものはあるかもしれません。ただオープンソースソフトウェアの場合、コマーシャル製品とは違って、新しいものであることをことさらに強調するマーケティング的なプレッシャーはないので、バージョン番号をガンガン上げるニーズがないということもあります。
- ――
- なるほど。
- まつもと
- Rubyの場合は別の理由もあります。僕は、Rubyのバージョンは1桁にしかしないと宣言しているんですよ。
- ――
- ということは、Ruby Ver.10というのは、あり得ない?
- まつもと
- ないです。バージョン番号は2桁にはしないと宣言したので。そのためRubyの場合、バージョン番号は実は有限のリソースなんです。だからバージョン番号は大事に使わないと(笑)。
- ――
- 2桁にしないというのは、どうしてですか?
- まつもと
- 2桁以上を許してしまうと、バージョン番号をアルファベット順でソートしたときに、Ver.1.1の次が、Ver.1.2ではなく、Ver.1.10になってしまうので(笑)。ということで、Rubyで用いるバージョン番号は1桁にすると宣言しているわけです。
- ――
- なるほど。
- まつもと
- プログラミング言語というものは、一般にほかのソフトウェアに比べて寿命はかなり長くて、10年経ってやっとみんなに知られるようになりました……というようなペースですから、寿命の長さを考えると、バージョン番号を浪費することには抵抗があります。普通のアプリケーションだと、例えば4、5年もすれば「次世代のプロジェクトにしましょう」という話になったりしてバージョン番号を消費しやすいでしょうけど。

 |
僕の存在価値はそこにある
14年の歳月を経た今も、まつもとはRubyの開発で中心的な役割を果たし続けている。継続することこそが最も難しいといわれるオープンソースソフトウェアの開発において、1人の開発者が長期にわたって中心的な役割を果たし続けている例はそれほど多くない。こうしたことは、成功したから継続しているのだと思われがちだが、実際にはそう単純なことばかりではない。Rubyも、世界的に知られ始めたのは英語の書籍が発売された2000年秋以降で、Ruby on Railsによって広く使われるようになったのはこの2年ぐらいのことだ。その歴史の半分以上の年月は、いわば「下積み」だったことになる。
オープンソースソフトウェアは、多くの場合、開発者自身の個人的な必要性に駆られて生み出されることになる。自分自身どうしても欲しかったけど、その時点ではほかにそういうソフトウェアが見当たらなかったというのが典型的なパターンだ。リーナス・トーバルズは、PC互換機で自由に使える本格的なUNIX環境がほしかったが、1991年当時は貧乏学生が手軽に使えるものは皆無だったのでLinuxを作り始めた。ラリー・ウォールは、リモートにある複数のシステムのログを効率良く管理したかったが、awkでは制約が大きすぎて適さなかったのでPerlを開発した。
しかし、まつもとの場合、必ずしも自分自身の必要性に迫られてRubyを作ったというわけではなかったようだ。「オリジナルのプログラミング言語を作りたい」という夢が先にあり、それをずっと心に持ち続けながら試行錯誤を繰り返していたころで、「Perlと同じぐらい便利に使えて、本格的なオブジェクト指向プログラミングもできる言語があったら」という同僚からの示唆に出会う。それがRuby誕生の天啓となった。
大学に入って、本格的にコンピュータに触れるようになる以前から「オリジナルのプログラミング言語を作りたいと夢想していた」というのも、非凡なものの片鱗が感じられるが、まつもとの本当にすごいところは、その夢に向かってずっと着実に努力し続けてきたことにある。同僚の一言が天啓となったのも、あるいはまた、それをひらめきだけに終わらせずしっかりと結実させることができたのも、彼がその実現のために必要な「相応の知識と経験」をコツコツと積み重ねてきたからにほかならない。
思うに、Rubyの場合は、まつもと自身がそれを夢として持ち続けていたということが、今日の成功の大きな原動力になっているのではないか。夢を見ることも、ひらめきを得ることも、そのこと自体は誰にでもできる。しかし、その夢を持ち続け、それに向かって歩き続けるということを実践「し続け」られる人は、そうはいない。だからこそ、まつもとのように、継続することによって成功した存在は貴重である。世界的成功もさることながら、このたゆまぬ継続性こそ、もっと評価されていいのではないだろうか。(敬称略)
「今はRubyでプログラムを書いている時間はすごく少ない」とまつもと氏
プログラミング言語はすべて愛おしい
- ――
- Ruby以外では、メーラー(MUA)を開発されてますね。
- まつもと
- 「morq」(モルク)といいます。これは趣味として作っているもので、自分ではすでに利用しています。morqは、フォルダという概念をやめて、メールにタグをつけて管理する仕組みを採用しました。morqを使う以前は、メーリングリストごとにフォルダに分類するという、ごく一般的な方法でやっていたのですが、僕の場合、例えばruby-listとruby-dev、ruby-talkを横断的に検索したいということも結構あって、フォルダによる管理には限界を感じていたのです。メールが数十万通を超えるといずれにせよフォルダでは管理しきれませんしね。タグは、メールを受信したときにつけることもできますし、後から全文検索をしてマッチしたものすべてにタグをつけることもできます。
- ――
- これは全部Rubyで作っているのですか?
- まつもと
- いえ、表示周りのフロントエンドはEmacs Lispで作っていて、バックエンドがRubyです。morqとしての機能はすべてバックエンドのRubyで実装されているので、フロントエンドはEmacs Lisp以外で作ることもできます。
- ――
- それ以外に、密かにやっていることはありますか?
- まつもと
- 最近はあんまりないですね。あとは、原稿を書くか、シェルスクリプトを書くぐらい。
- ――
- シェルスクリプト!
- まつもと
- シェルスクリプトはけっこう好きなんですけど。
- ――
- Rubyがあるのに、シェルスクリプトを書いてしまう?
- まつもと
- 外部コマンドを呼び出さないとできないような作業って、たくさんありますよね。そういうのは、さすがにRubyよりもシェルの方が楽なので。最近書いたものだと、例えば、バージョン管理システムのラッパーをシェルスクリプトで作りました。RubyのCVSリポジトリにある修正を手元のコピーと同期させるとか、手元のパッチをCVSリポジトリに登録するとかいうものです。リポジトリと同期するときに、手元だけで当たっているパッチをいったん全部外してとか、細かいことをシェルスクリプトに自動でやらせています。結構楽しいですね(笑)。
- ――
- 今は、Rubyのコードよりも、C言語のコードを書いていることの方が多い?
- まつもと
- うーん、そうですね。原稿を書いている時間などを除いて、僕のプログラミングの時間だけを見ると、Rubyでプログラムを書いている時間はすごく少ないかもしれません。テストスイートとしてRubyのプログラムは書きますけど。
- ――
- 作っているけど……
- まつもと
- ヘビーユーザーではない(笑)。
- ――
- そのこと自体は、自分ではそれでいいと思っている?
- まつもと
- うーん……。いいんじゃないですか?
- ――
- 言い換えると、Rubyのコンセプトは「楽しいプログラミング」ということですが、Ruby以外を使っている時間が長いということは、まつもとさん自身は、「楽しくない」ことの方が多い?
- まつもと
- Rubyでやらなくちゃいけない仕事というのが確かにあって、その仕事でRuby以外の言語を使ったら確かに楽しくない。それは容易に想像できる(笑)。ただ、毎日それに直面しているかというと、そうでもないので。
- ――
- C言語で書くこと自体は別に、それはそれで構わない?
- まつもと
- でも、C言語だけで書くのは苦痛でしょうね。Rubyのためのコードを書くというのは、実は、そのフレームワークそのものをRubyがかなり提供してくれているので普通のC言語プログラミングとは少し違います。例えばガーベージコレクタはありますし、メソッドを呼べるのでオブジェクト指向感覚で組めるとか。なので、RubyのためのC言語プログラミングというのは、一般的なC言語プログラミングと比べてかなり特殊なんです。RubyのためのC言語プログラミングをやっているときは快適だけど、ほかのC言語プログラムをいじっているときに同じように快適かといわれると、かなり違うと思います。
- ――
- 逆に、Ruby以外のことだと、別にC++などを使ってもよいと思っている?
- まつもと
- と思ってますよ、はい。ただC++を使っていて嫌なのは、何というか乱用できてしまうので、そういう人と一緒に仕事をすると自分がしんどいというのはあります。以前、一緒に仕事をしている人がカンマオペレーターを再定義していて、ひどい目に遭いました(笑)。自分だけでC++を使う分には、たぶんそういうことはないと思うので、そのことについて別にどうこう言うつもりはないですね。だから、どうしても使わなくちゃいけなかったら、もちろんC++も使います。でも、なかなかそういう機会はありませんけど。
- ――
- Javaを使う機会はないですか?
- まつもと
- 全然使わないですね。
- ――
- 使いたいともあまり思わない?
- まつもと
- 思わないですね。使わなくちゃいけない局面があまり思いつかないので。僕はお客様のためのプログラムを作らないのでパフォーマンスクリティカルなことはめったにないですし、そうなると、Javaじゃなくちゃいけない必然性というのはないですね。また、今のわたしは企業プログラマーでもないですし。そうすると、Javaを使う局面がないという……。
- ――
- JavaでできちゃうことはRubyでできそうですしね。
- まつもと
- そうですね。もちろん、幾つかの条件があれば、Javaが適切だということはいっぱいあると思うのですが、その条件が満たされることは、僕にとってはないということです。別にJavaが嫌いということではないけれど、僕にとっては不要という感じですね。Javaを嫌ってるんじゃないかと誤解されやすいのですが、そんなことはありません(笑)。
- ――
- 嫌っているわけではないと。
- まつもと
- 嫌っているわけではないですよ。僕はすべての言語を好きなので。
- ――
- それは、いい面も悪い面も?
- まつもと
- いい面も悪い面も含めて。「しょうがねぇなぁ」ぐらいのことは思っても、別に忌み嫌ったりとか、そういうことはないです。
- ――
- プログラミング言語は愛おしい、と。
- まつもと
- みんな愛おしいですね。特定の言語を使うことを強要されないかぎり(笑)。
いずれもRuby関連のメーリングリスト。ruby-listとruby-devは日本語でやり取りされているメーリングリストで、前者は使用に関する、後者は開発に関する情報交換のためのもの。ruby-talkは英語のメーリングリスト。
オープンソースソフトウェアと「責任」
- ――
- ビジネスが増えてくることで、Rubyの開発に対して、特定のビジネスのためだけに機能を追加するような要求が増えてきたりはしていませんか?
- まつもと
- 僕もあるかなと思っていたのですが、意外にないですね。ビジネスとして何か必要なことは、Rubyよりも上位のレイヤで――例えば、ライブラリを作ったり、アプリケーションフレームワークに手を入れたり――対処できることが多いからでしょう。Rubyのところまで要求が「下りてくる」ということは、ほとんどないですね。たまに「もっと速くしてくれ」というような、「気持ちは分かります」的なことを言われるときはありますが(笑)。
- ――
- まつもとさん自身が意識して、Rubyの開発の独立性を保とうとしている面もあるのでしょうか?
- まつもと
- いや、あまりそういう意識はないですね。ほかの人の邪魔になりさえしなければ、特定の誰かのためにRubyが変化していくというのはアリだと思っています。仮に「見返りに何かしますから、こういう機能を……」という申し出があれば、僕はそういうことを抵抗なく受け入れるタイプなので(笑)、他人を邪魔しないという原則に反しない限りは対応したいと考えています。残念ながら、そういう話はまだ一度もないのですが。
- ――
- RubyをNetNewsで最初に公開したときには、ある程度、使ってもらいたいという意図があったのですよね?
- まつもと
- 使ってもらいたい……はい、そうです。
- ――
- つまり、自分の趣味で作っているというよりは、もうちょっと、ほかの人にも使ってもらいたいという意識はあったわけですよね?
- まつもと
- はい、(ほかのスクリプト言語と)同じぐらいにはちゃんと使い物になるものを、とは思っていました。
- ――
- そのとき、ここまで本当に広く使われるようになると考えていましたか?
- まつもと
- 全然考えていませんでした。プログラミング言語は、特にオープンソースのプログラミング言語はすでにたくさんあって、ほとんどものは、知っている人は知っているけど知らない人は全然知らないというレベルなのですが、そういうものの1つになるのかなと思っていました。
- ――
- 最近は、海外でも広く使われるようになっていますし、Ruby on Railsによって仕事で使うという人もますます増えてきています。そうした状況の中で、まつもとさんが感じる責任、あるいは受けるプレッシャーというのは変わってきましたか?
- まつもと
- うーん、たまに感じますけど、なるべく感じないようにしています。僕は変わらないぞ、と。
- ――
- あえてそこには踏み込まないことにしている?
- まつもと
- ときどき、社会的責任が……という人もいるのですが、「ふざけるなー」という感じで無視することにしています(笑)。
- ――
- ただ、作っている本人は、あまり意識したくないと思いつつも、ある瞬間から周囲が勝手に何かを期待しちゃうという、ことはありますよね。
- まつもと
- 期待する人は、期待するだけのコストを負担しているか、という話になるでしょうね。そのコストを負担する気があるなら、負担されたコストを使って、その責任を果たすプレーヤーが出てくると思うんですよね。
期待されているからということで、僕が無償で何もかもやってしまうことはできないし、仮にやれても、その僕がつぶれたらうれしくない人も多いでしょう。少なくとも僕はうれしくない。逆に、それそのものがビジネスチャンスじゃないですか。実際、Linuxなどはそうなんですよね。Linuxディストリビューションを作る企業が、そのリスクを取って、ビジネスにしているわけで。Rubyにおいてそういうチャンスを奪わないためにも、僕はむしろ、期待に応えない、話も分からない人でいた方がいいんじゃないか、と思っています。
- ――
- わたしもまったくその通りだと思うのですが、なかなか理解できない、してくれない人もいますよね。
- まつもと
- それはしょうがないですよね。最初からすべて分かるのは無理なので、そういう人が出てきたときには、根気よく「Rubyは無保証ですから、保証がほしければ必要なプレーヤーにお金を払ってくださいと言い続けるしかない。そういうプレーヤーがいなければ、あきらめるか、そういうものを作ることを考えてみたらと突き放していこうかなと、いつも思っています。理解してくれない人が出てくることはしょうがない。これからも何回も何回も出てくるでしょう。それに対しては、繰り返し同じように対応していこうと思っています。
- ――
- そういう意味では、Rubyも、Linuxカーネルのように、開発リリースとは別に、Rubyの「ディストリビューション」を作る人が出てくるといいいのかもしれませんね。
- まつもと
- ええ、あってもいいと思います。海外では、例えば、ワンクリックインストーラーという形で出している人がいますし、わたしたちの会社(ネットワーク応用通信研究所)が「Rails Platform」という名前で有償のパッケージを出したことにも、そういう意図があります。こういうビジネスが軌道に乗っていけば、Linuxディストリビューションの会社がやったのと同じような立場になっていけるかもしれないと思います。不幸なことに、今はまだそこまでいってませんが。まだ最初の一歩ですよ。
- ――
- まつもとさんとしても、もしなるのであれば、そういうふうになった方が良いと。
- まつもと
- とにかく、僕個人がやるのは嫌なんですよ。抱え込むことになるから。例えばうちの会社なりが、お金を取るからやりますという話になるなら、それは大賛成です。別にうちの会社じゃなくてもいい。どこかの誰かが、わたしたちはビジネスでそれをやります、というふうになるといいですよね。そのとき、何か手伝ってくださいという話になれば、協力は惜しまないですよ。でも、僕自身はやらない。
- ――
- Linuxカーネルの場合、開発しているソースコードのツリーも単一ではなく、リーナスのツリー、アンドリュー・モートンのツリーなどというように、たくさんのツリーが並列していて、そのためにわざわざ、そういうことができるソースコード管理ツールを自作してまでして使っています。今後、Rubyをそういう体制にするという考えはありますか?
- まつもと
- うーん、そこまでしようとは思わないですね。僕からは積極的にはそうしないけど、そうしたいという人がいたら、つまり、僕のソースコードツリーから吸い出して、別のツリーを作ろうとやってくる人がいれば、相談には乗ろうと思っています。
「僕の存在価値」
- ――
- Rubyに関して、まつもとさんが引き受けている部分は、Rubyのプログラミング言語としてのコアコンピタンスというか、楽しいプログラミングを目指すRubyの哲学というか、そういう部分にあるわけですよね。
- まつもと
- そうですね。やっているのは本当にコアのところだけです。インタプリタとか文法そのものとか。組み込みのクラスライブラリとか。それ以上のことについては、責任を持つのは難しいのが正直なところです。だから、もしかすると周りの人が持つイメージとはちょっとギャップがあるかもしれない。普通、Rubyといったら、インタープリタだけじゃなくて、ついてくるライブラリとか、そういうのを全部含めての話ですから。でも実際に僕が面倒を見ているのはコアだけなんで。
- ――
- まつもとさん自身は、Rubyを標準ライブラリも含めて、きちんと使える形で自分が出したいということにこだわっている?
- まつもと
- その方が、うれしい人が多いんじゃないかなぁ……というふうには思ってはいるんですけど。「僕が管理して面倒を見たいものだけを提供していっていいのか?」と。そのままだとユーザーにはなかなか使い物にならないので、その間のギャップをどう埋めるかということですよね。
- ――
- ほかにたくさん例があるわけではないのですが、例えばLinuxはそうですよね。リーナスを中心としたコミュニティーが開発しているカーネルだけでは何もできないけど、それ以外のグループや企業がいろいろなソフトウェアを組み合わせて、ユーザーが利用しやすい形のLinuxディストリビューションが作られている。そうした方が、いろいろな意味で、まつもとさんも、もう少し楽になるのではないかと思うのですが。
- まつもと
- まぁ、そうなんですけどね。まだちょっと揺れています。
- ――
- やっぱりちゃんとした形で提供したいという気持ちが強い?
- まつもと
- ユーザーが使えて「ナンボ」ですからね、結局。僕が楽だから、僕が楽をするために何もかも切り落とすというのは、それで本当にいいのかどうか分からないですね。やってくれる人がいさえすれば、それはそれでいいと思うんですけど、僕がそれをやめたら、誰もそれをしなくて、結局エンドユーザーには届かないというオチになりそうなので、それは嫌だなと思うわけです。
- ――
- もっとはっきりと、いろいろな人がやれる状況になれば……
- まつもと
- 必要なものが入ったものが出るということが分かっていれば、僕がやらなくてもいいのですが、それが分からない現状でそれを積極的にやめるというほど、ユーザーから距離を置いているわけではない、という感じです。
 |
Perlのラリー・ウォール
Rubyにも大きな影響を与えたスクリプト言語「Perl」の生みの親。現行バージョンであるPerl5の開発はほかの人に任せ、自身は、将来版のPerl6(これまでのPerlのバージョンアップというより、まったく新しい言語として設計し直されている)の言語デザインに注力している。
|
|
- ――
- 例えば、Perlのラリー・ウォールのような立場はあこがれますか? それとも、やはり実装という部分にも未練はある?
- まつもと
- プログラミング言語というのは、実装してみないと分からないことがたくさんあるんですよ。最近、Rubyインタープリタのほかの実装が出てきたりもしていますが、僕には手元に自分で自由にいじれるインタープリタが必要なんですよ。
- ――
- Rubyの仕様という部分でも、まだまだやることはあると。
- まつもと
- あと10年ぐらいすれば、Rubyの仕様も、だいぶ固まっているんじゃないかと思いますね。
- ――
- そうすると、あと10年ぐらいで、Rubyに関しては、もうあまりやることはなくなってしまう可能性が……。
- まつもと
- 確かに。そうしたら、どうしましょうね……。
- ――
- どうしましょう(笑)?
- まつもと
- そのときはRuby6という名前で、違う言語を……(笑)。
- ――
- Rubyをやっていることに、いつかは終わりが来るだろうなという、そういう意識はありますか?
- まつもと
- あまりないですね。あまりなかったけど、今そう言われてみれば、そうかもしれないという気になっている……。今、思いました(笑)。普段は全然、考えたことはなかったですけど。
- ――
- どうなんでしょう、死ぬまでRubyをやっているかな、とか?
- まつもと
- 今のいままでそう思っていたんですけどね。でも、あと10年で死ぬわけじゃないですからね。もうちょっと生きるつもりはあるので。
- ――
- あるいは、ここまでいったら、Rubyも、一応、もういいかなという「ゴール」はありますか?
- まつもと
- あまりないですね。みんなから結構評判がいいので今の1.8のままでいいかなと思うときは、ときどきあるんですが(笑)。
- ――
- あるいは、シェアでJavaやPerlを抜いたら、とか。
- まつもと
- それは全然考えたことがないですね。例えば何かのシェアでJavaに勝ったとしても、何もいいことないですからね。それでRubyを使う人が増えて、Rubyで幸せな人が増えるのは、それはそれで望ましいと思いますけど、でも、それ以上ではないですよね。使う人が増えても増えなくても、僕には何も入ってこないし。
- ――
- でも、Rubyで幸せになる人が増えるということはうれしい。
- まつもと
- 自尊心が満足するので。「ああ、そうか、良かったなぁ」という感じ(笑)。逆に、広がってきちゃうと、Rubyで不幸になっちゃう人もいないとも限らないので……。
- ――
- Rubyで不幸になる?
- まつもと
- 本人はRubyなんか性に合わないのに、上司の命令でRubyを使わされちゃうとかね。いまだとPerlやPHPでよくあるケースですけど(笑)。将来、Rubyでもそういうことが絶対に起きると思うんですよ。それを見るぐらいだったら、いっそ広まらない方がいいかなとか思ったりして(笑)。
- ――
- 最後はユーザーが選択できる方が良い、と。
- まつもと
- そうですね。やっぱりLispの方が幸せとか、Pythonの方が幸せとか、そういう人はきっといるので。そういう人たちがRubyを選ぶことを強制されない世界の方が健全なんじゃないかなと思います。ただ、世の中は、なかなかそういう方向には行かないのですが……(笑)。
- ――
- では、まつもとさんの3年後、10年後というのは、どうなっていると考えていますか?
- まつもと
- 3年後だと、その次のRubyとかをやっていそうですね。
- ――
- 2.0ですか?
- まつもと
- 2007年に出すやつの次(笑)。2.0の次かもしれないし、1.9の次かもしれない。名前は分からないけど。
- ――
- その次のRubyを、相変わらずやっていると。
- まつもと
- やっていると思いますね。しゃべったり、文章を書いたりしながら、細々とやっているんじゃないかなと。
- ――
- 3年後は「Rails景気」が最もっと盛り上がってるかもしれませんよね。
- まつもと
- それは十分にあり得ると思いますけど、でも、それによって僕自身はあまり変わらないかな。
- ――
- 自分に対しては、あまりインパクトがあるとは想像していない?
- まつもと
- 僕の生活はそんなには変わらないんじゃないかな。
- ――
- それは、結果として変わらないということでしょうか。それとも、流行ったとしてもあまりかかわりたくないというか、自分は変わらず、やっぱり今のようなことを続けていきたいということなんでしょうか?
- まつもと
- 変わらないと思っている方が強いですね。というのは、Railsで仕事が増える人たちは増えると思いますし、うちの会社のビジネスも、できればもっと良くなってほしいですけど、だからといって、じゃあ僕がどうこうという話には直接にはつながらない。例えば、今より講演が増えたりするとか、インタビューが増えたりするということはあるかもしれない。今でも十分に多いけど(笑)。11月だけで新聞に2回出たりとかね。でも、むしろ、消費されてしまう方が怖いかなという気がします。
- ――
- 消費とは?
- まつもと
- 一部の芸能人みたいに、一時的に露出が増えたのはいいけど、その後はガクンと減るということですね。あまり変化しないで細々とやった方がいいんじゃないかなという気はします。細く長く、と。
この机から次は何が生み出されるのだろうか
- ――
- 10年後は?
- まつもと
- 10年先のことは考えないタチなんですよ。10年前に、何か今のようなことを考えたかというと、全然考えていなかったので。10年後ねぇ……、できれば今の延長線上でいたいなと思っています。
- ――
- そうすると今の状況は悪くないというか、ご自身なりには快適な……
- まつもと
- そうですね。でも、10年経ったらだいぶ老人力が強くなってくると思うので(笑)、若い人と一緒にディスカッションしながら作っていった方が良いものができるとか、そういうことはあるかもしれないですね。いままでは、ずっと自分一人でデザインしてきたところがあったので。もちろんいろいろな人の新鮮なアイデアによってRubyが進歩したということは確かにあるけど、誰かと相談しながらデザインとかいうようなことはほとんどしていない。将来、そういうのがあった方が良くなるような時期が来るのかもしれない。それって今のラリー・ウォールみたいな立場なのかなぁ。
- ――
- 将来的にやりたいということは何かありますか? 大学で教えてみたいとか……。
- まつもと
- あまり教育には関心はないかな(笑)。例えば、1回教えるとか、集中講義で教えるというのは結構面白いけど、でも大学の教員というのは一生懸命教育しないといけないので、そういうものよりは、やっぱり何か作っていたいなという気がします。
- ――
- アラン・ケイのように子どものプロジェクトにかかわりたいとか……そういうのは?
- まつもと
- アラン・ケイは、最初から子どもにすごい関心が高いですよね。僕はプログラマーにしか感心がないので(笑)。プログラマーを育てたいというのは思うかもしれないですね、将来。子どもじゃなくて(笑)。
- ――
- プログラマーを育てたい?
- まつもと
- 僕自身は、現時点では、プログラマーの負荷を軽くしたいといつも思っていて、それはRubyを作ったり、直したりするときの原動力になっているところがあります。たぶん、何かツールを提供するというような形で、間接的にプログラマーのお手伝いをしていきたいとは思っています。
- ――
- それは、プログラミング言語以外のソフトウェアという可能性もある?
- まつもと
- もし僕に、ほかの人よりもうまくデザインできるものがあれば、それはやってみたいですけど、今は何も思いつかないので(笑)。たいがいのものは、僕よりもっとうまくできる人がもうやってますよね。僕が何か、これはうまくいきそうだと思うものがあれば手をつけるかもしれないけど、現時点では思いついていないという。
- ――
- そういえば、大学院に行かれてましたよね?
- まつもと
- 島根大学の大学院に所属していました。2006年3月で後期課程の3年が終わったのですが、それまでに論文を1本しか書けませんでした。学位をもらうには3本は必要で、あと3年ぐらいの間に、あと2本書いたら審査してあげますといわれていますが、どうもこのペースだと、書けそうにないなと(笑)。めでたく単位取得退学です。
- ――
- 論文を書くということにはあまり興味が持てない?
- まつもと
- 僕が得意なところというのは、プログラミング言語をバランス良くデザインするというところなので、学術的な観点から言うと価値は低い(笑)。
- ――
- 確かに、アカデミックな人にとっては、ちょっと目指しているところは違うかもしれない(笑)。
- まつもと
- もともとこっちの方がいいといっても、根拠が何もないんですよね。「みんな、いいって言ってますから」では、ぜんぜんダメですからねえ、この世界では。一番得意なところでは論文は書けないので、そうすると、得意じゃないところで論文を書かなくちゃいけないのですが、それにはやる気の維持という最大の課題があるという……(笑)。
- ――
- そうすると、やっぱり、プログラマーというか、プログラミングが一番好きだと。
- まつもと
- プログラミングで評価してくれたら……。まぁ、今でも十分評価してもらっていますので、それはそれでいいかな。でも実は、僕はプログラマーとしてはたいしたことはないんですよ。例えば、誰かがRubyを実装し直したとしたら、いまのRubyよりもずっとエレガントで速いものができるはず。そういう観点からすると、あまりプログラマーとしてもたいしたことはない。天才プログラマーとか言ってくれる人はいますけど、それはどこを見てそうなんだ、言ってみろ、と問いたい(笑)。
- ――
- 自分よりももっとエレガントにコーディングできる人はたくさんいる、と。
- まつもと
- そうですね、性能の高いプログラムを書ける人はいるでしょう。まぁ、でも、そういう人たちにはRubyは作れなかったわけで。その辺に僕の存在価値があるのかなと。
- ――
- それはやっぱり、楽しいプログラミングを目指した言語デザインの感覚というのが……
- まつもと
- あったんでしょうね。
- ――
- それが、まつもとさん自身の強み……
- まつもと
- 強みなんでしょうねぇ。僕は、自分では自分に才能があると思っているわけではないのですが。Rubyはたいして性能がいいわけでもないのに、使いやすいといって使ってくれている人が多い。それはつまり、僕が言語設計者としてやってきたデザインが正しかったからなんだろうなぁとは思います。Rubyにおけるたくさんのデザイン上の選択で、もちろん全部が正しかったわけではないのですが、正しい選択をする割合がほかの人よりも高かったということなんだろう、と。僕とほかの人の違いというのは、そこなのかなぁ、と。あまり自覚はありませんけどね。
参考文献
著者について  | |  | 風穴 江,ITmedia |
記事の評価
|