公開2週間で200人がRailsコミュニティに参加

菅澤英司氏(以下、菅澤):前回はRubyを開発したという話を聞きました。サーバーにアップしたらどんどん広まっていったという話はちょっとワクワクしますね。

まつもとゆきひろ氏(以下、まつもと):ありがとうございます。すごく伸びた感じでもないんですけど、80年代から90年代にかけてNetNewsというのがあって、1990年代だと自分のソフトウェアをインターネットで公開して配ることはそんなに珍しくはなかったんですよね。

菅澤:あるんですね。

まつもと:誰も使わなくなってきたんですけど、今でもあるにはあるらしいんですよ。当時はそういうところにソースコードを投稿するスレみたいなものがあって。

池澤あやか氏(以下、池澤):掲示板?

菅澤:掲示板なんですね。

まつもと:ニュースグループというんですけど。

菅澤:それはインターネットなんですか? パソコン通信みたいな。

まつもと:World Wide Webではない。だけど電子メールと同じぐらいのレベルでのインターネット。

(一同笑)

菅澤:黎明期だ。

まつもと:そういうのでソフトウェアを公開する人がいっぱいいたので、私もその1人として公開しました。ちゃんと使えるレベルのプログラミング言語を公開する人はそんなに多くなかったのでちょっと珍しいなと思って、インターネットで公開した直後にメーリングリストという…

菅澤:メールがあったんですね。

まつもと:いちいち古い。

(一同笑)

まつもと:当時はコミュニティを作るのにみんなで集まることってあまりないので。おじいちゃんの昔話みたいになっちゃったんですけど。

(一同笑)

まつもと:そうやってメーリングリストを作ったんですけど、最初の2週間で200人ぐらい参加してくださる方がいました。

池澤:すごい。

まつもと:けっこうな数ですよね。それでいろんな人に集まってもらって、いろんな人の意見を聞いて少しずつ伸びてきたんです。

池澤:もともとRubyの開発もコラボレーションワークをしていくときにもメーリングリストを使っていたという話を聞いたことがありますね。

まつもと:そうなんですよ。まだGitHubがないので(笑)。どうするかというと、patchパッチがメールと同じように流れるんですね。それをメールから切ってきて、ファイルに食わせると編集してくれるという。patchというプログラムがあるのはご存知ですか?

池澤:知らないです。

まつもと:git showをやると差分が見えるじゃないですか。あれをあるプログラムに食わせると修正を適用してくれるんです。

菅澤:パッチを当てるというやつですね。

まつもと:それがメールで流れるんですよ。「このバグがありました!」というと「直した差分はこれです」といってメールが流れるんですね。

菅澤:じゃあみんなが直してくれるんですね。

まつもと:自分が直すことがほとんどですけど。

(一同笑)

まつもと:その差分がいくつか溜まると「最新版をアーカイブにして配ります」といって配っていました。

池澤:完全にメールで開発を進めていったというお話を以前聞いたことがあって、そのときは自分でコードの差分を見て、コピペしてるのかと思ったんですけど、ちゃんとそういうソフトがあったんですね。

まつもと:さすがにコピペはないですね。そういうソフトがあったんです。今でもあるんですけど(笑)。

菅澤:あったんですね(笑)。

まつもと:Gitの中にもほぼ同じことをするソフトがあるんですけど、それを人間でやっていたんですね。だから今のGitHubでプルリクエストのボタンをピッと押してできるというのは、お年寄りから見ると天国みたいな(笑)。

池澤:確かに。

菅澤:お年寄り(笑)。Slackとかないですからね。

まつもと:でもIRCはありましたね。Internet Relay Chatという。

菅澤:ICQとか。

まつもと:ICQもありましたね。そっちはパソコン通信の流れですね。

池澤:ぜんぜんわからない。

菅澤:懐かしい(笑)。

まつもと:その頃はチャットにハマりすぎて、チャットをしていると仕事にならないということを発見してしまったので、それ以来はチャットを自分で封印しているんですけど。

ビジネス書籍の分野で1万部の売り上げ

菅澤:Rubyが広まっていったというお話をお聞きしているんですけど、この瞬間からすごく伸びた! とか、一気に広まったみたいな感覚はあるんですか?

まつもと:段階的に言うと、最初はやっぱり鳴かず飛ばずでした。新しい言語がきたからといってみんなが使うわけじゃないので、だいぶ長いこと鳴かず飛ばずだったんです。「Rubyというのがあるのは知っているけど使っていません」とか、「Rubyは聞いたことありますよ! 使ってないけど」みたいなのがずっと続いていたんですけど、1999年に『オブジェクト指向スクリプト言語 Ruby』というタイトルで本が出たんですよね。

私ともう1人が書いて、次の年の2000年に英語の本が出たんですよ。『Programming Ruby』というタイトルの本で、アメリカに住んでいるイギリス人が書いたんですけど(笑)。

菅澤:スクリプト言語でオブジェクト指向というのが新しかったということですか?。

まつもと:厳密に言うと、当時Pythonもオブジェクト指向機能があったので、Rubyだけという感じでもなかったですけど。1999年と2000年にそれぞれ本が日英で出て、それでユーザーが増えました。日英それぞれ何万部か出て、ビジネス書籍で1万部を超えるというのはけっこうな数なので、そこからだんだん世界に受け入れられてきたというのはありましたね。

2004年、2005年ぐらいにRuby on Railsが出て、「Webアプリケーションを開発するんだったらRailsがいいよ」と言ってくれる方がたくさんいて、2006、7、8年ぐらいに伸びたという感じですね。

菅澤:Rubyを使ったフレームワークのRailsで、一気に広まったんですね。

まつもと:そうですね。Ruby on Railsのおかげというのはあると思いますね。

池澤:当時かどうかわからないんですけど、「10分でブログが作れる」とすごく話題になりましたよね。

まつもと:そうなんですよ。デンマークの人で、デイヴィッド・ハイネマイヤー・ハンソンというRuby on Railsを作った人がいて、2004年か2005年に、10分や15分でブログシステムを作るというどこかのカンファレンスでデモをしたときのビデオを自分のWebページに載せたんですね。

当時は自分のページに動画を載せるというのはあまりなかったんですよね。さらにWebアプリケーションを作るのは何日もかけて作るもんだ、というイメージがあったので、それを15分で作ると言われて、みんな興味を惹かれたんですよね。ビデオを見るとわかるんですけど、すごく練習した感じじゃないんですよね。すごくのんびりなのに10分でできちゃうんですよ。

それでけっこう話題になって、JavaでWebシステムを作っていた人たちの中で「Javaと比べて10倍以上の生産性がある」みたいなことを言った人がいて、炎上みたいなことがありました。

菅澤:(笑)。

まつもと:「そんなことあるか!」と反論する言う人もいて、話題になったのは大成功でした。

菅澤:確かにRailsが出て、その思想はプログラミング言語全体に影響を与えましたね。

まつもと:Railsというのは、最初のWebアプリケーションフレームワークでもないですし、別にRubyで最初でもないんですね。そういう意味では後発なんだけど、開発生産性という意味ではやっぱりエポックメイキングみたいなところがあって、それ以降のWebアプリケーションフレームワークに対してだいぶ大きな影響を与えていると思います。

PHPもそうだし、Javaのフレームワークにも影響を与えているものだと思います。

池澤:そうですね。私も違うフレームワークを触ることがあるんですけど、Railsでわかっているから、他のフレームワークも触りやすいなと感じることは多いですね。

感覚は世界で活躍する大リーガーの父

菅澤:今だとだぶん数百万人がRubyを書いたことがあるんじゃないかなと思います。

まつもと:そうですね。

菅澤:開発者としてはどういう感覚ですか?

まつもと:大リーグのイチローっているじゃないですか。すごく有名なんだけど、それのお父さんみたいな感じです。Rubyは世界中で活躍しているけどそれのお父さん。

(一同笑)

菅澤:「がんばってるな、Ruby」と。

(一同笑)

まつもと:がんばっているのはRubyなので(笑)。

菅澤:それを温かく見守っているみたいな。

まつもと:そんな感じ。

菅澤:自分が「こうやったら便利かな」ということが証明されたというか、どんどん受け入れられた、というのは当時の自分を褒めてあげたいというか、がんばったなというところはあるんですか?

まつもと:やめなかったのはよかったと思います。

(一同笑)

池澤:私も学生時代にチームを組まされて、『2週間でできる!スクリプト言語の作り方』という本を渡されて、「その本でスクリプト言語を作れ!」と言ってやらされたことがあります。

まつもと:だいぶひどいね(笑)。

池澤:「2週間でいける!」と言って。

まつもと:だいぶひどい。

菅澤:スクリプト言語を作る?

池澤:スクリプト言語を作る。RubyやPerlはだいたい石がモチーフになっていて、それの小さい版なのでStoneという言語を作ろうという本があるんです。

菅澤:なかなかですね。

池澤:それですごくわかったのは、言語を作るのは大変だし、それを作り続けようというモチベーションがすごいなと思います。何度か壁が来るんですよ。例えばStringを1個ずつ取り出していって、これは記号かこれは数字かみたいな判別するような地道な機能をどんどん作っていかなきゃいけなくて。

まつもと:そうだね。

池澤:私もけっこうその時点でなんか……

菅澤:2週間で心が折れたと。

池澤:完全に心が折れました(笑)。

(一同笑)

まつもと:わかる。

(一同笑)

菅澤:1995年にリリースしてから本が出るまでの4年間もやっぱり地道というか1つずつやっていたんですか?

まつもと:27年やっていますね。

現在はMRubyをメインで開発中

菅澤:アップデートをどんどんされて今はどうですか? 

まつもと:そうですね、正直言うとRubyはCRubyというのがメインの処理系なんですけど、それのプログラムを配ることはだいぶ減っていて、どちらかというとデザインの決定をしているんですよ。自称で、自分の職業はプログラミング言語デザイナーです、と。プログラマーだと“あがり”になってしまって、引退はしたくなくて、生涯現役でいたいとは思っているんですよ。MRubyというもう1つ別のRubyの処理系があって、私はそっちをまだメインで開発しています。

菅澤:そうなんですね。

池澤:(MRubyは)例えばモーターとか、マシンを物理的に動かすことに使われるやつですか?

まつもと:そうですね。組み込みとかに使われていることが多いです。

池澤:組み込みか。

菅澤:組み込みでもRubyが使えるのはいいですね。けっこう気軽に書けるという。

池澤:小さいRubyだからMRuby。

まつもと:MRubyのMは何を意味しているかというのは諸説あるんですが。

池澤:諸説ある!?

(一同笑)

まつもと:まつもとのMという説や、マイクロのMという説、あとはembed(組み込むこと)もMじゃないですか。諸説あるんですが、曖昧なままにしておこうという感じです。

池澤:なるほど。

菅澤:プログラマーは「35歳定年説」というのがあるんですが、どうですか? 今でもぜんぜんスピードが落ちていないとか、むしろどんどんうまくなっているとかありますか?

まつもと:「35歳で限界」みたいなことは感じていないですね。若い頃ほど体力はないので、例えば徹夜で開発することはやめようと思っています(笑)。

菅澤:そうなんですね(笑)。

まつもと:だけど瞬間瞬間を取ってみると、前よりいい設計ができていると思うし、年齢的な限界はあまり感じていないですね。

菅澤:なるほど。

まつもと:むしろ経験や場数踏んだことで伸びたスキルのほうがプラスになっているような気がします。

菅澤:なるほど。熱くおもしろい話が聞けたので、次回はまつもとさんがどう育ったのかとか、どう開発をしているんだとかをちょっと深掘りしていきたいなと思います。