インタビュー記事

interview

第12回 宮下尚 氏(前編)

miyashita_main1

今回は、「企業における研究者」をテーマとしまして、第7回の「Webエンジニアの武勇伝」にご登場いただいた大場光一郎さんからご紹介いただいた日本アイ・ビー・エム東京基礎研究所(TRL)の主任研究員でいらっしゃる宮下尚氏にお話をお聞きします。取材会場は、日本アイビーエムの大和研究所内の会議室です。大和研究所は、1985年に設立された歴史のあるラボで、かつてはロボットが動いていたりとマスコミでも大きく取り上げられていました。今回はその歴史ある研究所からお送りします。今回は広報ご担当の永渕貴史さんにもご同席をいただいております。
http://www.trl.ibm.com/extfront.htm

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

<大場さんとのおつきあいは?>
川井 今回は大場光一郎さんからのご紹介なのですが、大場さんと宮下さんとのおつきあいは、どんな感じなんでしょうか?
宮下 大場さんとはもう10年くらいのおつきあいで、正直なところお互いに「~さん」とか呼ぶような間柄じゃあないですね。
大場 私の知人の中では最強のカードを出そうかなと(笑)
宮下 そこまで言っていいのかな(笑)
大場 一番、強いポケモンを(笑)
川井 ポケモンですか(笑)
宮下 そんなことで、大場さんとの間ではかなりざっくばらんな会話になってしまうのでご容赦ください。こんな雰囲気で話すことなんてないですからね。
大場 宴会以外で会ったことがないですからね。
川井 最終的には、広報のチェックもありますから大丈夫ですよ。ご安心ください。
宮下 問題ないようにやっちゃってください(笑)
   ・・・(苦笑)
川井 お二人の出会いのきっかけはなんなんでしょうか?
宮下 基本的にはMeadowですね。Mule for Windowsっていうときからにさかのぼるんですが、これは私が大学時代からやっていて、大場さんはかなり初期からコントリビューターとして参加してたんです。当時、私は京都にいたんですが、大阪の宴会で初めて会ったんだと思います。
大場 その通りです。当時からかなりお忙しくされてたんですが、最初で最後の幹事になるかもしれない宴会を大阪でやると聞いて、東京から何人かで大阪まで出向いていったのが最初ですね。
宮下 あれはすごいことになりましたね。基本的にはオープンソースって人なんですよね。昔はフリーソフトウェアって言ってましたけど、その時から貢献してくださる人って本当に珍しいんですよ。オープンソースなんてものはまだないですし、基本的には個人の志で自分たちのものを作っていこうということだったんですよ。
川井 なるほど、そういう珍しい場での出会いだったんですね。

PCとの出会いは
川井 少し遡って、パソコンとの出会いをお聞きしたいんですが、結構な確率でゲームという方が多いんですが、宮下さんの場合はいかがだったんでしょう?
宮下 それが、私の場合には、そうじゃなくて電気や電子回路だったんですよね。小学生のときから電気というものにすごい興味を持ってて、電球がつくとかつかないとかそういうところから楽しいなと思って興味を持っていました。家電でもテレビでもみんな電気で動いているじゃないですか。父親がそういうのに興味があったこともあって、私の最初の興味はそういう機械とかだったんです。
川井 ハードウェアってことですね?
宮下 そうなんです。最初はハードウェアの方からきちゃったんですよ。
大場 時計を分解したり、コンセントにはさみを突っ込んだりしたんじゃないですか?
宮下 時計も壊しましたし、感電もしましたね(笑)
川井 私も豆電球を突っ込みました(笑)
一同 (大笑)
宮下 デジタルICってのが、私が小学生のときからあったんですよ。それで回路を組むんだりするんですが、小学生でもあれってある程度はわかるんですよ。それでコンピューターっていうのもその延長線上で当然面白そうだなとは思っていたんです。でもコンピュータでハードウェアを直接やるのをやめようと思ったのはかなり早くて、小学生から中学生にあがるときくらいなんです。結構昔から01とかなんだとかコンピュータの基礎とかで、電子回路を作って遊んではいたんですが、どちらかというとやはりハードウェアよりだったんですよね。その時にプログラムロジックデバイスというのが出て、衝撃を受けました。PLDいわゆるPALってうやつです。昔、いろいろ回路を組んでモーターを動かしたり家電を動かしてみたり破壊工作をしてみたりしたんですが、プログラムロジックデバイスとういうので、プログラムを書くと一瞬にしてその意思が自分の書いた回路のようになっちゃうんですよ。自分が1週間とか10日とか頑張って作ったのと同じもので30分くらいでプログラムしたものを使わせてもらって、「これは、もうやめよう。これからはソフトウェアの時代かな」って思いましたね。きっとこれが、本気でソフトウェアをやろうと考えたきっかけですね。
川井 学校ではそんな授業ないでしょうから、これは趣味の世界でのお話ということですよね?
宮下 そうですね。そういう意味では周りの環境みたいなところがありますね。あの頃は、興味の対象が強くサイエンス方向に行ってましたね。でも今後ハードウェアみたいなものを一生懸命作ってるよりもソフトウェアを作った方が価値があるんじゃないかって思ってしまったんですよ。まあ、当たったところもあり、当たらなかったところもあるんですけどね。
川井 なるほど。そしてその後は、このあたりから興味を学問や仕事につなげようと思われたんでしょうか?
宮下 そうですね。そういう風に思っていたと思います。高校のときもソフトウェアを作るようなアルバイトをしていて、今後、ソフトウェアを作ることで世の中が変わるかもという印象が、はっきりとではないですが、どこかにあったんだろうと思います。それが本格的に進むのは大学に入ってからでしたね。
川井 大学はそういう学部にいかれたんですか?
宮下 大学は理学部だったんですけど、何をやろうか迷ってましたけど、物理いこうか生物に行こうかで、コンピュータにいこうとは思ってませんでしたね。実際は物理いってから生物にいって物理に戻ってという不思議な経歴なんですけどね(笑)
大場 生物にもいったんだ?
宮下 生きましたね。国立遺伝学研究所にその時はいってましたからね。どっちかというとバックグラウンドが私の場合にはサイエンスの方向にいっちゃってましたね。大学に入って一生懸命勉強してたのはこの時期くらいしか出来ないかなと思って数学でしたしね。でも数学ばかりやってると息が詰まるので、それでプログラム書き始めたという感じになってきたんですが、やっぱりコンピュータに興味があったんでしょうね。それでアルバイトしてお金も稼いでましたからね。そのときにのが一番大きかったのはGNUEmacsに出会ったことなんでしょうね。これが私が今、ソフトウェアの世界で研究者としてやっていける上で大きな転換点になったじゃないかと思いますね。

GNUEmacsについてもう少し
川井 GNUEmacsについて少しご説明いただいてもいいでしょうか?
大場 GNUEmacsはUNIX上で動くもっとも有名はエディタの1つで、テキストを書いたりプログラムを書いたりするツールなんですが、単なるエディタではなくて、中にプログラムを実行するインタープリターを内蔵してまして、リスププログラムを書いて拡張したりもできるんですよ。エディタとしてだけでなくて、メーラーとして使ったり、Webブラウザを実装したり、OSみたいに使う人がたくさんいて、ハッカー御用達ツールなんです。当時はUNIXでしか動かなかったんですが、宮下さんが、Mule for 232を作ったことでWindows上でも動くようになったんです。
宮下 基本的には大場さんの言うとおりなんですが、1つ補足するとすると、ほとんどのプログラマというかデベロッパーにとってエディタって一番使うものなんですよ。プログラムのソースコードを書いたり、Emacs上っていう強力なエディア上ではコンパイルしたり実行したりテストをしたり身の回りの環境をやったり。自分とコンピュータの間をつないでくれる一番強力なツールがエディタなんですね。今の人たちってオフィスとかWebブラウザを使ってコンピュータとインタラクションするんでしょうけれど、わたしたちみたいなエディタになれている人間にとってはエディタが一番コンピュータと対話する上での大きな道具で、慣れてくると自分の意思がそのまま表現によって出てくるコンピュータにとって言葉のようなものなんです。
大場 Emacs独特のキーバインドとかがあって、1回それに慣れるともう他のものが使えなくなっちゃうような麻薬的なものなんです。あとはどんどんカスタマイスができるので、自分の設定じゃないと他のコンピューターが使えなくなったりとかそういう風にのめりこんでいきますね。
宮下 なので、今でも非常にユーザーが多いんですよ。
大場 前に聞いたかもしれないんだけど、なんでGNUEmacsを移植しようと思ったのか聞きたいですが。
宮下 私、インターネットに本当の意味で出合ったのが大学の頃だったんですが、何もかもが普通じゃないように見えたんですよ。あのときに物理とかに興味を持たないで、そっちに進んでいたらまた違う方向にいってたんじゃないかくらい強力な出会いでした。まず、何が普通じゃないかというと、インターネットって今ではみんな普通に使ってますけど、リソースつまり他人のリソースを自分が使うんですよ。これはびっくりすることなんですけど、ネットワークリソースでもなんでも所有権がある意味においておかしいんです。自分のネットワークの持ち物って今まで、自分のネットワークとして管理していたんですけど、インターネットっていうのは他人のネットワークをうまく使って、それをシェアして動くっていうシステムによって出来上がってるんですよね。同じようにインターネット上で動くソフトウェアとかシステムっていうのはほとんどボランタリーベースに作られていたんですが、その中でかなり大きな力を持っていたのが、リチャードストールマンっていう人がはじめたGNUというものだったんです。彼は、本当にそういう文化にどっぷりつかっていて、ある日、自分の成果が会社に取り上げられるという事態にあって、「GNUマニフェスト」っていうのを出して、フリーソフトウェアの活動を始めた人なんです。
川井 そういう時代だったんですね。
宮下 そうなんです。それでちょうどその時にWindowsの仕事があって、自分の使えるエディタをWindowsでも使えるようにしたいという欲求があって、それがきっかけだったんです。それで、フリーソフトウェアですからソースコードがあるんですが、GNUのソフトウェアは改変したものを再配布できたんです。むしろ反対にソースコードにアクセスできなくちゃいけないっていうしばりまであったんです。ストールマン曰く「公共のものは公共に返さねばならない」ってやつです。そのシステムを使わせてもらえるのはありがたいことだなって思って、大学1年生のときに自分の技術的チャレンジもこめてやってみようと思ったんですね。でも見てみると、これが分からないんですよ。当時の実力では全然足りないわけです。数年たってから分かったんですが、GNUEmacsってとんでもないシステムで、およそほとんどのコンピューターシステムが詰まっているんですね。最初のときは全然気づかなくて、ただのエディタぐらいにしか思ってなかったんです。もともとストールマンはAI(リスプ)の研究をしていて、その自分の研究の成果をそのまま詰め込んだ構造をしていて最初は本当に歯が立たなかったんですよ。まあ、普通に考えたら挫折してるところなんですが、ちょっと気合を入れて読みまくったんです。それが私の今のソースコードを書くとかの力の80%くらいになっている気がしますね。
大場 それは大きいね。
宮下 ものすごく大きいですね。でも、そもそも最初に実力のない人間が読むにはあまりにもハードなシステムものなんですよ。その中には現代のコンピューターシステムが持っているほとんどのエッセンシャルなテクノロジーが入っている。コンパイラのテクノロジーまで入っているんです。
大場 そういう意味ではOSに近いものですね。
宮下 OSに近いですね。
川井 なるほど。
宮下 これが半年くらいするとそうは言ってもわかるようになってくるんですよ。最初は本当に分からないんですが、ひたすら読んでいるうちに分かるようになってきて、この時に結構な能力を身につけたんですよ。ソースコードっていうのは、例えばXに10を代入するだとか何かを表示するだとかそういう単純な繰り返しになっているじゃないですか。でもそういう見方じゃなくて、この人は一体何をしたいんだろうかってことを考えるようになったんです。ざっと見た瞬間に腕のある人が書いたものなら一瞬で意図が読み取れる能力が身について、それ以降は自分でコードを書くのも本当に早くなりましたね。
川井 そんなことができるんですか。。。
宮下 およそ、プログラミング言語で何かを書くっていうのは、何か意味を伝えたいってことだと思うんですが、その伝えたい意味の方を早くトランスレイトすることができるようになりましたね。
大場 なかなかこういうことを言う人はいないと思うんですが、彼のこの能力は、本当にすごくて、ソースコードを読むだけでその人の人となりを類推できてしまうんです。
宮下 よいコードは何をしたいのかストレートに伝わってくるんです。実力があるレベルまできてている人のソースコードは意図がわかるんですが、それ以下だとこれは本当に意図が分からないんです。そういう意味では、ソースコードって文章と変わらないんですよね。書けない人に教えたりすることもあるんですが、「一体、何がしたいの?」と聞いても本人が分からないんですよ。分からないままに書いてしまっているんでしょうね。
川井 しかし、そういった能力が身につくというのはどういう仕組みなんでしょうか?
宮下 実は自分でも疑問に思ってて考えていて結論にたどり着いていないんですが・・・プログラミングの世界でもボキャブラリーみたいなものがあって、オブジェクト指向というのはいい意味でそういうレベルになってて、ある一つの言葉の意味をあらわすときにとてもよいものの考え方を提示した一連のプロトコルの知識セットをどんどん作っていったわけです。そういう知識セットとコードとの対応関係がわかってくると、結局どれを使いたいのかどういうことを表現したいのかってことがもう少しハイヤーレベルになってくる。そういう影響を与えているのはオブジェクト指向だけでなく、現代のコンピュータや通信のアーキテクチャーが意味に対するレベルを与えてるって思うんですよ。ただ、エンジニアっていうのはレベルが高い人であればあるほど、ユーザーとか顧客とかをマシンの理解できるレベルにトランスレイトしていくんですが、マシンは決してきれいなものではないので、その間をつながないといけないんです。だから逆にアーキテクチャーだとかっていう言葉に変換できる能力ってどんどん高くなっていかなくちゃいけない。すると、ソースコードにもその今までこういう表現をすると伝わるなってことを綺麗に書けるんです。全人的な能力を求められるんでしょうね。意味レベルのところを1つ1つ作り上げていって、新しいセットを覚えていくと、また効率よく意味が理解できるようになる、もっと読めるようになる、書けるようになるっていうのがありますね。考え方なんでしょうけどね。うーん、説明になってないですね。。。まだこれは自分でもちゃんと理解できてないんですよ。
川井 なかなか難しいところですね。
宮下 よく思うのが、頭のセットの限界点っていうのは自分のコードの書ける限界点にきてますね。つまり、頭の能力のめいっぱいを使ってコードを書く。そこをこぼれそうになると危険信号なんです。そのセットの中でストーリーが収まっているうちは動くんですよね。これ駄目だなって思うと確実に駄目なんですよね。そういうコードの書き方をしてますね。
大場 それはいつ頃から?
宮下 やっぱりGNUEmacsのコードが分かるようになってからですね。あれは、C、アセンブラ、リスプ、他に怪しげな言語みたいな構成になってますからね。
大場 CCL?
宮下 そうCCLとかもね。アルバイトでデバイスドライバとかも書いたりもしてましたけど、やっぱりあの時のトレーニングが大きかったですね。その時に、「自分の成果を還元していかないと」って思って、せっかく自分で作ったんだから、頑張ってコントリビュートしてみましょうと思って始めたのがMuleforwindowsだったんです。それで大場さんたちのような素晴らしい人たちと出会ったわけです。そこで私の知ってる人たちの中でも本当にベストな人たちが集まってきてくれたのが私にとっては本当に財産ですね。
川井 なるほど
宮下 昔は、こんな感じでオープンソースが流行るなんてまったく思ってなかったんですよ。私の所属しているこの会社にしても、今でこそとてもオープンソースにコントリビュートしてますけれど、昔はそうなるなんて本当に思ってなかったですね。
川井 確かにそういう印象はありましたね。でもこれってまだ会社に入る前ですよね?
宮下 そうですね、ずっと前ですね。その後にMuleプロジェクトに本格的に参加することになるんですが・・・このままいくとどこまでも脱線しそうなんで、大場さん、ちょっとナビゲートをお願いします。
大場 はい。じゃあ、EmacsとMuleの関係について少し説明しますね。Emacsはさきほど説明したエディタ環境なんですが、もう1つMuleって呼ばれる部分があって、もとのEmacsが英語圏でしか動かないセットだったんですが、それをサン総研の半田研一さんが始めた国際化しようとするプロジェクトがあったんです。それがマルチリンガライハンスメントGNUEmacs、略してMuleです。元々は別のプログラムだったんですが、今は統合されていて、Emacsの中にMuleが入っていて、Emacsを使えば最初から国際化されているようになっていますね。日本でもインドとか他の国でも使えるようになっています。
宮下 そのときに産業技術総合研究所、今はサン総研になってますが、半田剣一さんと戸村さとるさんが拾ってくれて、Muleプロジェクトにお世話になったんです。そのときあたりから歯車がまた1回進んだっていう印象がありますね。それから自分の中で特にユーザーインターフェイスまわりでの形を模索したかったんです。まあ、それにあまり言えないないんですが、いろいろあって(笑)、いつまでもMuleforwindowsってのもあれだろうということで、新たにめどうっていう名前をつけて、Muleプロジェクトの中で自分はこの領域の仕事をしますってことで始めたんですよ。そのあたりが大学の4回生くらいですかね。いろいろあってって言いましたけど、ちょっと真面目な話をすると、オープンソースのプロジェクトの中で人間関係って馬鹿にできないんですよ。私が見てる中でもすごい分裂したりだとか喧嘩したりだとかあるので、その中で前に進めるソーシャライゼーションみたいなものは生身の人間のやってることなんですごい重要なんです。それについてはエリックレイモンドがいろんなことを書いていたりしますけど。。。でも、そういうプロジェクトの中でいろんなレベルの高い方がいて、いろんなことを教わったりしましたね。
大場 それが、Muleたこ部屋だっけ?
宮下 そうなんですよ。これが面白くて、「Muleたこ部屋」っていうのを産業技術総合研究所では作ってもらっていて、腕のある人間を集めていたんです。守岡知彦さんだとか新部裕さんとうLinuxのコントリビューターで有名な人がいて、本当に腕利きが集まってMuleのために喧嘩したり激論したりしたのはいい経験でしたね。
川井 若いうちから相当にもまれているってことですよね?
宮下 これは本当に財産ですね。これがなかったら、今の自分の中での自信はなかったでしょうね。勿論、私以上の人もいるでしょうけど、今では、たいがいの人間よりはコードが書けるっていう自信があるのはそういう経験があってのことなので、そういう環境を作ってくださったことには本当に感謝していますね。

LINEで送る
Pocket

TO TOP