Rubyの生みの親まつもとゆきひろさんインタビュー
2007年10月17日
Award on Rails審査員まつもとゆきひろさんに取材の機会をいただき、松江へ伺わせていただきました。
まつもとさんから最近の活動、Rubyの開発などいろいろな話をいただきましたので、第2回インタビューとして公開いたします!
■最近の活動について

--昨年に続いてまつもとさんに作品審査をしていただくことになりました。
1年前と比べてずいぶん忙しくなったと思いますが。
--どのような内容の講演が多いのでしょうか。
--今年からは楽天のフェローとしてのお仕事もしています。
--最終的にどういうゴールになるのでしょうか。
--海外で活動されることは多いのでしょうか。
■Rubyの開発について

--Ruby1.9の開発はいかがでしょうか。
--今はどのような部分の実装を行っているのですか?
--Rubyの開発をはじめたきっかけは?
--そこから実際作りきってリリースしてしまうのはすごいですね。
--それだけの期間モチベーションを維持するしつづけるのは大変では?
--「Hello World」からアルファリリースまでは?
--他にrubyの開発で苦労させられたところは?
--他のLL系言語で意識している部分ってありますか?
--ずっとプログラミング言語を作りたかったんですか?
--どういう部分でしょう
--その思いはRubyによく出ていますね。
--今後のRuby開発のテーマとしてはどうでしょうか。
--そのあたりはRuby2.0で実現?
--Rubyとは別に何か作りたい言語はありますか?
■Webについて
--Ruby on Railsが出たときはまつもとさんしてはどういう印象だったのでしょうか。
--なるほど、ここまでRuby on Railsが広まったのはまつもとさんにとって
結構意外なことだったんですね。
--JRubyについてはどうでしょう?
--普段使っているWebサービスは?
--それでは、優秀作品の発表をお願いします。

まつもとさんと仕事をしてみたい方はこちらから。
↓ ↓ ↓ ↓ ↓ ↓
まつもとさんから最近の活動、Rubyの開発などいろいろな話をいただきましたので、第2回インタビューとして公開いたします!
■最近の活動について

--昨年に続いてまつもとさんに作品審査をしていただくことになりました。
1年前と比べてずいぶん忙しくなったと思いますが。
ええ。倍ぐらい忙しくなりました(笑)
去年の今ごろは月1回ぐらいの講演だったのが今は週1回ぐらい講演をしています。
去年の今ごろは月1回ぐらいの講演だったのが今は週1回ぐらい講演をしています。
--どのような内容の講演が多いのでしょうか。
Ruby関連、プログラミング関連、それとオープンソース関連の題材が中心ですね。
--今年からは楽天のフェローとしてのお仕事もしています。
3週間に1回ぐらいのペースで東京で打ち合わせしています。
私が関連しているテーマはスケーラビリティ周りです。
開発はRubyでプロトタイプの開発を進めていてどうしてもパフォーマンスが問題になる部分はCで開発してRubyでwrapすることも考えています。
楽天がRubyを採用したのはRubyが国産の技術であることが大きくて、「地方」「日本」といった部分にこだわりを持っているようです。
私が関連しているテーマはスケーラビリティ周りです。
開発はRubyでプロトタイプの開発を進めていてどうしてもパフォーマンスが問題になる部分はCで開発してRubyでwrapすることも考えています。
楽天がRubyを採用したのはRubyが国産の技術であることが大きくて、「地方」「日本」といった部分にこだわりを持っているようです。
--最終的にどういうゴールになるのでしょうか。
私が関わる部分については最終成果物はオープンソース化するという約束をしています。
技術力をアピールするためには、技術があるだけでなく技術を生かしたプロダクトを出して、多くのエンジニアに使ってもらう必要がある。
そのためにはオープンソースで、ということで進めています。
技術力をアピールするためには、技術があるだけでなく技術を生かしたプロダクトを出して、多くのエンジニアに使ってもらう必要がある。
そのためにはオープンソースで、ということで進めています。
--海外で活動されることは多いのでしょうか。
11月に開催されるRubyConfには毎年参加しています。
(http://rubyconf.org/)
どんどん人数が増えてきていて、これまでずっとシングルトラックで開催していたのですが、今年はマルチトラックで開催します。
(http://rubyconf.org/)
どんどん人数が増えてきていて、これまでずっとシングルトラックで開催していたのですが、今年はマルチトラックで開催します。
■Rubyの開発について

--Ruby1.9の開発はいかがでしょうか。
予定通り今年のクリスマスにはリリース予定です。
ささだくん(ささだこういちさん)がリリースに向けてがんばってくれています。
ささだくん(ささだこういちさん)がリリースに向けてがんばってくれています。
--今はどのような部分の実装を行っているのですか?
Unicode周りの実装を行っています。
--Rubyの開発をはじめたきっかけは?
1993年ごろなんですが、当時すごく景気が悪かったんですね。
僕はソフトウェアハウスで働いていて社内のエンジニア支援をする仕事をしてたんですが、すごく暇になったんです。
で、作ってみようか、ということで開発を始めました。
僕はソフトウェアハウスで働いていて社内のエンジニア支援をする仕事をしてたんですが、すごく暇になったんです。
で、作ってみようか、ということで開発を始めました。
--そこから実際作りきってリリースしてしまうのはすごいですね。
2月に開発を始めて8月に「Hello World」が動きました。
次の年の12月にアルファリリースしてメーリングリストを作って参加者だけにソースの場所を公開していました。
fjで公開したのはそのさらに1年後なのでトータル3年近くかかってます。
次の年の12月にアルファリリースしてメーリングリストを作って参加者だけにソースの場所を公開していました。
fjで公開したのはそのさらに1年後なのでトータル3年近くかかってます。
--それだけの期間モチベーションを維持するしつづけるのは大変では?
そんなに大変ではなかったです。
こつこつと作ってましたね。仕事が暇だった、というのもありますが(笑)
こつこつと作ってましたね。仕事が暇だった、というのもありますが(笑)
--「Hello World」からアルファリリースまでは?
次にガーベジコレクタ作ったんですね。
で、その次にソケット。ソケットの処理でintの32bit目をフラグとして使う必要があったんですが、rubyでは別の用途で32bit目を使っちゃってた。
どうしようかということでbignumを実装。動機が全然間違ってる(笑)
そんな感じで芋づる式にいろいろ実装を進めてました。
で、その次にソケット。ソケットの処理でintの32bit目をフラグとして使う必要があったんですが、rubyでは別の用途で32bit目を使っちゃってた。
どうしようかということでbignumを実装。動機が全然間違ってる(笑)
そんな感じで芋づる式にいろいろ実装を進めてました。
--他にrubyの開発で苦労させられたところは?
yaccというのは訳がわからなかったですね(笑)
rubyで実装したい文法とyaccが許可してくれる文法が違っていてどうやってyaccをごまかして処理させるのか・・・。
(yaccの説明:http://ja.wikipedia.org/wiki/Yacc)
rubyで実装したい文法とyaccが許可してくれる文法が違っていてどうやってyaccをごまかして処理させるのか・・・。
(yaccの説明:http://ja.wikipedia.org/wiki/Yacc)
--他のLL系言語で意識している部分ってありますか?
動向をチェックしてはいるけど特に意識はしていないですね。
--ずっとプログラミング言語を作りたかったんですか?
高校生のころにはいつか作りたいと思ってました。
当時はCコンパイラが普通の人には手の届かない値段で、
でも、もっといい言語ができるんじゃないかと思っていました。
当時はCコンパイラが普通の人には手の届かない値段で、
--どういう部分でしょう
まずサブルーチンに命名できない(笑)
あと、BASICに基本で実装されている手続きを自分で定義することができない。
システムが提供しているものと自分が定義できることの間に壁があったんです。それが許せなかった。
あと、BASICに基本で実装されている手続きを自分で定義することができない。
システムが提供しているものと自分が定義できることの間に壁があったんです。それが許せなかった。
--その思いはRubyによく出ていますね。
BASICに対するアンチテーゼというか(笑)
--今後のRuby開発のテーマとしてはどうでしょうか。
今後のテーマはスケーラビリティになってくると思うんですね。
一つは楽天と取り組んでいるデータレベルでのスケーラビリティ。
あとはプログラム規模のスケーラビリティ。
100万行のコード、100人のチームとなってくるとある程度縛りが必要になってくる。
でも、Javaのようにあれもダメ、これもダメにはしたくない。
自分たちではクラスボックスとかセレクタリングスペースと呼んでいるんですがたとえば、今のRailsだと既存クラスのメソッドを置き換えたり追加したりしてますよね。
それってグローバルな影響を与えてしまうのでよくないことがある。
だから、その影響範囲を限定させられるようにしたいんです。
「あなたがIntegerクラス書き換えるのは勝手だけど僕に迷惑かけないでね」みたいな。
これまでRubyは自由にプログラミングできることが大事だったので、優先度は低かったんですが、これからはどうやって閉じ込めていくのかもテーマになってくるのかなぁ、と。
一つは楽天と取り組んでいるデータレベルでのスケーラビリティ。
あとはプログラム規模のスケーラビリティ。
100万行のコード、100人のチームとなってくるとある程度縛りが必要になってくる。
でも、Javaのようにあれもダメ、これもダメにはしたくない。
自分たちではクラスボックスとかセレクタリングスペースと呼んでいるんですがたとえば、今のRailsだと既存クラスのメソッドを置き換えたり追加したりしてますよね。
それってグローバルな影響を与えてしまうのでよくないことがある。
だから、その影響範囲を限定させられるようにしたいんです。
「あなたがIntegerクラス書き換えるのは勝手だけど僕に迷惑かけないでね」みたいな。
これまでRubyは自由にプログラミングできることが大事だったので、優先度は低かったんですが、これからはどうやって閉じ込めていくのかもテーマになってくるのかなぁ、と。
--そのあたりはRuby2.0で実現?
そうですね。
2.0以降の提供になるのでしょうが、実装は決まっていない。
全部のメソッド呼び出しに処理をかければ実装できるけど、それだとすべてのメソッド呼び出しが重くなってしまう。
そのあたりが考えられてから取り組むことになりますね。
2.0以降の提供になるのでしょうが、実装は決まっていない。
全部のメソッド呼び出しに処理をかければ実装できるけど、それだとすべてのメソッド呼び出しが重くなってしまう。
そのあたりが考えられてから取り組むことになりますね。
--Rubyとは別に何か作りたい言語はありますか?
昔はRubyに似た言語で静的な型付けができる言語を作ってみたいと思ったことはあります。
でも最近のマシンはだいぶ処理が速くなっているので・・・。
でも最近のマシンはだいぶ処理が速くなっているので・・・。
■Webについて
--Ruby on Railsが出たときはまつもとさんしてはどういう印象だったのでしょうか。
Web開発のフレームワークとして一番初めに出たわけでもなかったですし特に何かが突出していたというわけではなかったので「Yet another」という受け止め方をしていました。
--なるほど、ここまでRuby on Railsが広まったのはまつもとさんにとって
結構意外なことだったんですね。
--JRubyについてはどうでしょう?
わくわくしながら見てます。冗談かと思いました(笑)
考える人はいてもまさかRailsが動くところまで持っていけるとは思ってませんでした。
考える人はいてもまさかRailsが動くところまで持っていけるとは思ってませんでした。
--普段使っているWebサービスは?
GoogleとかWikipedia?(笑)
RSSリーダーはLivedoor Readerを使ってます。
あと、最近Remember the milkをやっと使えるようになってきました。
RSSリーダーのようにオンラインの時に使うと決めているサービスは問題ないのですが、タスク管理やメモだと移動中などオフライン環境でアクセスしたい状況が多いので、ネットに接続しているときしか使えない、というのはつらい。
オフライン環境でいかに動くかが重要ですね。
RSSリーダーはLivedoor Readerを使ってます。
あと、最近Remember the milkをやっと使えるようになってきました。
RSSリーダーのようにオンラインの時に使うと決めているサービスは問題ないのですが、タスク管理やメモだと移動中などオフライン環境でアクセスしたい状況が多いので、ネットに接続しているときしか使えない、というのはつらい。
オフライン環境でいかに動くかが重要ですね。
--それでは、優秀作品の発表をお願いします。

発表は表彰式にておこないます。
まつもとさんからソフトウェア開発をする人へのメッセージもいただいています。
作品を提出された方も残念ながらできなかった人もぜひ表彰式までご来場ください。
お待ちしております!
まつもとさんからソフトウェア開発をする人へのメッセージもいただいています。
作品を提出された方も残念ながらできなかった人もぜひ表彰式までご来場ください。
お待ちしております!
まつもとさんと仕事をしてみたい方はこちらから。
↓ ↓ ↓ ↓ ↓ ↓







