インタビュー記事

interview

第18回 笹田耕一 氏

sasada_main

今回は、東京大学大学院情報理工学系研究科、創造情報学専攻の特任助教であり、日本Rubyの会理事である笹田耕一氏にお話をお聞きしました。笹田さんは、2005年にYARVの研究で未踏ユース スーパークリエータ認定を受け、昨年末には、その研究成果を生かしたRuby1.9のリリースに貢献されるなど、Rubyの開発陣の中心人物です。取材は、秋葉原にある研究室の会議室をお借りいたしました。またテクニカルアドバイザーとして、同研究室の学生であり、株式会社ケイビーエムジェイにアルバイト勤務している星くんにも同席いただきました。

※取材日は、2008年1月です。所属や役職などは当時のまま掲載しております。

<PCとの出会い>
川井 パソコンとの出会いをお願いを教えていただきたいのですが。
笹田 パソコンとの出会いですか。中学校3年生のときに、生徒会活動をしていたんですが、生徒会新聞を作るということで、そこに1台のMACMac (以下同様) がやってきたんです。Macintosh Performa 275という今となってはもう大変な機械だったんですが、それがまともに使える始めてのパソコンで、夜中までゲームばっかりしていました。
川井 お、ゲームだったんですね。最初はゲームという方が多いんですが、「笹田さんはゲームじゃないんじゃないか」ってさきほど干星くんと言っていたんです。予想外でしたね。
笹田 (笑)そうですか。勿論、ゲームを作るほうじゃなくて、する方でしたけどね。
星  どんなゲームだったんですか?
笹田 SimCityをずっととやっていました。MACにはゲームがあまりなかったんですが、生徒会の先生がなんとなく入れてくれたSimCityを夜遅くまで延々とやっていて、「生徒会活動、夜遅くまで大変だね」ということになっていました(笑)
川井 学校でやっていたんですね。
笹田 生徒会ですからね(笑)
川井 私も社会人でしたが、SimCityはやっていました。あれ、やめられないですよね。
笹田 そのMACにハイパーカードというのが入っていたんです。MACでその時代に無料で最初から入っているものでプログラミングをしようとするとAppleScriptとHyperCardという環境があったんですが、AppleScriptだとプログラミングするのには、限界があるので、HyperCardを使っていました。HyperCardで書いてあったプログラムを他の生徒会のメンバーがもってきて、「打ち込んでみよう」っていって打ち込んだら、動かなかったというのがプログラムの原体験だったと思います。
川井 なるほど。他の人がもってきたいものがきっかけだったんですね。
笹田 そうですね。なんだかんだでプログラミングには興味があったんですが、当時は高いものだったので、なかなか買えず、高校に入ってから自分の環境がやっとできて、なんとかやってきたという感じですね。
川井 高校のときの環境は自宅で?
笹田 そうですね。自宅です。
川井 ご両親はエンジニアだったりしたんですか?
笹田 父親はエンジニアだったんですが、機械系のエンジニアでした。
川井 そうですか。最初はどんなパソコンを買ったのですか?
笹田 最初に使ったのがMACだったので、またMACを買いました。Macintosh Performa 588です。それはそれで遊んでいたんですけど、如何せん、C言語の環境が高校生にとっては高くて買えないんですね。後になってPC98を中古で買ってきて、それにC言語の環境を入れたりして、初めて、Dos-PromptDOS Promptを使って、「なんて使いやすいんだ」と(笑)
一同 (笑)
笹田 今まで、ファイルの移動なんかもドラッグ&ドロップでしかできなかったので、ワイルドカードを使うとなんてファイルの移動なんかが簡単なんだと感動しました。エディタなんかは、98というかDOSのやつだと苦手だったので、MACでCプログラムを書いて、RS-232C、MAC側は484だったりしましたけど、シリアルに通信して98に送ってコンパイルして実行するという環境でしたね。
星  普通と順序が逆ですね。
笹田 ハイパーカードはその後も、GUIのアプリケーションを作りたいときは、使っていましたね。
川井 高校生のときにここまでやっちゃうっていうのは、本か何かで調べてのことなんですか? 
笹田 高校の物理室に転がっていた「K&R」をちらっと見たけど、Cは良く解んなくて、その頃、 パソコン通信とかもやっていたので、パソコン通信の相手にいろいろと聞いてみたりしながらやっていました。
川井 笹田さんの高校時代というと10年前という感じですか?
笹田 98年に卒業しましたので、95年入学ですか。ああ、もうぞっとしますね(笑)
川井 12、3年前~10年前までっていう感じですね。そうするとWindows95は出ている時代ですね。
笹田 そうですね。Windows95は出ていました。Windows95も入れてみたんですが、素の方が使い易いし、Window環境はMACがあるからMACでいいやみたいな(笑)
川井 そういうことなんですね。
笹田 今とあまり変わってないですね。今は、Window環境はWindowsでいいやって感じで、LinuxとかxXが使えないんで、UNIX系のサーバーはサーバーがあればいいやというそういう位置関係は変わってないですね。柔軟性がないだけのような気がしますが・・・
川井 その頃から、自分の環境を確立されているということですね。
笹田 その頃から進化がないという気もします。
川井 いえいえ、そんなことは。高校は普通の高校にいかれたんですよね。
笹田 はい。そうですね。
川井 大学は東京農大でしたよね?
笹田 東京農業工業大学というところで、一応、情報科があって、学費が安い国立大学で、近所で情報科があるというと農工大が電通大だったんですよ。そのうち私の家に近いのが農工大だったので、じゃあ、農工大でいいやって感じで決めました。
川井 じゃあ、もうこちらの世界に行こうと決めたということですね。
笹田 そうですね。情報系に行こうというのは決めていました。入ってみてびっくりしたんですが、あまり情報系っていう感じの人はいなくて、「パソコン触ったことがありますか?」という質問に手をあげられない人が半分以上いるような状況でした。
星  多分、国立はどこもそうだと思いますよ。
笹田 そうみたいですね。学部名を見て、決めましたみたいな人が多くてびっくりしました。
川井 学校で、端末が全員に貸与されるとかはなかったんですか?
笹田 それはなかったですね。例えば、東大の情報理工学系研究科だと学生全員にパソコンを貸与するということになっていますけどね。これはアピールなんですけどね(笑)
川井 そうかと思ってました(笑)
星  東京大学は学部もそうですよ。
笹田 そうなの? へえ。
星  勿論、東京大学っていうシールの貼られたThinkPadですけどね。
笹田 それは何年生から?
星  多分3年生からですね。
笹田 いいですね。農工大の頃は自分で買いましたからね。初代のMebius MURAMASAが出て、「薄すぎ!」ってつい一目ぼれして買ってしまいました(笑)
川井 この頃は、すでに高校時代にいろいろやられていて、学校で学ぶことってあるんですか?
笹田 プログラミングの演習なんていうのは、大体、分かっていることなんですけど、例えば、概念の話になると分からないところが結構あしましたね。あと、私はOSの研究室のずっといて、OSについての一つ踏み込んだ話というのは全然知らなかったので、学ぶことはありましたね。例えば、学部4年生のゼミのときに「TLB(Translation Look-aside Buffer)」が出てきて、「TLBって何?」っていう状態でした。
川井 なるほど。
笹田 学部の1、2年生の頃は、データ構造とかアルゴリズム云々みたいなよくあるプログラミング基礎あたりは、高校時代に読んだ奥村晴彦先生の・・・なんだっけ。
星  「C言語による最新アルゴリズム事典」ですね。
笹田 そうそうそうそう、その「C言語による最新アルゴリズム事典」を読んで「なんて楽しいんだ!」と感動したりしていたので、大体、その辺の知識でまかなえたりしたんですけど、学年が上がっていくにつれて、それまでの知識で追いつけないところが出てきましたね。
川井 なるほど。そういう過程も経てこられているんですね。

その後の進路とRubyとの出会い
川井 大学の3年くらいだと、皆さん、まだ進学するのか就職するのかとかはっきり決まっていないんじゃないかと思うんですが、笹田さんの場合は、どういう風に意思決定されたんですか?
笹田 大学4年からマスターに行くっていう際の話ですよね。就職活動が面倒臭かったんですよ。
川井 えー(笑)
星  よく分かります。
笹田 そうなんですよ。大学選んだのも家から近いとかで、結局遠くまで通ったり別の大学を探すのが面倒臭くて一浪しているんですけどね。
星  一浪されているんでしたっけ?
笹田 ええ、1浪しています。それも農工大は5回も受けているんです。
川井 5回受験ですか?
笹田 はい。まず、推薦がダメで、1年目が前期後期ともダメで、2年目、予備校に通って前期後期と受けて、後期で受かったんです。
川井 そこまでしても近い大学にいこうとしたんですね。
笹田 他の大学を考えるのが面倒臭かったんです。1浪して試験にこれだけ落ちても結果的に東大に入れるんだということですかね(笑)
川井 じゃあ、本当に面倒臭いからということで?
笹田 まあ、なんでしょう、半分はそうですね。あと、その頃は研究が楽しかったので、研究していきたいなとは思っていました。その後で運のいいことに卒論で書いた研究がそれなりに認められて、マスターを1年スキップしてドクターコースに行きませんかっていう話があって、まあ、就職活動もしなくていいし、1年年限短縮できるんだったらいいかなと思いましたね。修士2年で博士3年なんですけど、それを4年間でドクターまで出られるんだったらいいかなってことですね。普通は修士で止まるかドクターまでいくか悩むところなんですけど、そこはその1年という餌で釣られたということですかね。
星  プラス1、マイナス1なんですね。
笹田 そうそうそうそう。だからストレートでいった人と同じですね。
川井 なるほど。この「飛び級」ってどれくらいの確率でチャンスがあるものなんですかね?
笹田 私の学年では4人くらいしかいませんでした。研究室の先生のポリシーで、どんどん論文に出せということで鍛えていただいて、卒論の研究も言われるがままに出していたら認めていただいたという感じです。
川井 なるほど。博士課程ではどのようなことを?
笹田 博士課程になってから、Rubyの処理系の話を本格的にやるようになって、運よく「未踏ユース」に通ってしまったので、今までやっていた修論・卒論の話をそっちのけで、ワークビューをやっていたという感じですね。
星  修論・卒論の延長ではないという話ですね。
笹田 そうですね。それまでは研究分野はOSでしたからね。
川井 博士課程になって、本格的にRubyのことをということですが、Rubyに興味を持ったのはどういうことがきっかけだったんでしょうか?
笹田 確か、学部4年の頃だと思うんですけど、なんかRubyが便利そうだということで普通に使っていたんです。その時に、日本ソフトウェア科学会のチュートリアルで湯淺太一先生と前田敦司先生とまつもとゆきひろさんが、ガーベイジガベージ (以下同様) コレクション(Garbage Collection)について語るというイベントがありまして、その中で前田敦司先生が「ガーベイジコレクション」のある言語で「ガーベイジコレクション」のある言語を実装するのって簡単だよねって至極尤もな話をされていて、じゃあ、Rubyという「ガーベイジコレクション」のある言語の上でJavaのVMを作るのは簡単だろうかと思って、やってみたら簡単だったということがあったんです。まともに作ったRubyのアプリケーションはそれが初めてでしたね。
星  すごく重そうですね。
笹田 そうですね、重そうですね。何のために必要なの? って感じなんですけど、作ったっていうことがスラッシュドット (slashdot)に載り注目を浴びて、Rubyでやると簡単に使えるということが分かって、「これはRubyは面白い」ということになったんです。
川井 簡単にいろんなことができそうだってことですね。
笹田 そうですね。以前はC++でJavaのVMを作っていたので、そういうのがRubyだったらもっと簡単にできたんです。ちなみにそのイベントでまつもとさんに初めて会って、たまたま隣に座っていたので「ネイティブスレットに対応しないんですか?」みたいな話を直接聞いてみたら、「そんな予定はない」と言われたんですけど、それを5年後の今、自分がやっているみたいなことになっているんです。
川井 それはすごい巡り合わせですね(笑)
星  言いだしっぺがやると(笑)
笹田 そんなこともありました。
川井 まさに運命の出会いですね。
星  当時はまさか自分がやるとは思わなかったんですか?
笹田 そうそうそうそう、だってやるつもりも全然なかったし。
一同 (大笑)
笹田 ネイティブスレッドの実装を探るためにRubyのスレットはどうなっているのかなってサーベイしたかったんですよ。
星  ということは、その当時はまだRubyのソースが読んでいなかったんですか?
笹田 卒論のために、ちらっとは読んでいたけど、それくらいでしたね。Rubyのソースといえば、「Rubyソースコード完全解説(Ruby Hacking Guide)」っていうRubyの実装のことが書いてあるC言語の本が、2002年の暮れに出て、それがとても素晴らしい本だったんで、読書会をやろうということになったんです。月に2回の読書会を2周ほどしてRubyへの理解が深まったので、じゃあ、VMをやろうということで博士課程に入ったあたりで始めたという感じです。それをさきほども言った通り運よく「未踏ユース」に通していただいて、先年の12月に「YARV(Yet Another Ruby VM)」を搭載したRuby1.9のリリースに繋がっていくんです。
川井 なるほど。他にRubyにのめりこんでいった理由はありますか?
笹田 日本の文化だと思うんですけど、日記を公開するってありますよね。なんか適当な雑文を書いていたんですけど、そこでRubyネタを書いていたらRubyコミュニティの人たちがいろいろ突っ込んでくれてですね、「これはRubyコミュニティは素晴らしい。遊んでくれる」と思ったり、そういう点もあって、Ruby関係の記事を積極的にいろいろ書いて、レスポンスをもらってのめりこんでいった経緯はありますね。
川井 アウトプットすればそういうレスポンスがあるということですかね。
笹田 そうですね。Rubyのコミュニティでは、本当にくだらないことでも言っていれば、誰かが反応してくれたというのはありますね。あまりにマイナー言語ですとあまり反応はないですし、反対にCとかC++だと広がりすぎちゃって、ネタが相当興味深くないと書いても誰も反応してくれないんですよ。
川井 なるほど、このあたりは最近でも変わっていないんですか?
笹田 そうですね。「はてなダイアリー」とかですと、私やまつもとさんみたいに「Ruby」でキーワードチェックしている人がいるので、返事が必要なことであれば、書いてもらえれば、確認して回答できたりもします。
川井 なるほど。じゃあ、Rubyのコミュニティはもう大分長くなるんですね。
笹田 そうですね。日本Rubyの会を作ろうっていう最初から関わっています。コミュニティ活動で一番大きいのは、「Rubyist Magazine(るびま)」のリリースと「Ruby会議の開催」の2つなんですが、「Rubyist Magazine(るびま)」のリリースは継続的な努力が必要なんですが、有志が協力してくれるのでなんとか続いているという感じですね。Ruby会議の方は、年に1回のお祭りなんで、やろうやろうって感じでいってくれるんですけど、1年に数度っていうのは地味でつらいんですよね。このインタビューだって何回も出すのって大変ですよね?
川井 はい。頑張ってます。
星  お疲れ様です(笑)
川井 好きな人がいないと続かないですよね。
笹田 その辺を支えてくれた人がいたので、なんとか続けてこれています。
川井 なるほど。

その他の研究などについて教えてください
川井 この5年間を簡単に聞いてしまった感じになっちゃったのですが、他にこの5年で大きな出来事ですとかありましたでしょうか?
笹田 この5年というとマスターとドクターという感じですか?
川井 そうですね。Ruby一色というわけではないとは思いますので、研究なんかも含めて。
笹田 研究ですか!
川井 はい。
笹田 私は、並列関係を修論、卒論でやってきたんですね。並列っていうと、グリッドみたいなすごい大きな並列、疎な並列って言いますか間がすごく空いているような並列とクラスタみたいな部屋に何台も置いてあるようなやつとあるんですが、他にもパソコンの中にプロセッサが何個もあってっていう感じのやつとかもあるんですね。それで私がやっていたのはもっと細かくて、プロセッサの中に何個もコアがあるっていう今はメニーコアっていいますけど、その辺の研究をやっていて、マルチコアのプロセッサの上でいかに効率良くソフトウェアを動かすかの研究をしていました。それは最後はパッとしなかったんですが、インテルのハイパースレッティングみたいなああいうSMT(Simultaneous MultiThreading)アーキテクチャーというものに対してのOSの研究みたいな感じでやっていたんですね。それはそれで、非常に意義があるというか、5年後、10年後、20年後に役に立つ実験だと思ったんですが、Rubyを開発すると明日、役に立つんですよね。
川井 なるほど。
笹田 作ったら、使ってくれる人の反響があるというのがあって、なのでやっぱりRubyでなんかした方が人からのフィードバックがぱっと見れて楽しいんですよね。そういう意味で、ついRubyの方にいっちゃっていたんだと思いますね。
川井 そういう意味では、研究との距離が近づいているのかもしれませんね。かつては研究していたものが実用化されて普及するまでに相当に時間がかかったと思うんですが、最近は、それが意外と早くなっているのかもしれませんね。
笹田 勿論、それだけではないですけど、そういうものも出てきているということは言えると思います。5年後、10年後のための研究も重要で、成果が出やすいから明日のための研究をやっちゃうっていうのは、それはそれでデメリットだと思うんですけどね。
川井 それは、確かにそうですね。
笹田 まあ、見えやすくなっているというのはあると思いますね。例えば、昔、OSの研究をしようとして、OSの一番下のところから作り出すとすごく労力がかかるということがあったんですが、今は、Linuxの上にこんなものをつけましたっていう研究ができるという意味では研究の効率もよくなっているというのはあると思いますね。
川井 そういうのだけでは勿論駄目なんでしょうけど、そういう研究ができる環境ができてきているということは言えそうですね。
笹田 まさにLinuxだけだと駄目だっていうのはその通りで、抜本的に違うものを作ろうとするとLinuxの上だと作れないんですが、だからといって、作るのが大変だなとか言って尻込みしちゃうと進まないっていうジレンマもあるんですよね。
川井 なるほど。その2つがあるんですよね。抜本的に何かを開発するっていうものと今あるものを進化させるものがあって、後者の方のスピードが一気に速くなっているんですね。
笹田 私の場合だと、Rubyの処理系っていうと、特に何か新しいものをやっているわけではなくて、既存の研究で提案されている他の言語にこんなものを適用したら早くなったよっていうものをRubyに方にもってくるっていう研究だったので、新しいものでは貢献できていないんですよ。
星  でも大事なことですよね。
笹田 確かに今すぐ喜んでくれる人は多いですね。でも、10年後にどうかっていうと忘れられている可能性はありますね。
川井 先日、まつもとさんに笹田さんのことをお聞きしたら、「彼はスピード狂だから」なんて言っていましたが、こうしてお聞きしていると、やはりスピードというか高速化にフォーカスされていますよね。興味の先はやはりそこなんですか?
笹田 そうですね。研究するときに、こんな風に便利になりましたっていうのは、評価をするのが難しいんですよね。例えば、UIを作って便利になりましたっていうと、10%便利になりましたって言えないんですよね。定性的な研究って勿論大事なことだと思うんですけど、それって評価がしづらいんです。なので、私は学部でOSの研究をやっている時も評価が明快なので、早くなりました、偉いでしょっていうのが好きでしたね。
川井 なるほど。
笹田 ただ、何も考えないで遅そうなところを早くしても、実際にあまり使われていない部分ですと、あまり意味がないんです。私にはそういう視点がなくて、目につくところを早くしていたら、この間、博士論文の発表で、ベンチマークの考察ができていないという指摘をされまして、ここは大事だったなあ、やるべきだったなあ、そしてこれからやらなきゃいけないなって思っています。
川井 どこを早くするべきかっていうのを見極めるということですか?
笹田 どこをっていうか、そもそもRuby一般の性能っていうのはどういうものかって感じで一般的なベンチマークを用意して、それに対してプロフィリングをとって、ボトルネックを発見して、そのボトルネックに対して高速化していくという科学的というか理路整然とした高速化のアプローチをとっていなかったんですよね。なので、その辺は反省点ではあります。
星  いきなり部品を作ってしまったということですか?
笹田 そうですね。部品を作ると早くなるっていうのは自明の理としてあって、それに関しては、VM化すると、どれくらい早くなるかっていう興味はあったんで、それはそれでやってよかったんですが、その後にVM化のどこを早くするかっていったときに、もっと戦略を持った方がよかったんじゃないかなと思っています。まあ、ソフトウェアのチューニング一般の話なんですけどね。
川井 なるほど、非常に分かりやすい話ですね。他に研究というかやろうとしていることはあるんですか?
笹田 今はStarRubyStar Ruby (以下同様) (URL のっけてくれると嬉しいな! http://www.starruby.info/) っていうのを(笑)
星  え、僕のですか?
笹田 星くんがStarRubyっていうのをRubyの上でSGUSDLを使って作っているので、それがどこまで汎用的にいけるかっていう話を処理系含めた形で話ができると面白いなあと思っています。
星  ほう。
笹田 いや、「ほう」じゃなくてさ(笑) 例えば、携帯ゲーム機にそれをもっていったときに何が問題になるかっていうのを見出して、それは処理系でカバーできるのか、それとも上のアプリケーションでなんとかできるのかっていうのを見極めて、例えば処理系なら私がなんとかできるしという形で、Rubyがいろんなところで使えるようになるための研究を今はしていますね。
星  StarRubyってそんな壮大な構想でしたっけ?
笹田 私の中では、そうなんですよ。
星  まあ、なんにしても使ってもらえるのは嬉しいですけどね。
笹田 やっぱり研究していても「ファクトリアルが早くなりました」って言っていても、誰も「ほう」とは言ってくれなくてですね、「こんなゲームがこんな早く動くようになりました」だと「おう」って分かりやすいんですよね。OSの研究をしているときでもフォンテキストコンテキストスイッチが、0.何秒早くなりましたっていっても、評価としては自明なんですけど、みんな「すごい」って言ってくれないんですよね。
一同 (大笑)
星  ゲームだと分かりやすいんですね。
笹田 ゲームがこんな環境でもできるようになりましたっていうとインパクトがあるんですよね。フィボナッチがこんな環境でもできるようになりましたって言ってもあまり嬉しくないでしょう。
川井 フィボナッチじゃ普通の人は使えないですからね。
笹田 そういう話一般でいうとアプリケーションにRubyを組み込みたいっていうルア(LUALua)っていう言語があって、それは、アプリケーションに組み込んで、アプリケーションの中からDSLとして使うっていう使い方ができるんですけど、今はRubyってそれじゃ使いづらいので、そこでRubyを使いやすくするインターフェイスを整理しているところです。
川井 結構、実用とか商用を見据えた開発というか、機能UPをしている感じですね。
笹田 はい。その辺ってどのようなインターフェイスを切ると使いやすいかは自明ではないと思うので、その辺の切り方は研究になっていますね。あとRubyの高速化に関してもまだまだやれることもあって、VM化したっていうのは、高速化するために最低限のことなので、ベースができたということで、次はあれしよう、これしようっていうのがいろいろあって、ちょっと体が追いつかない状態なんですけど、徐々にやっていければと思っています。
川井 まつもとさん的にはRubyを普及させていくことにはあまり興味がないというようなことを仰ってましたが、そのあたりはどうお考えですか?
笹田 まつもとさんは、確かにRubyを普及させることには興味はないと思いますが、Rubyをよくしたり使いやすくすることには、大変、興味がある方だと思いますよ。でも普及しちゃうといろいろ大変ですよね。
川井 ですね。純粋な開発以外の余計なことが発生しますからね。
笹田 なので、それに積極的な開発者っているかもしれないですが、あまりいないんじゃないかなって思いますね。
星  確かに。
笹田 例えばオープンソースの開発なので、今の開発者ってコードを書くことが面白いからやっているわけで、Rubyを何かの共通にしようとか、TIOBE(TIOBE Programming Communityサイト)でプラグラム言語のランキングページでトップにしようとかそういうのは多分ないんですよね。そう言っているのは多分、周りの人なんですよね。それはそれで非常にありがたいんですけどね。
川井 なるほど。Rubyをよりよくしていこうということは一致していて、結果的に笹田さんがやっていることは、比較的、世の中で便利で早く役に立つものが多いということですね。
笹田 そうですね。不満をくみ上げて、それをどう解決していくか検討するというのが研究のアプローチで、私はRubyという非常によく使われていて、まだ問題が多い、研究のSEEDSがたくさんある分野を知っているのはありがたいなと思いますね。
川井 笹田さんは、一言でいうと「研究者」ということになるんでしょうか?
笹田 この職場の立場では、「研究者」なんですけど、個人的には「開発者」がいいですね(笑)
川井 なるほど。
笹田 開発者といっても、勿論たくさんあると思うんですけど、例えばこの仕様書通りに期日までにという開発者もいると思うんですけど、それだと自分に興味のない開発を強制させられると思うんです。そういう意味で、それよりは今のように自分でテーマを見つけて開発していける環境はありがたいなと思いますね。
川井 お聞きしていると、そうは言っても研究者に近いですね。
笹田 そうあろうとはしているんですけどね(笑)
川井 いやいや、立派な研究者だと思いますよ。

今後の方向性は?
川井 今後、5年とか10年とか多少長いスパンでやりたいことはどんなことでしょうか?
笹田 私は、今まで流されて生きてきたんですよね。ここに就職したのも誘われたからきたという感じで、東大で研究したいからみたいな強い意思で、きた感じではなかったので、これからは、もうちょっと、自分の意思で動いていかないとそろそろいかんかなと思ってはいます。でもまだ何も考えていなくて、今のように研究者寄りの開発者という感じで、ソフトウェアを開発して生きていければいいなと思っているんですが、それができるところを探すということになると思います。
川井 研究者寄りの開発者で自分はずっと居続けるんだという強い意志というのはあるんですか?
笹田 それができれば一番いいんですけど、例えば、大学に残っていると、授業とか他の仕事も発生してくるんですね。勿論、それを否定しているわけではないんですが、先生といわれる仕事は絶対に自分には向いていないと思っているんですよ。こういうこといっちゃいけないのかな(笑)
星  これはオフレコですか(笑)
笹田 いや、これは書いていただいてもOKですよ。自分自身も先生と言われることに対してですね、自身を持って「先生と呼びなさい」といいづらいところもありまして、未だに取引先の方から笹田先生と言われると、流石にぞっとするんですよね。
川井 そうなんですか。
笹田 なので、大学の先生を続けていくんだったら、それに対応する覚悟がいるかなと思いますね。開発者という観点で見ると、先生で呼ばれるよりは誰かを先生を言っていたいし、教え導くことについては右往左往している状態ですね。
川井 このまま助教授、教授となっていく道もあるんですよね?
笹田 私の今の立場であれば、普通の人だったら、そういうプランが多いのかなと思いますね。
川井 そこまでは決めかねているかなということですか?
笹田 決めてなれるんだったら、なりたいですけどね(笑)まあ、できる範囲で。
川井 なるほど(笑)
笹田 1回、会社に入っておいた方がいいかなとも思うんですけどね。
川井 民間にもというそういったものもあるわけですね?
笹田 そうですね。大学の中に閉じこもっていると、大学の常識ってかなりかけ離れていますよね。そういう意味では、かっちりとした・・・まるで大学はかっちりしていないみたいですが、そういうものを経験しておくのはいいのかなと思いますね。
川井 企業もかっちりしていないですよ。ね、星くん?
星  僕に聞かれても困るんですけど(笑)
川井 星くんなんか、KBMJにアルバイトに来て、プロレスの技をかけあったりして遊んでいる感じだもんね。
星  ホワイトボードに落書きしたりして遊んでいましたね。
笹田 そうなんですか・・・
川井 ええ、そうなんです・・・

若い開発者にメッセージやアドバイスをいただきたいのですが
川井 最後にこれまたお決まりなのですが、若い開発者にメッセージをいただきたいと思います。
笹田 なんだろう。就職活動しておいた方がいいよってことですかね(笑)
一同 (大笑)
笹田 冗談です・・・。
川井 では、改めてお願いします。
笹田 ひとところに閉じこもっているとよくないですよね。例えば、作ったものはきちんと外にアピールするべきだし、例えば、いろいろなコミュニティがあるんで、そういうところに顔を出すのも重要だし、大学なら大学、会社なら会社みたいなところにベースがあるっていうのは非常に大事で、そこの中でいろいろやっていくのは勿論大前提なんですけど、その上で、例えば、その中で何かを作ったら、それをきちんと外に出して、評価を問うとか、私みたいにコミュニティに顔を出すとか、なければコミュニティを作るとかというところまでやると絶対に世界は広がるので、そういう風にやるといいと思います。外の世界に目を向けるという意味でいうと、オープンソースになってソースコードにアクセスしやすくなっているので、他人のソースコードを読むとかいいなと思います。私自身は全然人のソース読んでいない方ですが、「Rubyソースコード完全解説(Ruby Hacking Guide)」みたいな非常にいい書籍があって、私はRubyのソースコードはその書籍を通じて非常によく勉強させてもらいました。そういう体験っていうのはソフトウェア開発者になるという意味では非常に大事かなと思っています。
川井 素晴らしいソフトウェアのソースに触れるっていうのはとても大切という話はよく聞きますね。
笹田 最近は、そういう書籍もどんどんと出てきていますから、私が大学の学部1年とかいう時期に比べれば環境がよくなっていますよね。勿論、私よりももっと昔の開発者から見れば、もっともっとよくなっていますね。
川井 「RHG」の書籍自体は廃版になって、ネット上でだけ出ていますよね。
笹田 そうなんです。それで重版するのかって聞いたら、いろいろ問題があってしないらしいんですけど、新しくするのかっていうと、私が書かなきゃならないっていう問題がでてくるんですよ(笑)
川井 それは大きな問題ですね(笑)
星  是非、新しいのを出してくださいよ。
笹田 書いている青木峰郎さんって方が、非常にお仕事の方が忙しいということで、別の書籍も書いているみたいで、休む暇がないということなんです。
川井 そうですか。それは残念ですが、噂によると、今年Rubyの本がかなりたくさん出るらしいですね。
笹田 そうなんですか?
川井 まつもとさんが言っていました。すでに決まっているものだけでもいくつかあると。
笹田 それは、去年から引き続きで出ていないものが出るということだと思いますよ。
川井 そうなんですか。そういうことだったんですね(笑)
笹田 (笑)
川井 星くんから何か聞きたいことはありますか?
星  勉強しておいたのでよかったこととか、反対にしておけばよかったことってありますか?
笹田 しておいてよかったのは、やっぱアルゴリズムに触れた原体験であるさっき言ってた「C言語による最新アルゴリズム事典」を読んだのは衝撃的でよかったと思いますね。
川井 そんなに衝撃的だったんですか?
笹田 衝撃的でした。こんな風に考えればできるんだって。あと言語処理系でいうとYACCとかDNFBNFでコンパイラーみたいな考え方があるのを学べたのも衝撃的でよかったですね。
星  なるほど。
笹田 あとは、勉強しておけばよかったことですか? 数式とか全然読めないので統計とか全然分からないんですよ。何かを評価するときに統計の処理の仕方とかいりますよね。例えば分散がどうのとかいると思うのですが、その方法を私は知らないので、その辺はもっとやっておけばよかったなと思います。あと英語ですかね。なんだかんだで海外からお話もいただくんですが、見様見真似で英語を書いたり話したりもするんですが、もっと勉強しておけばよかったですね。英語よりもソースを書いていた方が楽しかったんですよね。
星  ソースコードのコメントは英語ですよね?
笹田 そうですね。でも私はあまり書かないんですよ。書いても1行くらいのエセ英語です。チェンジログを英語で書かないといけないんですけど、それもエセ英語ですね(笑)
川井 なるほど。数学と語学だと。
笹田 そうですね。基礎ですね。
川井 算数と国語ですからね。
星  読み書き算盤 (そろばん? だった気が) ですね。  
笹田 まあ、勉強しておけばよかったということはまだまだたくさんありますけどね。これからも頑張って勉強していきます。
川井 そろそろお時間となりました。本日は、いろいろと興味深い話をお聞きできて楽しかったです。ありがとうございました。今後ともよろしくお願いいたします。
笹田 こちらこそ、ありがとうございました。

<プロフィール>
2003年3月 東京農工大学 工学部 情報コミュニケーション工学科 卒業
2004年3月 東京農工大学大学院 工学研究科 情報コミュニケーション工学専攻 卒業
2004年3月 東京農工大学 阿刀田基金 受給
2004年4月 東京農工大学大学院 工学教育部 電気電子工学専攻 知能・情報工学専修 入学
2004年7月~2005年3月 東京農工大学大学院 リサーチ・アシスタント
2004年7月~2005年3月 IPA 未踏ソフトウェア開発事業 未踏ユース採択,開発
2004年8月 2日~7日 文部科学省ITスクール チューター
2004年8月~ 日本Rubyの会 理事(会計)
2004年8月 Rubyist Magazine 企画・創刊
2004年8月~ Rubyist Magazine 編集
2005年1月~ 情報処理学会若手の会 幹事
2005年 5月 IPA (Information-technology Promotion Agency, Japan) 2004年度未踏ソフトウェア創造事業(未踏ユース) スーパークリエータ認定
2007年10月2007年度日本OSS貢献者賞

http://www.ipa.go.jp/event/ipaforum2007/program/pdf/oss-sasada.pdf

※少し違う切り口ですが、こちらも是非、ご覧ください(オブジェクトの広場 ○○エンジニアの輪)
http://www.ogis-ri.co.jp/otc/hiroba/others/OORing/interview38.html

LINEで送る
Pocket

TO TOP