ホーム > Webエンジニア武勇伝

サービス&ソリューション

第18回 笹田耕一 氏 東京大学大学院 講師 / 日本Rubyの会 理事

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

笹田耕一 氏


略歴:
2003年3月 東京農工大学 工学部 情報コミュニケーション工学科 卒業
2004年3月 東京農工大学大学院 工学研究科 情報コミュニケーション工学専攻 卒業
2004年4月 東京農工大学大学院 工学教育部 電気電子工学専攻 知能・情報工学専修 入学
2006年3月 同専攻退学
2006年4月 東京大学大学院情報理工学系研究科 特任助手
2007年4月 東京大学大学院情報理工学系研究科 特任助教
2008年2月 東京大学大学院情報理工学系研究科 講師
その他:
2005年 5月 IPA (Information-technology Promotion Agency,Japan) 2004年度未踏ソフトウェア創造事業(未踏ユース) スーパークリエータ認定
2007年10月2007年度日本OSS貢献者賞
2005年 8月〜 日本Rubyの会 理事(会計)

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

川井: パソコンとの出会いを教えていただきたいのですが。
笹田:パソコンとの出会いですか。中学校3年生のときに、生徒会活動をしていたのですが、生徒会新聞を作るということで、そこに1台のMacがやってきたんです。Macintosh Performa 275という今となってはもう大変な機械だったのですが、それがまともに使える始めてのパソコンで。実際はゲームばっかりしていました。
川井: お、ゲームだったんですね。最初はゲームという方が多いんですが、「笹田さんはゲームじゃないんじゃないか」ってさきほど星くんと言っていたんです。予想外でしたね。
笹田:もちろん、ゲームを作るほうじゃなくて、する方でしたけどね。
星: どんなゲームだったんですか?
笹田:SimCityをずっととやっていました。Macにはゲームがあまりなかったんですが、生徒会の先生がなんとなく入れてくれたSimCityを夜遅くまで延々とやっていて、「生徒会活動、夜遅くまで大変だね」ということになっていました(笑)
川井: 学校でやっていたんですね。
笹田:生徒会ですからね。
川井: 私も社会人でしたが、SimCityはやっていました。あれ、やめられないですよね。
笹田: そのMacにHyperCardというのが入っていました。当時のMacでその時代に最初からインストールされているものでプログラミングをしようとすると、AppleScriptとHyperCardという環境がありました。AppleScriptだとプログラミングするのには、限界があるので、HyperCardに。HyperCardで書いてあったプログラムを他の人がもってきて、「打ち込んでみよう」っていって打ち込んだら、結局動かなかったという。これが最初のプログラミング体験だった気がします。
川井: なるほど。他の人がもってきたいものがきっかけだったんですね。
笹田:そうですね。なんだかんだでプログラミングには興味があったのですが、当時、パソコンは高価なものだったのでなかなか買えず、高校に入ってから自分の環境がやっとできて、という感じです。
川井: 高校のときの環境は自宅で?
笹田:そうですね。自宅です。
川井: ご両親はエンジニアだったりしたんですか?
笹田:父親は機械系のエンジニアです。計算機とはあまり関係は無かったと思います。
川井: そうですか。最初はどんなパソコンを買ったのですか?
笹田:最初に使ったのがMacだったので、またMacを買いました。Macintosh Performa 588です。それはそれで遊んでいたんですけど、如何せん、Mac用のC言語の環境が高校生にとっては高くて買えないんですね。後になってPC-9821As2を中古で買ってきて、それにC言語の環境を入れたりして。初めて MS-DOSを使ったときには「なんて使いやすいんだ」と思いました(笑)
一同: (笑)
笹田:Macだったので、それまではファイルの移動なんかもドラッグ&ドロップでしかできなかったので。ワイルドカードを使うとなんてファイルの移動なんかが簡単なんだと感動しました。プログラミングだと、やはりMacのエディタのほうが使いやすかったので、MacでCプログラムを書いてシリアル通信で98側に送ってコンパイルして実行するという環境でした。
星: 普通と順序が逆ですね。
笹田:HyperCardはその後も、GUIのアプリケーションを作りたいときは、使っていました。
川井: 高校生のときにここまでやっちゃうっていうのは、本か何かで調べてのことなんですか? 
笹田:高校の物理室に転がっていた「K&R」を読みましたが、Cは良くわからなくて。その頃、 パソコン通信で知り合った人にいろいろと聞いてみたりしながらやっていました。
川井: 笹田さんの高校時代というと10年前という感じですか?
笹田:98年に卒業しましたので、95年入学ですか。ああ、もうぞっとしますね(笑)
川井: 12、3年前〜10年前までっていう感じですね。そうするとWindows95は出ている時代ですね。
笹田:そうですね。Windows95は出ていました。Windows95も入れてみたんですが、素(DOS)の方が使い易いし、Window環境はMacがあるからMacでいいや、と。
川井: そういうことなんですね。
笹田:今とあまり変わってないですね。今は、Window環境はWindowsでいいやって感じで。設定を覚えるのが面倒でXが使えないので、UNIX系ではサーバーがあればいいやと。そういう位置関係は変わってないですね。柔軟性がないだけのような気がしますが。
川井: その頃から、自分の環境を確立されているということですね。
笹田:その頃から進化がないという気もします。
川井: いえいえ、そんなことは。高校は普通の高校にいかれたんですよね。
笹田:はい。
川井: 大学は東京農工大学でしたよね?
笹田:はい。東京農工大学というところで、一応、情報科があって、学費が安い国立大学で、近所で情報科があるというと農工大が電通大だったんですよ。農工大のほうが近かったので、じゃあ、農工大でいいやって感じで決めました。
川井: じゃあ、もうこちらの世界に行こうと決めたということですね。
笹田:そうですね。情報系に行こうというのは決めていました。入ってみてびっくりしたんですが、あまり情報系っていう感じの人はいなくて、「パソコン触ったことがありますか?」という質問に手をあげられない人が半分以上いるような状況でした。
星: 多分、国立はどこもそうだと思いますよ。
笹田:そうみたいですね。学科名と偏差値を見て決めました、みたいな人が多くてびっくりしました。
川井: 学校で、端末が全員に貸与されるとかはなかったんですか?
笹田:それはなかったですね。例えば、東大の情報理工学系研究科だと学生全員にパソコンを貸与するということになっていますけど。あ、これは東大のアピールということで(笑)
川井: そうかと思ってました(笑)
星: 東京大学は学部もそうですよ。
笹田:そうなの? へえ。
星: 勿論、東京大学っていうシールの貼られたThinkPadですけどね。
笹田:それは何年生から?
星: 多分3年生からですね。
笹田:いいですね。農工大の頃は自分で買いましたからね。初代のMebius MURAMASAが出て、「薄すぎ!」ってつい一目ぼれして買ったのが初めてのラップトップでした。
川井: この頃は、すでに高校時代にいろいろやられていて、学校で学ぶことってあるんですか?
笹田:プログラミングの演習なんていうのはあまり苦労しませんでしたが、例えば概念の話になると分からないところばかりでした。あと、私はOSの研究室にずっといたんですが、OSについての一つ踏み込んだ話というのは全然知らなかったので、色々と勉強させていただきました。例えば、研究室配属後すぐのゼミのときに「TLB(Translation Look-aside Buffer)」が出てきて、「TLBって何?」っていう状態でした。
川井: なるほど。
笹田:学部の1、2年生の頃は、データ構造とかアルゴリズム云々みたいなよくあるプログラミング基礎あたりは、高校時代に読んだ奥村晴彦先生の・・・なんだっけ。
星: 「C言語による最新アルゴリズム事典」ですね。
笹田:そうそう。それを読んで「なんて楽しいんだ!」と感動したりしていたので、大体、その辺の知識でまかなえたりしたんですけど、学年が上がっていくにつれて、それまでの知識で追いつけないところが出てきました。
川井: なるほど。そういう過程も経てこられているんですね。
川井: 大学の3年くらいだと、皆さん、まだ進学するのか就職するのかとかはっきり決まっていないんじゃないかと思うんですが、笹田さんの場合は、どういう風に意思決定されたんですか?
笹田:大学4年からマスター(修士課程)に行くっていう際の話ですよね。就職活動が面倒臭かったんですよ。
川井: えー(笑)
星: よく分かります。
笹田:大学選んだのも家から近いとかで。結局遠くまで通ったり、別の大学を探すのが面倒臭くて。それで一浪しているのですが。
星: 一浪されているんでしたっけ?
笹田:ええ、一浪しています。それも農工大は5回も受けています。
川井: 5回受験ですか?
笹田:はい。まず、推薦がダメで、1年目が前期後期ともダメで、2年目、予備校に通って前期後期と受けて、後期で受かりました。
川井: そこまでしても近い大学にいこうとしたんですね。
笹田:他の大学を考えるのが面倒臭かったんですかね。
川井: じゃあ、本当に面倒臭いからということで?
笹田:まあ、なんでしょう、半分はそうですね。あと、その頃は研究が楽しかったので、研究していきたいなとは思っていました。その後で運のいいことに卒論で書いた研究がそれなりに認められて、マスターを1年スキップしてドクターコースに行きませんかっていう話があって。まあ、就職活動もしなくていいし、1年年限短縮できるんだったらいいかと思いました。通常、修士は2年、博士は3年なのですが、それを合計4年間で博士号まで取得出来るのなら、と。普通は修士で止まるかドクターまでいくか悩むところなのが、1年という餌で釣られたということですかね。
星: プラス1、マイナス1なんですね。
笹田:そうそうそうそう。だからストレートでいった人と同じですね。
川井: なるほど。この「飛び級」ってどれくらいの確率でチャンスがあるものなんですかね?
笹田:私の学年で数人でしょうか。研究室の先生のポリシーで、どんどん論文に出せということで鍛えていただいて、卒論の研究も言われるままに出していたら認めていただいたという感じです。
川井: なるほど。博士課程ではどのようなことを?
笹田:博士課程になってから、Rubyの処理系の話を本格的にやるようになって、運よく「未踏ユース」に通ってしまったので、今までやっていた研究そっちのけにしていました。
星: 修論・卒論の延長ではないという話ですね。
笹田:そうですね。それまでは研究分野はOS関連でしたから。
川井: 博士課程になって、本格的にRubyのことをということですが、Rubyに興味を持ったのはどういうことがきっかけだったんでしょうか?
笹田:確か、学部4年の頃だと思うんですけど、なんかRubyが便利そうだということで普通に使っていたんです。その時に、日本ソフトウェア科学会のチュートリアルで湯淺太一先生と前田敦司先生とまつもとゆきひろさんが、ガーベージコレクション(Garbage Collection)について語るというイベントがありまして。その中で前田敦司先生が「ガーベージコレクション」のある言語で「ガーベージコレクション」のある言語を実装するのって簡単だよねって至極もっともな話をされていて、じゃあ、Rubyという「ガーベージコレクション」のある言語の上でJavaのVMを作るのは簡単だろうかと思って、やってみたら簡単だったということがあったんです。まともに作った初めてのRubyアプリケーションでした。
星: すごく重そうですね。
笹田:そうですね。何のために必要なの? という感じですが、まぁ少しネットで注目していただいて。Rubyでやると簡単にいろんなことができるので、「これはRubyは面白い」ということになった、のですかね。
川井: 簡単にいろんなことができそうだってことですね。
笹田:そうですね。以前、C++でJavaのVMを作っていたので、そういう点では作りやすかったのですが、それを含めてもRubyだったらもっと簡単だったと。ちなみにそのイベントでまつもとさんに初めてお会いしたのですが、たまたま一番前の席で隣に座っていたので「ネイティブスレットに対応しないのですか?」みたいな話を直接聞いてみると「そんな予定はない」と言われました。それを5年後の今、自分がやっているというのは面白いですよね。
川井: それはすごい巡り合わせですね(笑)
星: 当時はまさか自分がやるとは思わなかったんですか?
笹田:はい、だってやるつもりも全然なかったし。
一同: (大笑)
笹田:卒論がスレッド関連だったので、Rubyのスレッドの実装を探るためにRubyのスレッドのサーベイはしていました。
星: ということは、その当時はまだRubyのソースをあまり読んでいなかったんですか?
笹田:卒論のために、ちらっとは読んでいたけど、それくらいでしたね。Rubyのソースといえば、「Rubyソースコード完全解説(Ruby Hacking Guide)」っていうRubyの実装のことが書いてあるC言語の本が、2002年の暮れに出て、それがとても素晴らしい本だったんで、読書会をやろうということになりました。月に1回の読書会をして、2周ほど読みました。Rubyへの理解が深まったので、じゃあ、VMをやろうということで博士課程に入ったあたりで始めたという感じです。運よくIPAの未踏ユースに通していただいて、先年の12月に「YARV(Yet Another Ruby VM)」を搭載したRuby1.9のリリースにつながります。
川井: なるほど。他にRubyにのめりこんでいった理由はありますか?
笹田:ウェブ上に日記を公開するってありますよね。私も適当な雑文を書いていましたが、そこでRubyネタを書いていたらRubyコミュニティの人たちがいろいろ突っ込んでくれまして。「Rubyコミュニティは素晴らしい。遊んでくれる」というのがありました。
川井: アウトプットすればレスポンスがあるということですかね。
笹田:そうですね。Rubyのコミュニティでは、くだらない質問でも誰かが反応してくれたというのはあります。あまりにマイナー言語ですとあまり反応はないですし、反対にCとかC++だと広がりすぎちゃって、ネタが相当興味深くないと書いても誰も反応してくれないというか。コミュニティに恵まれていただけかもしれませんが。
川井: なるほど、このあたりは最近でも変わっていないんですか?
笹田:どうでしょうね。「はてなダイアリー」とかですと、私やまつもとさんみたいに「Ruby」でキーワードチェックしている人がいるので、返事をしたりしています。
川井: なるほど。Rubyのコミュニティはもう大分長くなるんですね。
笹田:そうかもしれません。日本Rubyの会を作ろうっていう最初から関わっておりまして。その中で一番大きいのは、「Rubyist Magazine(るびま)」のリリースと「Ruby会議の開催」の2つになります。「Rubyist Magazine(るびま)」のリリースは継続的な努力が必要なのですが、有志が協力してくれるのでなんとか続いているという感じです。Ruby会議の方は、年に1回のお祭りなので、やろうやろうっていってくれるのですが、1年に数度っていうのは地味でつらいんですよね。このインタビューだって何回も出すのって大変ですよね。
川井: はい。頑張ってます。
星: お疲れ様です(笑)
川井: 好きな人がいないと続かないですよね。
笹田:その辺を支えてくれた人がいたので、なんとか続けられています。
川井: なるほど。
川井: この5年間を簡単に聞いてしまった感じになっちゃったのですが、他にこの5年で大きな出来事ですとかありましたでしょうか?
笹田:この5年というと修士課程や博士課程ですか。
川井: そうですね。Ruby一色というわけではないとは思いますので、研究なんかも含めて。
笹田:修論卒論として並列関係を扱ってきました。並列っていうと、グリッドみたいなすごい大きな並列から、クラスタみたいな部屋に何台もパソコンが置いてあるようなもの、パソコンの中にプロセッサが何個もあるような並列、などいろいろあるのですが、私がやっていたのはさらに細かい、プロセッサの中に何個もコアがある、今はマルチコアなんて言いますが、そういうCPUのためのシステムソフトウェアの研究を行っていました。インテルのハイパースレッティングみたいなやつですね。SMT(Simultaneous MultiThreading)アーキテクチャーといいます。その研究はその研究で、意義のあるものだったと思います。3年後、5年後、10年後、20年後に役に立つ研究という意味で。ですが、Rubyを開発すると明日、役に立つんですよね。
川井: なるほど。
笹田:作ったら、使ってくれる人の反響があるというのがあって、なのでやっぱりRubyでなんかした方が人からのフィードバックがぱっと見ることができて楽しいのです。そういう意味で、Rubyの研究にうつつを抜かす、というと言葉が悪いですが、はまっていったところはあります。
川井: そういう意味では、研究との距離が近づいているのかもしれませんね。かつては研究していたものが実用化されて普及するまでに相当に時間がかかったと思うんですが、最近は、それが意外と早くなっているのかもしれませんね。
笹田:そういうものも出てきているということは言えると思います。5年、10年、50年後のための研究も重要で、成果が出やすいから明日のための研究しかやらない、というのは、それはそれで問題だと思うのですが。
川井: それは、確かにそうですね。
笹田:やりやすくなっている面はあるかとは思います。例えばOSの研究をしようとして、OSをスクラッチから作り出すと凄く労力がかかります。今は、Linuxにこんな便利な機能をつけましたっていう研究ができるという意味では研究の効率もいいですよね。
川井: そういうのだけではもちろん駄目なんでしょうけど、そういう研究ができる環境ができてきているということは言えそうですね。
笹田:Linuxだけだと駄目だっていうのはその通りで、しかし抜本的に違うものを作ろうとするとLinuxの上だと作れない。だからといって、作るのが大変だなとか言って尻込みしちゃうと進まないっていうジレンマもあるんですよね。
川井: なるほど。その2つがあるんですよね。抜本的に何かを開発するっていうものと今あるものを進化させるものがあって、後者の方のスピードが一気に速くなっているんですね。
笹田:私の場合は、Ruby処理系について、とくに何か新しいものをやっているわけではなくて、既存の研究で提案されているものをRubyにもってくるっていう研究だったので、新しいものという意味では貢献できていません。
星: でも大事なことですよね。
笹田:確かに今すぐ喜んでくれる人は多いですね。でも、10年後にどうかっていうと忘れられていそうですよね。
川井: 先日、まつもとさんに笹田さんのことをお聞きしたら、「彼はスピード狂だから」なんて言っていましたが、こうしてお聞きしていると、やはりスピードというか高速化にフォーカスされていますよね。興味の先はやはりそこなんですか?
笹田:そうですね。研究するときに、こんな風に便利になりましたっていうのは評価がとても難しいです。例えば、UIを作って10%便利になりましたって言えないんですよね。そういう研究ももちろん大事なことだと思うんですけど、評価がしづらい。なので、OSの研究でもそうですが、高速化というのは評価が明快なのが好きでした。
川井: なるほど。
笹田:ただ、もうすこし戦略性をもって開発にあたればよかったな、とは反省しています。
川井: どこを早くするべきかっていうのを見極めるということですか?
笹田:そうですね。Ruby一般の性能っていうのはどういうものか、一般的なベンチマークの検討、構築から行うともっとよかったかなと思います。
星: いきなり部品を作ってしまったということですか?
笹田:そうですね。VM化すると、どれくらい速くなるかという興味はあったので、それはそれでよかったんですが、それをどこを重点に、どこまでやるか、という。まあ、ソフトウェアの高速化一般の話ですが。
川井: なるほど、非常に分かりやすい話ですね。他に研究というかやろうとしていることはあるんですか?
笹田:そうですね。例えばアプリケーションにプログラミング言語を組み込む、という用途でよく利用されているLuaという言語があります。アプリケーションの中からDSLとして使うっていう使い方ができるのですが、今のRubyではそういう使い方がしづらい。そういう用途にRubyを使いやすくするインターフェイスを整理しています。
川井: 結構、実用とか商用を見据えた開発というか、機能UPをしている感じですね。
笹田:はい。どのようなAPIを提供すると使いやすいかは自明ではないので、その辺の切り方を研究しています。まぁ、実際に作ると幸せになる人は多いと思いますし。あとRubyの高速化に関してもまだまだやれることもありまして。VM化というのは高速化するために最低限のベースなので、次はあれしよう、これしようっていうのがいろいろあります。ちょっと体が追いつかない状態ですけど、徐々にやっていければと思っています。
川井: まつもとさん的にはRubyを普及させていくことにはあまり興味がないというようなことを仰ってましたが、そのあたりはどうお考えですか?
笹田:まつもとさんは、確かにRubyを普及させることには興味はないと思いますが、Rubyをよりよいものに、使いやすいものにするということには大変、興味がある方だと思いますよ。でも普及しちゃうといろいろ大変ですよね。
川井: ですね。純粋な開発以外の余計なことが発生しますからね。
笹田:なので、普及に積極的な開発者っているかもしれないですが、あまりいないんじゃないかなって思いますね。
星: 確かに。
笹田:例えばオープンソースの開発なので、今の開発者ってコードを書くことが面白いからやっているわけで、Rubyを何かの共通基盤にしようとか、TIOBE(TIOBE Programming Communityサイト)でプログラミング言語のランキングページでトップにしようとかそういうのは多分ありません。そう言っているのは多分、周りの人ではないでしょうか。それはそれで非常にありがたいのですが。
川井: なるほど。Rubyをよりよくしていこうということは一致していて、結果的に笹田さんがやっていることは、比較的、世の中で便利で早く役に立つものが多いということですね。
笹田:そうですね。世の中の不満をくみ上げて、それをどう解決していくか検討するという研究のアプローチですね。私はRubyという非常によく使われていて、まだ課題のたくさんあるネタに比較的詳しい位置にいる、というのはありがたいですね。
川井: 笹田さんは、一言でいうと「研究者」ということになるんでしょうか?
笹田:研究者、といえるかもしれませんが、個人的には「開発者」であり続けたいと思っています。
川井: なるほど。お聞きしていると、そうは言っても研究者に近いですね。
笹田:そうであれば、とも思っています。
川井: いやいや、立派な研究者だと思いますよ。
川井: 今後、5年とか10年とか多少長いスパンでやりたいことはどんなことでしょうか?
笹田:今まで流されて生きてきたところがあります。これからは、もうちょっと、自分の意思で動いていかないといけないな、と思っています。今のように研究者寄りの開発者という感じで、使えるソフトウェアを開発して生きていきたいと考えています。
川井: 研究者寄りの開発者で自分はずっと居続けるんだという強い意志というのはあるんですか?
笹田:それができれば一番いいのですけど、例えば大学に残っていると、授業とかも受け持つことになります。自分自身は、先生といわれる仕事は絶対に自分には向いていないと思っているのですが。うーん、こういうこといっちゃいけないのかな(笑)
星: これはオフレコですか(笑)
笹田:いや、これは書いていただいても構いませんよ。どうも、先生と言われるとぞっとするんですよね。
川井: そうなんですか。
笹田:なので、大学の先生を続けていくのだったら、それに対応する覚悟がいるかなと思いますね。
川井: このまま助教授、教授となっていく道もあるんですよね?
笹田:私の今の立場であれば、そういう道もあるかと思います。
川井: そこまでは決めかねているかなということですか?
笹田:決めてなれるのだったら、なりたいですけどね(笑)まあ、できる範囲で。
川井: なるほど(笑)
笹田:1回、会社に入っておいた方がいいかなとも思うのですけどね。
川井: 民間にもというそういったものもあるわけですね?
笹田:そうですね。大学の中に閉じこもっていると、大学の常識ってかなりかけ離れていますよね。そういう意味では、かっちりとした・・・まるで大学はかっちりしていないみたいですが、そういうものを経験しておくのはいいのかなと思いますね。
川井: 企業もかっちりしていないですよ。ね、星くん?
星: 僕に聞かれても困るんですけど(笑)
川井: 星くんなんか、KBMJにアルバイトに来て、プロレスの技をかけあったりして遊んでいる感じだもんね。
星: ホワイトボードに落書きしたりして遊んでいましたね。
笹田:そうなんですか・・・
川井: ええ、そうなんです・・・
川井: 最後にこれまたお決まりなのですが、若い開発者にメッセージをいただきたいと思います。
笹田:なんだろう。就職活動しておいた方がいいよってことですかね(笑)
一同: (大笑)
笹田:冗談です。
川井: では、改めてお願いします。
笹田:ひとところに閉じこもっているとよくない、というところでしょうか。例えば、作ったものはきちんと外にアピールするべきだし、例えば、いろいろなコミュニティがあるので、そういうところに顔を出すのも重要。大学なら大学、会社なら会社みたいなところにベースがあるっていうのは非常に大事で、そこの中でいろいろやっていくのは大前提ですけど、その上で、例えばその中で何かを作ったら、それをきちんと外に出して、評価を問うとか、私みたいにコミュニティに顔を出すとか、なければコミュニティを作るとかというところまでやると絶対に世界は広がるので、そういう風にやるといいと思います。外の世界に目を向けるという意味でいうと、オープンソースになってソースコードにアクセスしやすくなっているので、他人のソースコードを読むとかいいなと思います。私自身は全然人のソースを読んでいないのですが、「Rubyソースコード完全解説(Ruby Hacking Guide)」みたいな非常にいい書籍があって、私はRubyのソースコードはその書籍を通じて非常によく勉強させてもらいました。そういう体験っていうのはソフトウェア開発者になるという意味では非常に大事かなと思っています。
川井: 素晴らしいソフトウェアのソースに触れるっていうのはとても大切という話はよく聞きますね。
笹田:最近は、そういう書籍もどんどんと出てきていますから。私が大学生のときに比べれば環境がよくなっていますよね。勿論、私よりももっと昔の開発者から見れば、もっともっとよくなっていますね。
川井: 星くんから何か聞きたいことはありますか?
星: 勉強しておいたのでよかったこととか、反対にしておけばよかったことってありますか?
笹田:しておいてよかったのは、やっぱアルゴリズムに触れた原体験であるさっき言っていた、「C言語による最新アルゴリズム事典」を読んだのは衝撃的でよかったと思いますね。
川井: そんなに衝撃的だったんですか?
笹田:衝撃的でした。「こんな風に考えればできるんだ」って。あと言語処理系でいうとYACCとかBNFでコンパイラーを作る、みたいな考え方があるのを学べたのも衝撃的でした。えーと、言いたいことは細かい技術がどうこう、というわけではなくて、自分の知らない技術を知ることができる環境に居ること、です。書籍でもいいし、知り合いでもいい。
星: なるほど。
笹田:あと、自分は数式とか統計とかとても苦手で。例えば、何かを評価するときに統計の知識が必要になりますが、その辺はもっとやっておけばよかったなと思います。あと英語ですかね。なんだかんだと海外からお話もいただくのですが、しどろもどろな英語を書いたり話したりしています。その辺、もっと勉強しておけばよかったですね。
星: ソースコードのコメントは英語ですよね?
笹田:そうですね。でも、書いても1行くらいのエセ英語です。ChangeLogは英語で書かないといけないのですが、それもエセ英語ですね(笑)
川井: なるほど。数学と語学だと。
笹田:そうですね。
川井: 算数と国語ですからね。
星: 読み書き算盤ですね。  
笹田:まあ、勉強しておけばよかったということはまだまだたくさんありますが、これからも勉強していきます。
川井: そろそろお時間となりました。本日は、いろいろと興味深い話をお聞きできて楽しかったです。ありがとうございました。今後ともよろしくお願いいたします。
笹田:こちらこそ、ありがとうございました。
左の写真:秋葉原名物「アキバーガー」 右の写真:「笹田さん(左)& 星くん(右)」

日本Rubyの会といえばこの方→ Webエンジニア武勇伝 第20回 高橋征義 氏
次に紹介したのは→ Webエンジニア武勇伝 第22回 舘野祐一 氏
これを読んだあなたに
オススメの会社は→

株式会社イトクロ

ページ上部へ戻る
ホーム