RubyPrize2019 受賞者 糸柳茶蔵/Sakura Itoyanagi Interview

まつもとひろゆき、国分崇志

インストールされているドキュメントをきちんと使えるようにしたいっていうビジョンがありました。


まつもとひろゆき
まつもと
Ruby Prize受賞おめでとうございます。
糸柳茶蔵
糸柳
ありがとうございます。
まつもとひろゆき
まつもと
毎回、Ruby Prize受賞者と最終ノミネートには、こうやってインタビューをしているんですけれども、この記事を読まれる方は、糸柳さんのことを御存じない方もいると思うので、まずは、直近の活動について、ちょっとお聞かせいただけませんか?
糸柳茶蔵
糸柳
はい。直近は、irbっていうRubyのプログラミングを入力して結果を手軽に確認できるツールがあるんですが、複数行入力して編集できる便利な機能をちょっと追加したということですかね。Rubyって、やっぱりお手軽に書けるっていうことを売りにしている言語だと思うんで、そのお手軽さをより促進してさっと確認できるみたいな。
まつもとひろゆき
まつもと
タブを2回打ってドキュメントが出るとかも糸柳さんの作?
糸柳茶蔵
糸柳
もともとは、僕はRDocっていうRubyの標準ドキュメンテーションツールのメンテナーをやっているんですが、そのドキュメントをみんなgoogleで検索してるんですよね。
まつもとひろゆき
まつもと
うん、そうだね。
糸柳茶蔵
糸柳
僕もそうなんですよ。
でも、Rubyってローカルに最初からドキュメントの情報を一緒にインストールされてるんですね。僕には、そのインストールされているドキュメントをきちんと使えるようにしたいっていうビジョンがありました。そのビジョンの一環として、irbの原作者の圭樹さん(石塚圭樹氏)が、複数行で動くビジョンを示していたので、僕がそれに乗っかって、irbで複数行入力をできるようにするっていう便利な機能をとりあえずゼロから最後までつくって、その上で、編集しながらドキュメントも必要なときに表示できるっていう機能を追加しました。irbの機能拡張なんだけど、僕にとっては、Ruby3に向けてのドキュメンテーションのデザインの新しいビジョンの一環として、機能を追加したということですね。
まつもとひろゆき
まつもと
賢いツールでRubyの生産性が上がるのは、目指してる方向性に沿っているので、本当にありがとうございます。そういうあたりを評価して、今回の賞だと思います。
じゃあ、次に、糸柳さんがRubyに最初に触れたのはどんな経緯だったんですかね?
まつもとひろゆき、国分崇志

2008年ぐらいに仕事でRails を使ったので、10年ちょっと前ですね。

糸柳茶蔵
糸柳
僕が触れたのは、もっと古いコミッターの方よりはもうちょっと最近で、RubyがRailsで流行り始めたころに使い始めました。それまでは、ずっとPython使ってたんですけど。
まつもとひろゆき
まつもと
おお、そうなんだ。
糸柳茶蔵
糸柳
僕は昔ゲームプログラマーだったんですね。そのころ、プライベートでも、ちょっとだけゲームを描いてたんですけど、その時はPythonでつくったりしていました。その後、Railsが入ったころにWebプログラマーに転向しました。仕事では他の言語を使ったりもしてたんですけど、プライベートでRailsを使い始めて、個人的な小さい作業用のツールなんかをつくっていました。それが最初にRubyに触れたきっかけですね。
まつもとひろゆき
まつもと
うん。で、それでRubyにかかわるようになって。
糸柳茶蔵
糸柳
はい、10数年前ですね。
まつもとひろゆき
まつもと
10年、それぐらいですね。Railsが2004年スタートで、10年ちょっと。
糸柳茶蔵
糸柳
たしか、2008年ぐらいに仕事でRailsを使ったので、10年ちょっと前ですね。
まつもとひろゆき
まつもと
Railsユーザーだったのが、Rubyの開発、例えばパッチ書いたりとかみたいな、そういう活動に入り始めたのはどういう経緯で?
糸柳茶蔵
糸柳
ある日電車に乗っていたら、松田さん(松田明氏)が偶然電車に乗っていたんですよ。松田さんは技術イベントに参加した後だったみたいで、僕も技術イベントに参加した後だったんです。
まつもとひろゆき
まつもと
同じイベントっていうこと?
糸柳茶蔵
糸柳
それが違うイベントなんですよ。 両方とも渋谷で開催されていて、僕は友達と一緒に渋谷駅で銀座線に乗ったんですが、松田さんも全く違うイベントに参加して、そのあと銀座線に乗ったんです。僕も松田さんも当時は浅草在住だったので、渋谷から反対側の終点の浅草まで帰っている途中だったんですよ。
技術者って、ほら、イベントでもらったTシャツとかかばんとか使うじゃないですか。
まつもとひろゆき
まつもと
そうですね。
糸柳茶蔵
糸柳
それを見て、松田さんが「何々イベントの参加者の方ですか?」って話しかけてきたんです。
まつもとひろゆき
まつもと
松田さん、すげえコミュ力!!
糸柳茶蔵
糸柳
電車の中で。「いや、違います。別のイベントです。」と答えて。その後、浅草に行くまでの間ずっと話をしてました。僕は、Webプログラマーになってたんですけど、「ゲームプログラミングでこういうおもしろいのがあって。」って話をしたり、松田さんから「Asakusa.rbというのをやってるんでぜひ来てください。」って言われて。それから、ちょいちょい行くようになって。
僕は趣味で数学、それも、最近いろいろな本で取り扱われるようになった巨大数っていうのをちょっとやってたんですけど、そこら辺の本とかに、実は僕のGitHubのアカウントが載ってるんです。
まつもとひろゆき
まつもと
すごい!!
糸柳茶蔵
糸柳
数学関係の、簡単な計算のモデルみたいなものをRubyでいっぱい書いたりしてたんです。他にも、実際の途中までの計算をRubyで出力したりとか、僕がRubyで出力したメッチャでっかい式が漫画で使われたりとか。そのころは、Rubyに貢献するっていうか、完全にRubyで遊んでました。これはかなり楽しいと思って使ってました。
それを、Asakusa.rbで話したんですよ。でも、そんな話しされても、みんな分からないので困りますよね。せっかくAsakusa.rbに参加しているんだから、もうちょっとみんなと話ししたほうがいいなと思うし、Asakusa.rbはRubyコミッターの方がいっぱいいらっしゃるんで、僕もみんながやってることに協力したいなって思って。最初は小さいこと、例えば、CI回すようにしたりとか、僕が困ってたバグを直したりとかっていうところから。結構大きな課題が見えてきたんで。RDocとかirbとかの中に。20年ぐらいずっと継ぎ足し継ぎ足しで……。
まつもとひろゆき
まつもと
まあ、あれはね。
糸柳茶蔵
糸柳
これまで保守してくれていたんだけど、もう難しくなってしまっていた古い部分、パーサの部分を、全部Rubyの標準ライブラリで置きかえたとか、そういうことをいろいろやったのが、一番最初にやった大きいことですかね。
まつもとひろゆき
まつもと
irbとか、最古参のツールの一つですからね。
糸柳茶蔵
糸柳
RDocの中のパーサを置きかえるっていうためだけに、多分300か400コミットぐらい必要だったんですよ。
まつもとひろゆき
まつもと
ありがとうございます。それが、何年ぐらいですか?
糸柳茶蔵
糸柳
それが2016年から2017年ですね。なんで、数カ月、半年以上かかってますね。
糸柳茶蔵
まつもとひろゆき
まつもと
ありがとうございます。
糸柳茶蔵
糸柳
当時、暇だったんで。やっぱり人生、仕事が暇な時期ってあるじゃないですか。
まつもとひろゆき
まつもと
いや、暇大事ですよね。
糸柳茶蔵
糸柳
そんときに。
まつもとひろゆき
まつもと
余裕って言いましょうかね。
糸柳茶蔵
糸柳
まあ、余裕ですね。
まつもとひろゆき
まつもと
余裕は大事ですね。
糸柳茶蔵
糸柳
余裕がある時期だったんで、そういうのを半年以上何とかこなして。その後は、そのドキュメンテーションに関するいろんなことをやろうっていうビジョンが見えてきて。irbの方に、ちょうどRuby会議2017で圭樹さんが複数行でいろいろ編集できるといいよねっていうビジョンを示してくれたんで。
まつもとひろゆき
まつもと
そういえば、何か発表してましたね。
糸柳茶蔵
糸柳
ちょうど僕もirbに手を入れたいと思ってたんですけど、RDocの方も、パーサは元々irbから導入したものを使っているっていう繋がりがあったので、そのビジョンに乗れば、そのドキュメントをirbで表示できるっていう僕のビジョンと繋げられるかなっていうことです。
それからですね、irbを複数行にしたのは。2年ぐらいかかっちゃいましたけどね。

ペーパープログラマー、私もだけど。(まつもとゆきひろ)

まつもとひろゆき
まつもと
ありがとうございます。
糸柳さんがプログラミングに触れるようになったきっかけは?
糸柳茶蔵
糸柳
多分まつもとさんのころはまだなかったんじゃないかなと思うんですけど、僕の世代だとN88-BASICが数学の教科書に載ってたんですよね。
まつもとひろゆき
まつもと
糸柳さんの年齢にして、N88-BASICはちょっと古くない?
まつもとひろゆき、国分崇志
糸柳茶蔵
糸柳
ちょっと古いんで、僕のちょっと後の世代になると教科書から消えるんですよ。僕のころはまだ大学のセンター試験にN88-BASICの科目があったんです。
まつもとひろゆき
まつもと
そうなんだ。
糸柳茶蔵
糸柳
ぎりぎりまだありました。でも、もう最後のほうですよ。
僕がまだ高校生のころだと、みんながコンピューターを持ってるわけではない。特に田舎、長崎ですから。僕がプログラミング始めたのが14歳とかなんで、25年前。25年前は、地方ではみんながコンピューターを持ってるっていう感じじゃなかったと思うんですよ。「誰かが持ってる」っていう話を聞く程度で。教科書に載ってたんで、ノートにずっと書いてたんですよ。
まつもとひろゆき
まつもと
ペーパープログラマー、私もだけど。
糸柳茶蔵
糸柳
たしか、最初の1年ぐらいはノートにしか書いたことなかったですね。で、「こんな分岐とか自動的に計算とかできるんだ!すごい!!」と思って。コンピューターはさわったことないけどずっとノートに書いて。
まつもとひろゆき
まつもと
1年は長いな、すごいな—。
糸柳茶蔵
糸柳
いや、でも楽しかったですよ。
その後、学校にコンピューターがあることが分かったんで、「何か使わせてくれ」と言って打ち込んでみて、それっぽいものができたっていうので「おお、すごい!」となって。その後も書いては、先生に頼んで打ち込む、っていうのを何カ月かに1回繰り返すっていうのをずっとやって。その次は、今だったら関数とか、Rubyだったらメソッドとか。メソッドなんて、こういうのがありますって言ったら、多分若い人って、普通さっと吸い込んで終わりだと思うんですよ、大体は。僕の場合、全然分かんなくて、「“goto”でいいじゃん」って言ってたんですよね。全然向いてないんすよ、プログラミング。
まつもとひろゆき
まつもと
私も最初、再帰がわからなくてね。
糸柳茶蔵
糸柳
再帰とかも、もうだいぶ後ですね。オブジェクト指向とかもかなり分からなかったですよ。
僕、20歳過ぎても、オブジェクト指向って怪しかったですよ。
まつもとひろゆき
まつもと
いや、まあ、私も似たようなものかもしれないけども。
糸柳茶蔵
糸柳
楽しい方が一番重要なんで。
まつもとひろゆき
まつもと
なるほど。そういう経緯で、それで、そのまま職業に?
糸柳茶蔵
糸柳
職業もそうですね。
まつもとひろゆき
まつもと
プログラマーに?
糸柳茶蔵
糸柳
上京してきてプログラマーになって。上京してきたのが19歳のときなんですけど、そのときには、Webプログラマーでしたね。もう20年ぐらい前だったんですが、東京だったら仕事は幾らでもあったんで。
まつもとひろゆき
まつもと
20年前。そうか、ネットバブルのころか。
糸柳茶蔵
糸柳
そうです。最初のころはPHPとか書いてました。IPアドレスがわかんなくて、先輩に教えてもらってました。
まつもとひろゆき
まつもと
そういう経緯があったんですね。
糸柳茶蔵
糸柳
そのころには、OSSとかも、自分でSourceForgeで公開したりとかもやったり。まだ地元にいた10代のころに、かなり多言語対応を重視したオープンソースソフトウェアのライブラリを書いていたんです。例えば、ヨーロッパのデッドキーとか日本のインプットメソッドとか、ちゃんとサポートするっていうライブラリを書いてたんですけど、その関係で、多言語とか世界のいろんな入力方法、いろんな文字コードの関係とかをどのように扱ったらいいかっていうのにかなり詳しくなったんですね。それが、relineっていう、複数行編集するっていうのを実装するときかなり活きていて、その背景がなかったら、下手したら諦めてましたね。少なくとも今まだ完成してなかったと思います。
まつもとひろゆき
まつもと
過去の意外な経験が役に立ったということですね。
糸柳茶蔵
糸柳
20年前の。

ちょっとジャングルに行って、食料を現地調達してたら……

まつもとひろゆき
まつもと
あと、糸柳さんといえば、すごいアクティブな活動をしてて、話を聞くとすごい心配になることが多いんですけど・・・。
糸柳茶蔵
糸柳
いや、登山をしているっていう。
まつもとひろゆき
まつもと
登山とか。毒の草を食べて腫れ上がったとか、そんな話・・・。
糸柳茶蔵
糸柳
そうですね。ちょっとジャングルに行って、食料を現地調達してたら、たまに毒を踏むことがあって、何度か毒にはやられたことが。
まつもとひろゆき
まつもと
危ない!!
糸柳茶蔵
糸柳
芋とカエルとキノコですかね。この3つはやられましたね。
まつもとひろゆき、国分崇志
まつもとひろゆき
まつもと
すごい心配になるんです・・・。
糸柳茶蔵
糸柳
でも、これまでの経験によって、どんどんうまくなってるんで。
まつもとひろゆき
まつもと
それは、何か危険の回避がっていうことですか?
糸柳茶蔵
糸柳
そうです、そうです。初心者のうちが一番痛い目に合いますからね。
まつもとひろゆき
まつもと
確かにそういうものかもしれませんけどね。
Rubyに貢献してくださることも含めて、そういうような過去の経験を踏まえて、Rubyにいろいろしてくださったのは確かなんですけども、くれぐれも命大事にということですね。
糸柳茶蔵
糸柳
はい、大丈夫です。今のところ一度も死んだことがないっていう実績がありますので(笑)。
まつもとひろゆき
まつもと
大概の人はそうなんだけど、危険との距離が、他人とだいぶ違うので。
糸柳茶蔵
糸柳
安全第一で。
まつもとひろゆき
まつもと
安全第一で、今後ともよろしくお願いします。
糸柳茶蔵
糸柳
どうも、ありがとうございます。