今回はRubyのパパであるMatzにお話をお聞きしました。今や世界のハッカーにとってのアイドル的存在であるMatzの生い立ちやRubyが生まれるまでの秘話?などをお話いただきました。2006年の途中から東京でのMatzの講演にはかかさず出ていたり、半分、追っかけみたいな生活をしていましたが、そのMatzと1時間独占インタビューができたというのは本当い感無量です。このインタビューを見ていただければMatzの人柄を十分にご理解いただけると思います。※取材日は、2009年1月です。所属などの情報は当時のものそのままです。川井:本日はよろしくお願いしますMatz:よろしくお願いします川井:まずは子供の頃のお話をお聞きしたいのですが、幼少の頃にコンピュータに触れるきっかけとかってありましたでしょうか?Matz:1970年代の終わりくらいにTK-80とかマイコンブームというのがあったんですよ。ワンボードマイコンですね。この頃は完成品じゃなくて,キットなんですよ。私の父親は全然コンピュータと関係ない仕事をしていたんですが、元来そういった技術系のものに興味がある人で、日本橋の電器屋に行って10万くらいするパナファコムのL-Kit16とかを買い込んで、家に持って帰ってきてはんだごて使って組み立てて、「動いた」って喜ぶわけです。当時のコンピュータって動いただけだと何もできないんですが、父は動かすことで満足してしまったので、その後放置されていたのをまだ小さい私が電源を入れていじっていたんです。付録の冊子にプログラムの16進DUMPがついていたので、それを打ち込んで7セグメントLEDがぐるぐる回るのを見て「動いた、動いた」っていう風に言っていたのが、コンピュータとの最初の遭遇ですね。川井:それはいくつくらいの時ですか?Matz:小学校6年生くらいの時ですかね。川井:もともと自分で興味をもってコンピュータの世界に首を突っ込んだというよりは、環境の影響の方が大きかった感じですか?Matz:環境もあったと思いますが、もともと理系の分野に興味があったんだと思います。当時からSFが好きだったり、父が買って来た物理の本を読んだり、知識欲は旺盛で理系や技術の世界に関心のある子供だったとは思います。そんな子供だったので、自然と目の前にあるコンピュータで遊んだって感じだと思います。当時はプログラミングまでは行かなくて、何本かプログラムは打ち込んでLEDをぐるぐる回したり、サイコロを乱数で表示させたりまでで終わってしまってその後は続かなかったんですよ。ハンドアセンブルは当時の小学校6年生にはきつくてですね(笑)、インストラクション表ともあったとは思うんですけど、プログラミングまでは届かなかったですね。川井:数学が苦手って言ってたと思うのですが、理系に興味があるということは数学も好きという気がするんですが。Matz:理系っぽい事への興味と成績は全然関係ないということで(笑)、高校は進学校っぽいところへ行っていたのですが、理系だったんですけど,得意科目は国語、英語、社会で、数学や物理などの成績は悪かったんですよ。川井:それは面白いですねMatz:計算が入るとモチベーションが維持出来なくて、とたんに駄目なんです。電卓叩けばいいじゃんて思っちゃったり。あとは定理に関心がなくて覚えられないといった具合でした。机の上に電卓があって、目の前に定理が書いてある紙が貼ってあったら、試験もそこそこ出来たかも知れないんですけど、そんな試験は高校生の頃にあるはずもなく(笑)、本当に成績が悪かったですね。川井:そうなんですね(笑)。Matz:本当に、出来なかったんです。川井:ある意味、機械がやってくれる部分は人間がやらなくてもいいという考え方があったのかも知れませんね。Matz:そうかも知れませんね。やる気にならなかったですね。計算が入る物理、化学は全然駄目でしたし、数学も定理を思い出さないから、試験中に定理を作ったりするわけですよ。「こういう関係にあるからこういう定理があるに違いない」とかやってたら時間が足りるわけないですよね(笑)。川井:それは面白いエピソードですね(笑)。Matz:それは高校の頃の話なんですけどね。さかのぼりますが、プログラミングとの最初の接触はやっぱり父親の影響が大きくてですね、中学校3年生の時にSHARPのPC-1210というポケットコンピューターを父親が買って来たのですが、それは400ステップしかないんですよ。ステップというと大体BASICで1行相当ですね。最大400行しか書けない関数電卓って感じでした。そのポケコンにプチプチとプログラミングを書いていました。後にメモリ増設して1400ステップまでは書けるようにしましたけど(笑)川井:3倍以上ですね(笑)Matz:それを機にプログラミングというものに接して、しばらくBASICでプログラムを書いてたんですが、リアルタイム入力はできないし、グラフィックは出来ないし、何もできないんです。マニュアルにサンプルプログラムとかが載っているので、それを打ち込んで改造してみたり、それをアレンジしてみたりしてました。Landerって知ってます?川井:いえ、ちょっと分からないです。Matz:もともとはBASICで書いた月面着陸のリアルタイムゲームですけど、どんなゲームかと言いますと、月に着陸するのに、燃料を噴射してだんだん減速して行って、丁度月面に到達するときに速度0で接すると着陸成功、逆に速すぎたり遅すぎたりすると着陸失敗というものなんです。私の持っていたポケコンは当然のようにリアルタイム入力がないので、そんなことできないわけですよ。するかっていうと、画面上に今高さがどのくらいで、速度がどのくらいとかっていうのが出るんですが、それで燃料をどれくらい投入するかって入れてエンターとかってやると、数秒後の高さや速度、燃料などが表示されるんです。それを見て「今度は高さがいくつになって、速度がいくつになった、うーん」とかいいながら入力してやると段々進んでいくんですけど、ちょうど高さが0の時に速度が0だと着陸成功、速すぎると失敗、燃料がなくなっても落ちちゃうので失敗てな感じなわけです。川井:プログラミングというより計算でやるゲームですねMatz:そうです。計算だけのゲームなんですけど、そんなことをやってて、プログラミングに入ったのが最初ですね。川井:ゲームが1つのきっかけだったんですかね?Matz:最初の1歩はゲームだったかもしれないですね。その後はほとんどゲームはしてないですね。川井:エンジニアの方はゲームから入られる方多いですよね。Matz:多いですね。普通はそのままゲームに行くと思うんですが、私は高校くらいからはほとんどゲームとかはやっていなくて、私とか私たちのちょっと下の世代だとベーマガ(マイコンBASICマガジン)という雑誌があって、そういう雑誌にプログラムのリストが載るんで、それを一生懸命コンピュータに打ち込んでゲームするというのがよくあったんですけど、私の場合はそういうゲームはあんまりやらなくて、コンピュータの本を読むことの方が楽しいかなと思っていました。「いつか、ちゃんとしたというかまともなコンピュータが手に入ったら、やりたいことがある」とかって言って本を読んでるという感じでしたね。川井:本はかなり買い込んでいたのですか?Matz:ASCIIとかの雑誌は買っていましたけど、あとはほとんど立ち読みでした。コンパイラや人工知能の本やなんか読んでたんですが、5,000円や7,000円くらいするので高校生じゃなかなか買えないですよね。難しい本を仕入れた上に立ち読みを許してくれた本屋さんには感謝してます。川井:当時から、既に仕事としてプログラミングをやっていくとか、生涯これをやっていくんだという気持ちは片隅にでもあったんですか?Matz:高校を卒業して、情報系の学校に進学しようと思った時には、ぼんやりとですが、これでずっとやっていこうとは思っていました。父親は反対していて、機械系エンジニアとか、そっちの方面に行って欲しかったみたいで、コンピュータは趣味にしておけとか言われたりしましたね。1980年代の前半で、コンピュータがまだちゃんとした職業になっていくかどうかなんて分からない時代だったので、そうは言われましたけど、コンピュータのことをちゃんと勉強したかったので、親の言うことを聞かずに情報系に入学しました。川井:以前、横浜で講演を聞いたときに、紙でプログラミングをしていたと聞いたことがあるのですが、それは一体何だったのでしょうか?Matz:それは、紙でプログラミングというより言語デザインをしていたんですね。高校の頃には,BASICはちょっと駄目だろうって思っていて、世の中にもう少しマシな言語はないだろうか思っていろいろ探していたんですよ。見つけた本がPascalの本だったんですね。それはお小遣いをはたいて買って(笑)、結構時間がかかりましたけど、最初から最後まで読み通したんですよ。手元にPascalが動くコンピュータはないので、実際に実行できないんですが、なんだか分かった気になって、「私はPascalをマスターした」とか、その気になって。実際にマスターしたかどうかはともかく、「Pascalっていうのは、私の今まで知っていたBASICよりもずっといい言語だ。世の中にはBASICよりもいい言語が存在するんだ」って思ったんです。その後,だんだん知識が増してくるとBASICとPascal以外にも世の中にはたくさん言語が存在することが分かってきて。その言語ひとつひとつが誰かが創ったから存在するわけですよね。BASICには満足できなかったし、PascalもBASICよりはずっとよかったけど、完璧だとは思わなかった。「だったら私が作ってもいいんじゃないかな」って思ってですね、それで、ノートを引っ張り出してきて、ノートに「こんな風に書ける言語があったらいいな」といった具合に書きだしていったわけですね。見ぬ言語でプログラムを書いて、「こんなだったらいいかな」っていうようなことを書いていたのが高校2年か3年ぐらいのことですね。川井:高校生の時にベーシックもBASICもPascalも完全じゃないないって思って、自分で言語を作ろうという発想をしたってことなんですね。