まつもとゆきひろ ネットワーク応用通信研究所 特別研究員。 楽天 楽天技術研究所フェロー。 Rubyの作者。通称Matz。 「Matzにっき」のURLは, http://www.rubyist.net/~matz/ |
× |
日経ソフトウエア2007年8月号,特集のテーマはプログラミング言語のRubyです。「Ruby大作戦」と題した本特集の中で,Ruby作者のまつもとゆきひろ氏と,JavaやPerlの書籍や本誌連載の執筆,Web上での活動で著名な結城浩氏の対談を設けました。以下は,日経ソフトウエア2007年8月号に掲載した対談の全内容です。ぜひお楽しみください。なお,この対談では,お二人のファンで日経ソフトウエア特集「Ruby大作戦」のPart5にも寄稿いただいた松岡浩平氏にも同席していただきました。この対談でRubyに興味を持たれた方は,ぜひ日経ソフトウエア2007年8月号をお読みください。
はじめてのRuby
――結城さんが,はじめてRubyに触れたのっていつですか?
結城 Rubyという言語があるのは,けっこう前から知っていました。書店で,まつもとさんの黄色い本*1が並んでいるのを見て,「いつ買おうかな」と思っていたんです。ちょうど,私がJavaやPerlを一生懸命やっていた時代だと思います。Rubyに意識的に触れたのは2006年1月。はてなダイアリーでrubyco(るびこ)の日記*2を書こうとしたときです。それまでずっと,Perl,C,Javaとプログラミング言語の本を書いているのですが,Rubyist*3って,けっこう活動が激しいという印象がありまして。
まつもと そうですかぁ?
結 それで,今でもしょっちゅうメールが来るんですよ。「『Ruby言語プログラミングレッスン』はいつ出版になるのでしょうか?」って(笑)。
ま それはそれはご迷惑をおかけしています(笑)。
結 対談にあたって,私の日記*4でまつもとさんへの質問を募集したんです。来たメールの中に,「『今度Ruby本を書くんですけど手伝ってもらえますか?』と,結城さん自身のセリフで聞いてください」というのがありました。
――ちなみにその答えは?
ま 手伝います。しかし「書くんですけど」って言えっていうのはすごい。
結 では,書くときにはいろいろお声がけするかもしれません(笑)。少し話を戻しますが,rubycoという別の名前で日記をやりながらRubyの勉強を始めたのは,いつ本を書けるかどうかもわからないし,あまり恥ずかしいこと書いてもな,という思いもあったからです。Rubyの勉強を始めたころは,朝から晩まで,80%くらいはRubyのことを考えていました。
ま (うれしそうに)ありがとうございます。
結 ある言語をやるときって,そういう(集中してやる)時期がないとすぐに忘れてしまいますから。
ま うんうん。
結 でもやっぱり私自身は,本を1冊書かないと,ある言語をわかったという気がしないんです。
ま ふーん。そういう人は貴重ですよね。本書いてわかったって人は,普通いませんよ。
結 けっこう心配性なんです。自分はわかっていないんじゃないかという思いが,どこかにある。でも,言語の本を書くと,いろんな人が読んでくれて,問題があれば「これおかしいよ」と言ってくれます。そういうふうに言われなければ,まぁある程度の理解には達したんだろうと判断できるわけです。
ま 自分に課したテストみたいな感じですね。
結 その前の段階で,自分の中には説明できないことは理解できていないという感覚がどこかにある。説明文を書いて,人に読ませるくらいの品質になっているかどうか,というのが私の理解の基準なんでしょうね。
ま じゃあ僕,Ruby理解していないですね(笑)。
結 それはまた,「Rubyの父」の理解とは違いますよ(笑)。
ま 僕は本が書けない人なんです。最初,黄色い本を書くのにえらい苦労しまして。Webなどを拝見する限り,結城さんは執筆活動をやすやすとこなしているように見えるので,すごい尊敬というか,そこにシビれる!あこがれるゥ!*5という感じですね(笑)。
結 いやいや,そんな,恐縮です。
ま ともかくすごいなーという感じを受けていました。とくに僕の周りには,初心者向けの雑誌の記事やら本を書いてくださいという依頼に応じて,やりかけてはボツになったという話が数多くあってですね。それを考えると,「読む人に思いやりを持って書く」というセンスはすごいなぁと注目しているんです。
結 うれしいなぁ。
――まつもとさんも,「Rubyでコードを書く人に対して」思いやりがたくさんあるように思うのですが…
ま あ,たぶん僕のほうがけっこう利己的で。だって結城さんが,自分で書いた本を見て,ああこんな言語なのかーと勉強することは絶対ないですよね。
結 そりゃないですよね(笑)。
ま でも,僕はRubyをユーザーとして使いますから。人のための思いやりって言ってるけど,Rubyに対して使っている思いやりというのは,実は自分のためなの。すごい,なんかselfish*6。
自分の本能を大事にしている
結 はあはあ(とうなずきつつ)…それはselfishなのかな。あまりそうは思わないですけど。
Rubyに限らず,プログラミング言語を使う人にとっては,言語が持続して存在することが非常に重要で,使っている人のためとかいって言語が壊れてしまうんだったら,本末転倒になるという感じがします。だから,selfishという言葉はあまりあてはまらならなくて…ま 微妙ですね。
結 たまたま一致している。つまり,自分のためにやっていることが,結果として,ほかの人の利益になっているということなんじゃないかと。
私の勝手な印象だとまつもとさんは言語のことをよく考えている。ま うん。それはいえる。
結 理屈で説明できなくてもいいから,「これはこういう感じ」というのを大事にしていて,変えることもいとわないし,続けることもいとわない。自分の直感や本能を大事にしていて,人を参考にするけれども,支配はされていないというのが私の印象です。
ま あー,まぁ(周りからの)影響はだいぶ強いですけどね。(Rubyについて)こんなこといわれて,「んー,考えてなかったかな」とかいうのはよくあります。そもそも,プログラミング言語というのは使われ方が全然予想できないんですよ。
結 ああ,なるほど。
ま だから,「そういう組み合わせ方は考えてみなかったなぁ」というのが,結構あるんですね。「このシチュエーションだと,やっぱりまずいなぁ」とか。でも,たしかに「だれかに言われたからこうしよう」というのは,あんまりないですね。
結 私が想像するに,プログラミング言語の構築で一番大変なのは,ユーザーの「ここは絶対に変えないでくれ」という要望にどう応えるか,ではないかと。バージョンアップでこれを大幅に変えると,社会に対する影響が大きいじゃないですか。それを私の印象では,まつもとさんはRubyをためらいなく変えている感じがする。そのへんどうでしょう?
ま 僕自身は,ためらいなく変えたいんですけどね。みんなに止められている(笑)。
結 変えようとするところが,スゴイと思います。変えないほうが楽ですよね。
ま まあそうですけど…単純に,いいものが作りたいんですよ。
前に自分がした判断が間違いで,その間違いがRubyをよりよくするうえで邪魔になっているんだったら,長い目で見たら変えたほうがいいかなと思っています。それで変えちゃったりして,「ギャー」とかいわれるんですけど。そういう(変える,変えないの)判断って,まぁ直感みたいなものが多い。結 そこにアカウンタビリティというか,説明責任はないという気が私はしているんですけど。
ま たしかに説明しろといわれても,できないですね。ただ,いまわかってもらえなくても,5年経ったらわかってくれるかもな,あとできっとみんな正しいと思ってくれるよ,と楽観的な思いを持つことはけっこうあります。
結 なるほど。言語を作る人って,そのへんのタイムスパンがすごく長いんですね。
ま 長いですね。Rubyを作り始めて十何年も経っていますし,いろんなことを思う人はいます。Rubyが出たばかりのときは,「なんだこのendは*7。古くさい」といわれましたが,いまそんなことをいう人は少なくなったし。