普通の高校生がプロになろうと思っているわけでもないけど漫画を描いたりするじゃないですか。あれとあまり変わらないですよね。何も実体は伴わない感じです(笑)川井:そういうのは、周りの人たちからはどんな風に見られていたんですか?Matz:コンピュータやっているという時点で、すでに異常だったんですよね(笑)。学校では、コンピュータの話をしても関心を示し分かってくれる人は居なかったので、殆んどその話はしませんでした。漫画やアニメの話をする友達は多かったので、普段はそんな話をしたりしていました。あとは、変なクラブに入っていたので、その仲間と遊んだりしていましたね。川井:ちなみに、その変なクラブって言うのは?Matz:超科学研究同好会というクラブに入っていました(笑)川井:それはまたどんなクラブなんですか(笑)??Matz:一応、もともとの主旨は超能力やUFOを研究するというテーマだったんですけど、なんでもやってましたね。川井:コンピュータやプログラミングの他にも、結構色々なことをやられていたわけですよね。Matz:そうですね。自分でプログラミングをするのはおかしい人で、世の中にはそういう人はいっぱいいるけど、私の周りにはいないよねっていうそんな感じの高校生でしたね。Matz:それで、大学に行ったら、一応、情報系の学部なんで、多くの人はコンピュータをやりたいから入学したという人で、例えば自宅にコンピュータがあって、ゲーム作りましたって人もいっぱいいて、「そういう人たちはやっぱりいたのね」って思ったんだけど、どうも話をしてると、プログラミング言語を作ろうって人はやっぱりいなくて(笑)、やっぱり小数派だったのね。知らんかった(笑)みたいな感じでした。川井:みんな言語を作ろうと思っているに違いないと思ってたんですね。Matz:まあ、全員ではないにしても、情報系の学部なら3人に1人ぐらいはいるかなって思ってたんですけどね。全員に聞いて回ったわけじゃないですけど、私と同じ学年に80人居ましたけど、見た感じ、プログラミング言語を作ろうと思っている人はいなそうでしたね(笑)川井:独自性は随分前から発揮していたんですね(笑)Matz:まあ、変だったんですよね(笑)川井:大学では、プログラミングの勉強に没頭した感じですか?Matz:没頭したというわけではないですけどね。したプログラミングをできる環境が手に入ったのは大学に入ってからなんです。今までは、よその世界でプログラミングしている人の記事を読んで、あこがれていただけなんですが、大学に入って実際にプログラミングがちゃんとできるようになったというのはありましたね。筑波は1年からプログラミングの授業があるので、ずっとプログラミングをしてました。相変わらず数学の成績は悪かったんですけど、プログラミング関係の授業だけは成績がやけにいいといった感じでした。川井:トップエンジニアの方々にお話をお聞きすると、小さい頃からプログラミングを経験してきた事がある人達は、大学に行っても知っている事ばかりで退屈だったという方もいれば、逆に体系的にプログラミングを勉強する機会は初めてだったので面白かったという方とで、二分するのですが、どちらかというと後者の方ですか?Matz:そうですね。色々な授業があったのですが、例えばアルゴリズムとかちゃんと勉強する機会ってなかなかなかったので、そういう勉強が出来たのは貴重だったと思います。あとは、今までは家の貧弱なコンピュータを使っていて、そんなにちゃんとした環境ではなかったんですが、大学には小さいのから大きいのまで色々なコンピュータが用意されていたので、4年間そういったコンピュータでプログラミングが出来た事は、ありがたかったですね。川井:大学に入ってから、プログラミング言語を作るっていうことについては何か進展があったんですか?Matz:大学3年くらいまでは、プログラミング言語を作ることって結構大変だし簡単なことではないので、自分には無理かもなって思ったんです。4年生の頃の研究室配属で、通称「言語研」と私たちは呼んでいたプログラミング言語について研究する研究室に配属されてから、「もしかして、やっぱり自分にも作れるんじゃないか」と思い始めて、言語設計に取り掛かりました。大学3年までは、そこまで本気ではなかったんです。川井:じゃあ、大学4年になって本格的に着手したということですか?Matz:本格的に着手というほどではないんですが、まあ、卒論のテーマなんかは「プログラミング言語を作る」というテーマでしたね。「言語研」とはいっても、プログラミング言語をデザインするという研究室ではないんです。日本中探しても、そんなことをしている研究室はないと思いますしね。実際に「言語研」でやっていた研究は、「いかに最適化を行うか」とか「どういう風にプログラミング言語処理系の開発ツールを作るか」といった内容でした。私が「言語デザインしたいです」と言っていたのは、研究室からしてみれば全然関係ない話で、無茶苦茶だったと思います。担当教官の先生はよく認めて下さいました。川井:言語を作るにあたって、色々な言語を見たと思うんですが、大体どのくらいの言語を研究されてきたんですか?Matz:大学の3、4年のときは、結構、図書館に入り浸ってプログラミング言語の本や古い雑誌を見つけては、「いっぱいあるんだなあ!」と思いながら、とにかく読んでいました。川井:世の中の主たる言語については全部見たという感じですか?Matz:見たは見ましたね。実際に使ってはいないので経験に裏打ちはされないんですけどね。川井:その中で、自分の理想とする言語はどんなものかという具合に決めていった感じですか?Matz:そうですね。Construction(オブジェクト指向ソフトウェア構築法)」(邦訳「オブジェクト指向入門」アスキー刊)というタイトルの本を出していて、当時、その本の原書を買ってきて一生懸命読んだんですが、その影響はかなり大きかったですね。このEiffelというプログラミング言語は、Adaという言語に対してオブジェクト指向の拡張をもっとちゃんとするとどうなるかっていうアプローチでデザインが始まっているんですよ。私はCプログラマだったので、卒論のテーマは、AdaがEiffelになったベクトルをCに対して加えると何が出来るかというアプローチで言語デザインするというものでした。経験は足りないし、時間はないしで、まったく実用にはならなかったですね。この時デザインした言語は、コンパイル型で静的な型があって、多重形状でといった感じで今のRubyとは全然違っているんです(笑)。川井:全く違いますね。Matz:まあ、そっちもやってみて、今はRubyに落ち着いたというのもあるんですよね。川井:ちなみにRubyを作る前には、いくつくらいトライしたことがあるんですか?Matz:実際に動くところまで持っていったのは、Rubyの前はその卒論の時に作った言語だけですね。途中でやめちゃったとか、文法を考えただけとか、名前を決めただけとか、そういうのも数えると結構な数になるんですけど、普通、そういうのって書いたとは言わないんで(笑)、ある程度動くところまで行ったのは、Rubyの前は卒論の言語1個だけですね。川井:本当に趣味というか、生涯やりそうな感じなんですね。Matz:本当にそうですね。ここまで来るとは思いませんでした。川井:ちなみに、大学の休学中のお話をお聞きしてもいいでしょうか?Matz:はい、大学2年が終わった時点で休学して,2年間、キリスト教の宣教師をしてました。中国四国地方が私の担当のエリアで、その間はずっと布教活動をしていました。大体アメリカ人と二人組で、自転車に乗ってあちこち回っては、教会の説明や奉仕活動をしていましたね。川井:何かきっかけがあったんですか?Matz:私、子供の頃からクリスチャンなんですよ。川井:それはご家庭がとかなんですか?Matz:はい、家族全部がです。川井:その信仰がRubyを創ることに結びついているといった内容の記事を見たことがあるんですが、それはどんな理由があるのでしょうか?Matz:それは、周りが言っているだけじゃないですか(笑)本当に子供の頃から教会に行ってて、宗教は私の一部なので、宗教があるからRubyを作ったっていうのはあまりないんじゃないかなって思いますね。私の所属してる教会のメンバーは世界中に何千万人もいて、その中でプログラミング言語を作ったのは私くらいでしょうから、論理的に考えると宗教と言語設計の関係はどうなのよって思うんですけどね(笑)川井:論理的に考えるとそうですね(笑)。Matz:ただ、2年間の宣教師活動の経験があるので、相棒にアメリカ人がいたり、ボスがアメリカ人で、日常的に英語に触れる機会も多くて、普通の日本人が中学から大学までただ授業で英語を勉強してきたっていうよりはもっと英語に対する経験を持っているとは言えると思います。Rubyが海外に出て行くときに、英語でコミュニケーションしないといけないわけですけど、その時に英語を喋れって言われたらなんとか喋れるとか、あるいは英語でドキュメントを書こうとそもそも思うとか、そういうところってそういう経験がきっかけになっているとは思いますね。それから、宣教師活動中は、すごいたくさんの人に会うので、中にはいいひとも悪い人もいるんですけど、その中で「人間はそれぞれ違う」とか「黙っていても伝わらない」っていうのを学んだっていうこととかは、役に立ってるかもしれませんね。オープンソースプロジェクトっていうのはコミュニティによって支えられている部分がたくさんあるので、コミュニティを運営しないといけないわけですよね。コミュニティを運営しているといろいろな人がいて、中には扱いにくいひともいるわけですけど、喧嘩とかするとすぐにバラバラになっちゃうんで、そういう人たちに対しても適切に接するという部分では実利的に役に立ったことはあったんじゃないかなとは思いますね。川井:Rubyのコミュニティの雰囲気って、まつもとさんの人柄そのものっていう感じがしていて、素人の人にもオープンな雰囲気があると思います。Matz:ありがとうございます。本人はあまり自覚がないんですけどね(笑)川井:大学を出て就職する際に、どんな基準で会社を選ぶとかってあったのでしょうか?Matz:先生からは大学院にもいかないかって言われていたんですけど、私は6人兄弟の一番上だったこともあり、いつまでも親のすねを齧っているのもどうだろうと思っていて、かといってバイトだけで学業をやりとおせる自信もなかったんで、「まあ、就職するか」って思って、普通に就職活動しました。当時はまだバブルが終わっていない時代だったので、リクルートからこんな分厚い本が届いたり、今よりは楽だったと思うんですけど。基準の一つは「面白そうな仕事が出来そうなこと」でしたね。プログラミングの仕事ってピンキリだと思うんですが、言われるがまま歯車のように働くのは嫌だなと思ってましたね。創造的な仕事ができそうなところがいいなあと。あと、もう一つ、東京は嫌だったんです。川井:やっぱり昔からそうなんですね(笑)Matz:私の原点は変わらないですね(笑)だから、東京じゃないところで働けて条件に合った会社っていうのが最初に入った会社で、本社は東京なんですが、静岡県の浜松にある研究所で働ける会社でした。そこで4年ぐらい働きましたね。川井:東京に出てくるとどうしても大手に入ってしまったりしそうですが、反対に東京以外っていうようにセグメントしたのが、やりたい仕事ができる環境がより多かったのかなと思いますが、どうなんでしょうか?Matz:どうなんですかね。私は割といいところに配属されたと思うので、それはよかったと思います。バブル期だったのもあって、私の同期は300人近くいたんですよね。1,000人くらいのSIerだったので、300人入るってことは1年で4分の1増えるわけですよ。その300人近くの新人の中で、大学でコンピュータサイエンスをやったっていう人は6人しかいなかったんです。残りの人たちは理系でもコンピュータ経験ないし、文系はそれ以上にいっぱいいるという状態で。それで、その6名は貴重なコンピュータサイエンス経験者ということで優遇されて、わりと面白そうな仕事に回してもらえました。大企業に入社してコンピュータサイエンスをやりましたって人たちばっかり100人いるところですと、満足するポジションを得るためには100人の中で競争して勝たないといけないんでしょうけど、幸い私のところはわずか6人しかいなかったので重宝してもらえてありがたかったというのはありますね。川井:当時はどんな環境でやられていたんですか?Matz:プラットフォームがSONYのNEWSというUNIXを積んだワークステーションでした。当時はBSD系だったんですけど、その上でCで作っていました。川井:当時というと1990年前後ぐらいですか?Matz:入社が1990年でした。入社した当時は景気がよくてボーナスが結構たくさん出ていたんですけどね。その事があってから、まつもと家では「家計にボーナスを組み入れるな」という家訓ができました。川井:ボーナスが当たり前の設計だと厳しいときがありますよね。Matz:で、仕事の方も,景気が悪く予算がないので新規開発はしてはいけないということになったんです。アメリカだったら真っ先にクビになりそうですけど。日本だったのでクビにはならなくてフラフラとしてて、暇なんで時間もあるしコンピュータもあるし、好きなプログラムでもするかなってことで始めたのがRubyなんです。Matz:不景気が生んだ言語ですね(笑)川井:なるほど、面白いですね(笑)するとその時は仕事中にやっていたんですよね?Matz:はい、仕事中もやってましたね。今じゃコンプライアンスがどうこうって言って難しそうですけどね。川井:何年目くらいからRubyを作りはじめたんですか?Matz:1993年2月なんで入社して3年目の終わりくらいからですかね。川井:どれくらいの期間で形になったんですか?Matz:内輪にリリースしたのが94年の10月なんで、1年以上かかってますね。川井:それくらいで作ってしまったんですね。Matz:インターネットで広く皆さんに使ってくださいって言ったのが95年の12月ですから、それまでには3年くらいかかってますね。川井:コンピュータ言語を作るって想像がつかないんですけど、どういう流れというか工程が必要なんですか?Matz:私もそんなに言語を作ったことはかなったんで、今だから言えることなのかもしれないんですけど、プログラミング言語を作るって実はそんなに大変じゃないんですよ。いろんなところにフリーのソフトウェアのソースコードがあるんで、それを見ながら、ああ、こんな風にやるんだって言って、それをこっちに持ってきてとかRubyだったらこうするよねとかいう風に考えるんです。Worldを出したいと考えるよと思うんですけど、そうするとまずはプログラムが読み込めないと駄目ですよね。Matz:なのでプログラムを読み込む部分を書くわけですよ。World”は文法的に正しいとか文法チェックがまずできるんですよ。Matz:今度は、文字列を読み込んできて文字列オブジェクトを作らなくちゃならないんですよね。”」の間を読み込んできて、それをメモリ上にコピーして文字列を作るみたいなものを作るんですよ。すると文字列ができるんです。Matz:オブジェクト指向言語なんで、文字列っていうのはオブジェクトじゃないですか。文字列オブジェクトってことはクラスがいるよねっていうことになって、クラスがいるってことはオブジェクトクラスがあって、クラスツリーがあってと、どんどんと書かないといけないわけですよ。Matz:それが終わると、文字列オブジェクトできたってことになるんですが、でもまだ出力できないんですよ(笑)川井:(笑)Matz:なので、今度はファイル入出力するために、関数書いてクラスを書いたりするわけです。worldが出た!って言ってたのが1993年夏ぐらいなんで、半年くらいかかってますね(笑)川井:目的のための積み上げていく感じですね。worldを出すために延々とやってた感じです。Matz:でも、しばらくやっていくとメモリが減ってくるわけです。それでガーベージコレクターがいるよってことになるんですけど、リンクすると動くBoehmGCっていうガーベージコレクターのライブラリが当時からあったんですけど、リンクしたら落ちちゃったんです。Matz:なので、しょうがない、自分で作るかって言って、これまた何ヶ月かかけて自分で作ったりしてました。Matz:あとは文字列だけじゃ駄目なんで、整数がいるとか、配列がいるとかハッシュがいるだとかどんどん追加していくわけですよね。それでどんどん積み上げていって、ある程度使えるようになったかなというところまでで大体1年と10ヶ月くらいですかね。それで、今はほとんどなくなってしまっているNetNewsっていうメディアで、「こんなものを作っているんですけど、誰か手伝ってくれる人はいませんか?」って募集したら何十人か集まってくれたんです。Matz:それで、itojun(いとぢゅん)さんの好意でFTPサイトとメーリングリストを提供していただいて、何十人かで相談して作っていたんですけど、1年経ってもう少しましになったなってことでソースコードも含めてNetNewsで公開したのが、1995年の12月ですね。当時から関わっている方で、今でもコミュニティで活躍されている方っていらっしゃるんですか?Matz:例えば、一緒に本を書いている石塚圭樹さんは、もともと私の同僚でRubyを始めたときにも一緒にいた方ですが、今でも手伝ってもらっていますし、渡辺博文さんって方は、一番最初の頃にWindowsやDOSでRubyを動かすのを手伝ってくれたんですが、今でもお手伝いいただいています。川井:1つの言語がこうして皆さんの力も含めて出来上がっていくのって醍醐味がありますね。Matz:そうですね。自分だけでの力で作ったとは言えないですね。川井:その間、仕事の方は変化はあったんでしょうか?Matz:Rubyを作り始めて次の年の1994年にあまりに景気が悪くて会社が傾くかもしれないと思って、いろいろと探していくつか面接は受けたんですが、やっぱり東京は駄目だと思って、オブジェクト指向のことも分かるし、C++も書けますっていう触れ込みで名古屋の会社に転職したんです。川井:何をやっている会社だったんですか?Matz:会社そのものはトヨタの子会社で、部品系のCADを作ってました。バックミラーのデザインなんかをするようなシステムを作ってました。川井:そういうものに興味はあったんですか?Matz:全然(笑)川井:(笑)やっぱり東京以外でっていう条件ですか?Matz:はい、東京以外でですね。それにオブジェクト指向もできるし。川井:やりたいことと住むエリアが優先なんですかね?Matz:そうですね。住む場所は東京以外ってレベルですけど。いずれにしても、やりたいことと住む場所は譲れなかったですね。当時、景気が悪かったので、その条件は結構厳しくて大変でしたね。人材会社さんなんかにもお願いしたんですけど、東京なら紹介できるんですけどねって言われましたね。川井:そうでしょうね。Matz:当時はあまり考えなかったんですけど、今考えると、そういう逆張りをしたのはとてもよくて、つまり、鶏口と為るも牛後と為る勿れで、人がいないんで大事にしてもらえるんですよ。川井:なるほど(笑)Matz:単に東京の人混みが嫌だってだけだったんですけど、今思えば逆張りをしたことは、自分がハッピーなエンジニアライフを送るとか、Rubyを続けられるところで働くことができたっていう意味では成功だったかなと思いますね。川井:人と違うことをすることで道が拓けたということですね。Matz:「図らずも」人と違う人だったので(笑)川井:「図らずも」ですか(笑)Matz:もうちょっと他の人と同じだと思っていたんですけどね(笑)川井:(笑)Matz:最近は、諦めてます(笑)川井:キャリアというとやはり会社と仕事ではなくてプログラムとしてということになるんですよね?Matz:まあ、そうですね。会社は3社勤めましたが、3社とも恵まれていましたね。それなりに優遇してもらえましたし、理不尽な上司とか理不尽な仕事も、まったくなかったわけではないですが、嫌だと言えばちゃんと話は聞いてもらえましたからね。川井:ちなみに仕事上一度もネクタイをした経験はないんですか?Matz:いえいえ、1社目はスーツの会社だったので、ずっとスーツにネクタイで会社に行ってました。3年くらい経ってたまたまみんな大掃除か何かでトレーナーにジーンズのようなラフな格好で出社した日があったんですけど、どうせお客さんと会うこともないしって思って、翌日もそのままの格好で出社してみたんですが、誰も何も言わないんですよね。川井:(笑)Matz:友達には、「どうした?」って聞かれたので、「自主的にカジュアルで」と言ったら、「そうかあ」って感じで、上司も何も言わないんで、「ああ、いいんだ」って思ってそのままカジュアルになりました。私の事業所は400人くらいいたと思うんですけど、1人だけTシャツとジーンズとかそんな感じでしたね(笑)川井:最初の一人って貴重な存在ですよね。Matz:それ以来、お客さんとの打ち合わせなんかは別ですが、職場ではスーツは着ていないですね。川井:スーツのイメージがまったくつきません。Matz:いえいえ、私は日曜日の教会にはスーツでいきますからね。教会の人は私のことをスーツを着ている人って思ってますよ。川井:へえ、そうなんですね。Matz:それでいて職場では着ないので、教会の帰りにスーツ姿で会社に寄ったら、なんか珍しいものを見るような目で見られましたね(笑)なので別にスーツを着ないわけじゃないです。スーツは着たくないってわけではないんですか?Matz:あまり長い時間着ているのは嫌ですね。川井:教会はスーツで行くものなんですか?Matz:カジュアルじゃなくてフォーマルってことになっているのでスーツにネクタイですね。皆さん、私の1面しか知らないって感じですね。川井:(笑)Matz:人間は多様性があっていいと思うんですよ。いただいたときは、皆んな、ぴしっとしたスーツで、私だけがTシャツとジーンズで副大臣から表彰状をもらいました。川井:そこはフォーマルじゃないんですね。Matz:そうですね。私の場合は、副大臣から表彰を受けるよりも教会の方がフォーマルですね。川井:そういうことですよね。Matz:(笑)川井:名古屋の会社には何年くらいいらしたんですか?Matz:名古屋の会社は、4年弱ですかね。川井:また転機があったんですか?Matz:2つほどあって、私のチームは造船の仕事をしていたんですが、日本財団がスポンサーの大きなプロジェクトで、ミーティングが毎週東京だったんですよ。それで偉い人の判断で、東京事務所もあるし、皆んなで東京に行こうってことになってしまったんです。それで私は「東京が嫌でこの会社に入ったのに東京に行ってどうするんですか。私は嫌です」って言ったら一人だけ置いていかれてしまったんです。川井:(笑)Matz:それで、他の人たちは東京に机を置いて、私だけは名古屋の別のプロジェクトの片隅に机を置かせてもらって、普段はネットでやりとりをして週に1回だけ東京にミーティングでいくという生活になって半年くらい続けましたかね。これはやばいのではと思ったんです(笑)川井:そりゃ、そうですよね。Matz:別に誰にも何も言われなかったんですけどね(笑)川井:(笑)そうは言ってもってことですねMatz:(笑)そうは言ってもやばいかもしれないってことで。それが一つで、もう一つが、私の知人を通して、島根でLinuxを中心に会社を立ち上げる人がいるという話を聞いたことでした。実家に帰ったついでに話を聞いて、私みたいな人が来てくれたら嬉しいってことだったし、会社での立場もやばくなっていたし(笑)、Linuxやフリーソフトウェアの仕事ができるところは日本中探してもあまりないだろうと思って。新規起業は不安だけど,まあ、2年くらいはなんとかもつだろうと思って島根に移ってきたのが1997年です。12年前になりますね。2年で駄目にならずにずっともってます(笑)川井:ちょっと下世話なことをお聞きしますが、転職の度に収入はUPしているんですか?Matz:最初の転職のときには収入は明らかに上がりました。2番目の転職のときにも収入は下がっていないですね。川井:するとやりたいことも実現できて、収入の面でもハッピーはエンジニアライフを送っているということですね。Matz:そういう意味では仕事の面でも収入の面でも恵まれていると思いますね。逆張り戦略正解ですね。川井:名古屋の会社にいた際は、Rubyはどういう風に進めていたんですか?Matz:Rubyはやっていましたね。会社のHPを作っている管理者が同僚だったので、会社のHPの下にRubyっていうページを作らせてもらって、FTPサーバーも立ち上げてもらってました。当時はおおらかでしたね。川井:おおらかすぎます(笑)Matz:会社のネットも、たぶん半分くらいは私のトラフィックだったんじゃないかと思うんですけど、上司とかは誰も気がつきませんでしたね(笑)川井:コミュニティ活動自体を会社に持ち込んでやっていた感じですね。Matz:そうですね。会社のサーバーを使ってやってましたね。川井:その間に大きな動きはあったんですか?Matz:そうですね。ドキュメントを翻訳したのもその会社にいたときでしたし、海外からアクセスが来たのもその当時で、知る人ぞ知る的な感じでした。当時はメーリングリストもその会社のサーバーを借りてやってましたね。川井:いい時代ですね(笑)Matz:いい時代でした(笑)川井:ネットワーク応用通信研究所(以下、NaCl)に入られたときはRubyを仕事にするっていう気持ちはあったんですか?Matz:Rubyを仕事にするって言える時代ではなかったので、Rubyをやっているということを認めてくれますかという条件で転職しました。Rubyをやっているだけでは儲かりませんからね。川井:許可してもらえるかってことですね?Matz:そうですね。川井:NaClに入ってからはどんな仕事をしたんですか?Matz:そうですね、適当に普通のプログラミングの仕事もすれば、Rubyの作業もするみたいな感じでいたんですけど、よく分からないうちに段々Rubyの割合が増えてきて、会社も軌道に乗ってるし、まあいいかみたいな感じでRubyの方ばっかりやってましたね。川井:それは普通の人がこなすミッションを早く終えてしまってRubyをやっていたのか、ミッションをやらないでRubyをやっていたのかでいうとどちらなんですか?Matz:よく分からないですね。言われたことはとりあえずやっていたような気がするんですけど、NaClのときはあまり意識してはいなかったですね。名古屋の会社の時は、仕事に納期があって、朝の通勤時間に電車でノートパソコン開いて会社の業務をこなして、会社についたらRubyをやって、また帰りの電車の中で会社の業務をしてってやっていたらなんとか納期に間に合ったっていう感じでしたね(笑)川井:(大笑)そりゃ、並はずれて早いってことですね。Matz:まあ、納期設定も自分でしていたので、そのあたりも盛り込んで設定していたのもありますけどね。川井:その納期設定が否定されないわけですよね?Matz:そうですね。明らかに遅いとは言われなかったですね。川井:やはりそういう裏付けがあるからできることなんでしょうね。Matz:そうかもしれませんね。川井:NaClに入ってからはRubyについてはどんな感じだったんですか?Matz:淡々とやってきたらここにいたという感じなんですが、名古屋時代から書いていた本を出しました。本の原稿って結構大変で、雑誌の場合は締め切りがあるので書かないといけないっていうのがあるんですけど、本ってそういうのがないんでなかなか進まないんですよね。出版社の人に頼まれて「書けるかもしれない」って思って引き受けても「やっぱり何年たっても終わりません」っていうことも多々ありましたね(笑)川井:(大笑)Matz:そういうことにもめげずに一生懸命に頑張って1999年に最初の本が出て、これが結構売れたんです。売れたっていっても一般書に比べれば全然なんですが、コンピュータ関係の書籍って1万部売れたらベストセラーみたいな感じなんです。それでも1万数千部出て、その年のコンピュータ書籍のベストセラーになったんですよ。こんな本誰が買うんだって思って出したんですけどね。Ruby」通称ピッケル本が出るですが、これもびっくりでしたね。同じ年にオライリーからRubyデスクトップリファレンスを出したり、そんな感じでRubyの本も段々揃ってきて、2001年から2002年にかけては第一次Ruby本ブームみたいな感じでいろいろな本が出ましたね。その2年ぐらいの間に30冊くらい出たんじゃないですかね。Matz:ただその時は一過性のもので、やはりRuby本をいくら出しても売れないっていうことで、しばらくは国内の出版社は一切出さなくなったんですけど、2005年くらいからまた状況が変わって出始めて、今では私でも把握しきれないほどですね。川井:すごい量ですよね。Matz:初期の頃は全部買ったり、献本していただいたりしてましたが、最近は全部は揃っていないですね。川井:こうしたRubyのブレイクにはRailsのヒットが大きかったと思うのですが、まだまだRubyを後押ししようという企業が本格的に出てきていないのが、更なるブレイクのネックになっていると思うんですが、いかがでしょうか?Matz:確かにそうですね。Rubyだけでご飯が食べられるのは私だけという状況で、それでも中には生活のバランスを崩しそうなくらい頑張っている人もいるので、そういう人たちを支えられたらいいなという気持ちはありますね。川井:うちもまだ小さい会社なので、資金的に大きな投資はできないんですが、地道な活動を続けていこうとは思っています。Matz:そうですね。関わり方はいろいろあると思いますね。Gemみないなライブラリがたくさんありますけど、まだ1.9に対応していないものも多いのでそれを1.9対応にするということも大きな貢献ですし、バグを見つけたり直したりという貢献もできるでしょうし、あとリファレンスマニュアルを書いているプロジェクトがありますが、これはまだ分かりにくいというコメントを出すだけでも大きな貢献じゃないかなと思いますね。できることはたくさんあると思いますね。Matz:ただヒューマンリソースが足りないからできてないこともたくさんあるので、他の言語のコミュニティなんかをRubyの良さを損ねない範囲内で真似したいし、それに必要なお金とか人材がぼつぼつ集まってきたら嬉しいなと思いますね。Matz:ただビジネス的に冷静な判断をすると、Rubyってそこら辺に転がっているものなので、それに投資をするって奇特な人は、正直それほどいないと思うんですよ。今後、裾野が広がっていく中では、粋狂な人がいて助けてくれたりということもあると思うので、裾野の拡大を阻害するようなことにはならないように気をつけておくということが必要なんじゃないかなと思いますね。川井:Rubyってある意味、ご自身の子供みたいなものだと思うんですが、段々いろんな人が関与してくると自分自身で関われる部分が減ってくると思うんですが、そのあたりってどう感じているんでしょうか?Matz:まあ、そうですね。楽しいところは押さえてるんで(笑)、それはそれでいいかなと思いますね。川井:本当の子供みたいに自我が芽生えてどこかいっちゃうなんてことはないんですかね?Matz:まだ16歳くらい、高校生ぐらいですからね。実はちょうどRubyより1歳上の娘と、1歳下の娘がいるんですよね。川井:じゃあ、3姉妹なんですかね。Matz:娘はもう一人いるんで、4姉妹でしょうね。川井:よく名前重要って言ってますけど、「Ruby」ってネーミングは絶妙ですよね。Matz:ありがとうございます。偶然ですけど(笑)川井:これってきっかけがあるんですか?Matz:いえ、特にはないですね。Perlが宝石だから宝石にしようかぐらいな感じですかね。DiamondとかSapphireって長いよねってことで候補に挙がったのが、RubyとCoralだったんですけど、CoralよりはRubyがいいよねってことでRubyになったんです。川井:そうだったんですね。Matz:誕生石の話とかもありましたけど、決まってから、そういやそうだよねみたいな感じだったと思います。川井:今後、Rubyをどうされたいかお聞きしてもいいですか?Matz:今後、Rubyをどうするかですか。「ランボー」って映画の最後でランボーが「日々を生きます」って言うんですけど(笑)、あんな感じですかね。川井:(笑)ご自身はどうですか?Matz:私もやっぱりこのままでいくつもりですね。事業がどうこうとかお金の勘定がどうとかあまり高望みしてないんですよ。食べていけるだけの収入はあるし、Rubyはまだまだ楽しそうなことがあるんで、ここから先10年から20年ぐらいは、これを続けていきたいなと思いますね。川井:何か新しいことをやりたとか、新しいものを作りたいとかってあるんでしょうか?Matz:Rubyを離れてまでやろうってものはないですね。川井:新しい言語を作ろうとかもないんですか?Matz:今のところはないですね。プログラミング言語って本当に寿命が長いんですよね。第二世代くらいなんですよ。第一世代がFortran、Lisp、COBOLあたりで、第二世代がCとかPascalぐらいなんですけど、Rubyは第三世代って言えるほど進化してないんですよ。川井:そうなんですか。Matz:50年で2.5世代とか3世代進むとかなんで、もうちょっとかかるかなと(笑)川井:すると生涯、Rubyをやろうという話ですよね?Matz:とりあえず思いつかないんで(笑)川井:(笑)Matz:思いついたらすぐに変わるかもしれません(笑)川井:(笑)川井:最後にエンジニアに対するメッセージをいただけますか。Matz:いつもエンジニアライフ的な講演で話すのと同じなんですけど、他の人と同じでなければいけないっていう圧力に対してもっと鈍感であってもいいんじゃないかなって思いますね。今日もいろいろ話してきましたけど、私がうまくいったのって大概逆張りをしたときなんですね。仕事は東京の方がいっぱいあるんだけど東京じゃないところで働いたとか、みんなはソフトウェアで商売をしようとしてるんだけど、私はオープンソースできましたとかですね。Matz:どの分野においてもマイノリティであったことが私の成功の理由なんじゃないかなって思いますね。実は狙ったわけじゃないんですけどね(笑)プログラミング言語を作ろうという人はあまりいない中を突き進んできたり、東京に仕事はいっぱいあると言われたけど、自分の仕事は1つでいいので、地方で働くことにしました、とかが結果的にはよかったんで、下手な安心感よりは逆張りするということが成功するためには有効なのかなと思います。逆張りした環境に入ってから必要なスタンスってどういうスタンスですか?Matz:「自発」が大事なんじゃないかなって思います。口を開けて待っている人ってこの業界にたくさんいると思うんですけど、自分が何をしたいのかとか自分が何を学ぶのかってことは他の人には聞いてはいけないと思うんですよね。その人の人生はその人自身の人生じゃないですか。私を含めて他人は無責任なんですよ。私は他人の人生に責任はとれないので、どうすべきかってことは言えないんです。その人の内側から出てくるものがあるときにだけ成功するんじゃないかなって思いますね。Matz:逆に自分に内側から何かを出すことができないんだったら、出すことができる分野を見つけるまでは、結構しんどいかなって思います。川井:自分の進むべき道が今やっていることではないかもしれないってことですね。Matz:それって能力とは関係ないんですよ。コンピュータサイエンスの勉強をしていた方がいいし、知識もあった方がいんだけど、それよりもなによりも自発的に何かするって気持ちがあれば、そういうのはついてくると思うんです。川井:確かにそうですね。「自発」がキーワードですね。Matz:ですから内側から自然に出てくる何かがエンジニアとして差別化する材料じゃないかと思うんですよ。それにプラスして成功するには自分を見つめるとかゴールを設定するとかっていう戦略とかってありますよね。なによりも重要な動機づけっていうのは、他の人には分けてあげられないんですよ。命みたいなもんで、「私は命は2つ持ってきた」というのは現実的にはないんで・・・っていうといつもうちの奥さんに「あなたは人の分からない話をする」って怒られるんですけど、野暮を承知で解説すると初代ウルトラマンの最終回に、「私は命を2つ持ってきた」っていう台詞があるんですよ。ウルトラマンがゼットンに負けて死んだあと、ゾフィーがやってきて言うんですけどね。川井:ありましたね、それ。Matz:うちの子たちもそういう古いネタばっかり知ってるんですよ(笑)川井:(笑)Matz:このあたりは適当に編集してください(笑)川井:(笑)いえいえ、面白いのでそのままでいきます。本日はどうもありがとうございました。Matz:こちらこそありがとうございました。氏(後編)※取材日は、2008年7月です。所属や役職などは当時のまま掲載しております。