[2003 年 4 月号]

［ＯＯエンジニアの輪！］

〜 第 20 回 高林 哲 さんの巻 〜





尊敬する人 特に無し

( いろんな偉大な人はいるんですが、別の面では別の人の方がおもしろかったりして、 みんなそれぞれおもしろいから、特にこの人、というのはないです。) 好きな言葉 Better late than never. (遅くともしないよりはまし)

CSL でのお仕事

-- まず最初に、現在のお仕事について、簡単にお伺いしたいんですが。

仕事は、ソニー CSL ( ソニーコンピュータサイエンス研究所。以下、CSL ) というところにいて、 アシスタントリサーチャーという 肩書きで、研究職をやっているということになっています。 社員は ソニー本社からの出向を除くと、大体 20 人位ですね。 ビルの 2F と 3F を借りていて、僕は 3F にいるんですけど、 3F は基盤研究室といって物理や脳科学などのさまざまな基礎的な研究が行われていて、 2F の方はインタラクションラボといって、 様々な新しいものをコンピュータと結びつけるインタラクションの研究が行われています。 CSL では本社からテーマを与えられるということはなく、 個人でテーマを設定して、それに沿った研究を行っています。

-- 製品を作り出すというよりも、基礎研究的な位置付けなんですか？

そうですね。直接製品に繋げるというよりも、もう少し実験的なことをやろうっていうのが目的ですね。

-- その研究成果は、親会社のソニーさんに対して発表する機会は定期的にあるんですか？

オープンハウスといって、研究成果を会社向けと一般向けに公開する日があって、それが大きな発表の場ですね。

-- CSL では、ユーザインタフェースなども結構研究されているのでしょうか？

そうですね。僕は 増井俊之さん という方といつも仕事してるんですけれども、 ユーザインタフェースの実験的なソフトウェアを研究開発したりしています。

-- その辺りの成果はどこかにあるんですか？

増井さんの POBox は ソニーの携帯の入力システムなどに製品化されていますね。

社会人学生

-- もともと、会社に入られる前からこのような事をやって来られたんですか？

僕、実はまだ学生なんですよ。CSL に入社したのと同時に、 奈良先端科学技術大学院大学の博士課程に入学したんです。

-- ほおぉ。どのような経緯でそのような素晴らしいことを。

いや、全然素晴らしくないんですけど。偶然なんです。 僕は、修士のときに、博士課程に行くつもりはなくて、就職しようかなと思っていたので、 博士課程の入学試験も受けていなかったんです。 情報系なら就職先に困ることはないだろうと。 更に大学の推薦などを使うと、大手の企業に入れるんだろうと。 でも、それは止めようと考えてたんですけど、特に何も決めずにふらふらしてたんですね。 皆夏頃までには決まるんですけど、僕は冬になっても何も決まってなくて、友達のいる会社などを見学して、 その辺りに行こうかなとも考えてたんですけど、結局決めてなかったんです。 だから、元々 CSL に就職するつもりも全くなくて、なんとなく、こうどさくさに紛れたような感じで入ってしまったんですね(笑)。 きっかけは、Migemo という僕が作ったソフトについて、 一度 CSL の増井俊之さんにメール出したことがあって、 その関係で、ソニー CSL のオープンハウスにお誘いを頂いたので、見に行って、話をしてたら、 「うちに就職しないか？」ということになり、しばらくして、12 月位に 「トークをやるから、来い。」と言われて、面接があって、プレゼンをして、就職が決まったんですね。

-- ここまでの話を聞いた限り、一般的な研究者の方が、論文を発表されて、 「どうだ！」という雰囲気とはまたちょっと違うような雰囲気を感じますね。

そうですね。自分が研究者と思ったことも、研究したって思った事も、考えた事がないですね。

-- 論文等を発表されたりしてるのは、CSL に入社以降という形になるんですか？

一応、修士の時も、1 回位は対外発表してると思うんですけど、CSL に就職決まってから、 「もう就職も決まったから、もういっかな。」と思っていたんですけど、 会社から「博士号を取ってもらわないと。」と言われたんですね。 「就職して博士課程に行けるんだったらいいな。そう言うからには、 ま、会社が学費も出してくれるだろう。」 と思っていたら、実は出してくれないんですよ(笑)。

世の中にはいい論文が存在するんですけど、僕は論文を書くのが嫌い、と言うか苦手な事もあり、 なかなかいい論文を書けそうにないので、それだったらソフトウェアを書いていようかな、と思ったんですね。 それで、さっき話にも出たんですけど、僕、Migemo というソフトを作ったんです。 僕は最初に、何かソフトを作ろうと思ったら、周りの人にどう思うか聞くんですね。 この時はあんまり関心は持たれなくて「ふーん。」とか言われて、でも自分は欲しいので作るんですね。 で、作って見せると「おっ！」と反応を貰ったので、「じゃあ公開するか！」と公開して、 それを皆に見せて回っていたら、「これは論文になるかもしれないね。」と言われたんですね。 「じゃあ論文に何とかしてみよう。」ということで、書いてみたら、論文になったんですよ。

-- 高林さんは、日常自分で使って役立つソフトウェアを公開されている印象があるので、 そのような動機で作られているんだろうと思っていたんですよ。 それで、Migemo は論文が出ていたので、論文から作られたのかなぁと思っていたら、 ソフトの方が先だったんですね。

いや、論文は嫌々書いたんですよ。もう作ってから 2, 3 年は経ってましたね。

-- 既に実証済みの論文ですもんね。

ユーザに使ってもらって、実験も手伝って貰ったので、その点は書きやすい部分もありましたけど、 元々、論文を書こうと思って作った訳では全くなかったですね。 こういうのを自分で作ってみたら面白いだろうなぁと思ったので。 面白いだろうなぁと思わないと、僕はなかなかやらないので。

-- まぁ、全ての動機は結局そこからなんで、ある意味、一番純粋でちょっと羨ましい気がしますね。

そうなんですけど、前に Kernighan ( カーニハン ) のインタビュー を読んだら、Kernighan が、後輩エンジニアに対してアドバイスを。とかって聞かれてたんですね。 Kernighan の答えは単純で「面白いと思うことをやりなさいと。そうじゃないとどうせやる気にならないし、 どうせうまくやれないから。面白いと思ったことなら、うまくやれるかもしれない」ということを言っていたんです。

-- 確かにその通りですね (笑)。

Namazu とオープンソース

-- それで、Namazu の話に入りますけれども、あれはいつ発表されたんですか？

-- 学生の時に、Namazu を作って発表しようと思われた動機は何だったんですか？

Namazu を作ったきっかけは、当時、音楽の情報を Web で色々調べていたんですけど、 ある日、自分の好きな音楽の検索エンジンでも作ってみるかと思ったんですね。 で、しばらく作ってみたら出来たんですけど、最初に作ったのは、むちゃくちゃしょうもなくて、 一回検索すると、30 秒くらい待たされたので、それはよくないということで、作り直したんですね。 確か、ヘビーメタル専門の検索エンジンを作ろうという試みだったんですけど、 今度は割と、うまくいって速くなったので、「人に見せなきゃあかん。」と思ったんですね。 結局、人に自慢をしようという形だったんですけど。で、Linux の ML で「こういうの作ったよ。」という案内を URL などを流したら、反応してくれた人がいて、「おぉ、これは面白い。もっと作ろう」という感じだったんです。

-- フリーソフトウェア、オープンソースコミュニティーという意識は強くあったんですか？

そういう意識は全然なくて、元々、フリーソフトウェアは素晴らしい、それに貢献しようという気持ちも全然なくて、 ただ、自分の作ったものを人に見せる手段として、オープンソースというか、フリーソフトウェアのやり方が気に入ったからなんですけど。 僕は大学生の頃に UNIX を触って、Linux を触って、その頃に一緒に居た人が、 変わったタイプで、ものすごく学ぶべき所があったんですね。 その人は GNU の考え方に共感していて、信念みたいなものがあったんです。 その影響で、大学 3 年の頃に Think GNU という、 GNU について書いた本を読んで、当時「これだよ！」と、共感するものがあったんです。今それを読んで感動するかはちょっとわからないですけど。

-- 元々オープンソースというわけではなくて、一番純粋に自分でこういうのが欲しい、 作ったから、公開したいという気持ちから、オープンソースに提供したって形なんですね。 自分が生み出したものに対して、一抹の悲しさというか、子供を手放すような気持ちがあったりしないですか？

いや、ないですね。元々、自分が使いたいものを作るというのが一番最初にあって、 公開するというのは二の次ですね。 というのも、他の人にとって何のプラスにもならないものを公開してもしかたがないと思うので。 自分の為に作ってみて面白くて、これは人にも見せたいな、他の人にも便利かな。 と、ふと思ったときに公開しようと思っています。

-- 奉仕の精神ですか？

いや、奉仕では全然ないですね。僕、首藤さんのインタビューを読んだんですけど、 首藤さんも自慢したいだけとおっしゃってましたよね。多分僕もその気持ちの方がが強くて、 奉仕しようなんてことは全く考えてないですね。 むしろ、迷惑を与えてるかもしれないですよね。自分の作ったソフトのせいで酷い目に遭っているかもしれないので。

-- 弊社でも社内のポータルなどに使わせて貰っていますよ。 はっきり言ってここまでメジャーになるという認識はあったんですか？

いや、メジャーになっているかどうかって認識はよくわかんないですけど、 ただ作ったから人に見せてみようと思っただけですね。

-- 「先に公開したもの勝ちだ」とホームページに書かれていましたよね。 「公開しないのは、ないのと同じだ」とも。 あれは、確かにそうだなーと。それは一般的にオープンソースでなくても、 場合によっては、一企業内でもそれは言えるのかもしれないなぁと思いました。

あれは、多分 1 年位前にまとめたんですけど昔からそう考えてたってわけでもないです。

-- ホームページを色々拝見させて貰いました。 非常に、Tips 、主義主張がまとめられてて、参考になるなと思ったんですけど、 失礼ですけど今おいくつなんですか？

26 です。

-- あ、お若いんですね。 結構、高林さんのホームページを一通り見るだけで、「あぁ」と。思ってしまうんですよ。 だから、もうちょっと年配の方だと思っていました。

なぜか昔からそう思われることはよくありますね (笑)。

-- 書く事は好きなんですか？

いや、好きじゃないです (笑)。

-- それで、あの量を公開するって言うのは、手間よりも、発表したい、 見てもらいたい欲求があるんでしょうか。

どうなんでしょうね。僕が表に出しているのは、 割と安全で無難そうなことで、普段喋ってるようなことはあまり書かないですね (笑)。 たまに、他の事をやりたくなくて逃避のつもりで、ああいった事を書くというのはあります。

新世代・旧世代、古き良き文化・古き悪き文化

-- 旧世代・新世代について書かれているページを拝見したんですが、 （ UNIX に見る世代間の断絶 ) どちらかというと、高林さんは新世代系ですか？

いや、自分の事はどちらかよくわからないですけど。 古い気質と、そうでもない気質があるとすると、自分の世代はどっちがどっちかよくわからない。 ここで分かれ目があるかな、という気がしますね。

-- 丁度、ジェネレーションギャップみたいなものがある時代なんですかね？

そうみたいですね｡ちょうど僕が大学に入ったのが 95 年、Web がちょうど盛り上がってぐーっと来てる時で、 一方で NetNews *1や、fj のようなものがまだある時代でしたから。 その古き良きというか、そのような UNIX 文化の中でもあるけでども、Web も盛り上がってる時代だったので。

*1NetNews

NNTP ( Network News Transport Protocol ) を使って、サーバに メッセージを投げると、サーバにそれが記録される。それを 専用ソフトを使って、閲覧することが出来る。

-- そうですか。古き良き UNIX のコミュニティーって、独自の文化がある、どこか敷居が高いイメージがありますけど 確かに、ぱっと見た感じで言うと今の Linux などのコミュニティーって、昔と雰囲気的に違う気がしますよね。

そうですね。 あまり、こういうことを言うと怒られるんですけど、つい一昨日くらいに、 日経の ITPro で、 日経バイトの副編集長が FreeBSD と Linux のコミュニティーの違い について語ってたんですね、 それはなかなか面白くて、どういう内容かと言うと、極端な見方ではあるんだろうけど、 FreeBSD ユーザが集まる集会があって、それを見てたら、その編集者は愕然としたと。 「印象的だったのが、昔ながらの環境に固執する FreeBSD ユーザのかたくなさだ。 特に GUI に対する嫌悪感たるものはすさまじいものがあった。 こうしたコミュニティーの中から初心者に使いやすいインターフェイスなど出てくるわけがない」と断言してて。 むちゃくちゃ笑えたんですけど (笑)、これが全部ではないんですけど、こういう面もあるのかなぁと。 特にその、発言が多くて声の大きかったりする人にそういった面が強いかなぁと感じなくもないですけど。面白いですよね。

-- 武士道みたいなものですかね。

どうなんでしょう、わからないですね。 僕はそれで、fj や、古き良き UNIX 文化的なものを長い間読んでいて、 そこから沢山のことを学んで、すごくいい事だったんですけれども、 一方で、よくよく考えてみると、「なんだこれは」という所もあって、 それが古き悪き文化でもあるなと、思うところも有って。

-- 具体的にはどんなところですか？言いづらい部分もあるかもしれませんが。

例えば、相対的に、昔と今を比べると、昔は、大学とか、企業の研究所ぐらいにしか UNIX のネットワークはなくて、 一般の人は、PC でフロッピーディスクしかないような環境でしたよね。 この差はすごく大きいですよね。その当時、こうした計算機環境に携われる人は限られていますから、 ネットワークでサーバを動かしたりすることが高度なことをやっているぞという感覚なんですよ。 ところが、皆 ADSL とか光ファイバーを引けるようになって、 自宅サーバなどが当たり前になってくると、 「別に UNIX のサーバなんて誰でも立てられるじゃん。」と変わってきますよね。 昔はサーバの設定といえば付属のわかりづらい文書を真剣に読む必要があったのに、 今や google してコピペするだけですし。 昔は凄かった事でも、今になっては当たり前な事って沢山ありますよね。 つまり、昔は研究者の方が、圧倒的に優れた計算機環境を持ってたんですけど、 今は誰もが全く同じ計算機を使ってるし、ソフトウェアに関していうと、 研究者の人が TeX と Emacs でプレゼン資料作るのと、普通の人が PowerPoint で作ったプレゼン資料だと、 後者の方が断然生産性が高いですよね。普通の人が、インスタントメッセンジャーでビデオチャットをしたり、 P2P でファイル交換をしたりして、自宅の光ファイバーを活用してるのに、 その一方、頑なな研究者は相変わらず Emacs、TeX とか言っていたりすると、 なんだか研究者のコンピューティングの方が全然遅れてるなと感じることがあります。

UNIX の定番ツールでも、こんなもの使われるべきではないと思うのに、 長く使い続けられているものが沢山有ると思うんです。 例えば procmail は、とにかく設定ファイルがややこしかったので、 まいりました。

-- procmail って、設定ファイルに謎の記号を書きますからね (笑)。

僕はそれについて、UNIX MAGAZINE の連載でも、 メッセージとして 書きました けれども、そういった使いにくいソフトや、 古いものが定番として残ってるのだけれども、 専門的な技術者や技能を持っている人達って、 使いにくいものを使いこなすのが好きなんですよ。 使いにくいものを見ると、それを使いこなそうとする。 ただ単に使いにくいだけなのに、それを使いこなせると「これは奥が深い。」と喜んでいるのは ちょっと変ではないかと思いますね。 あと、そのソフトや言語に変な仕様があるのだけれども、 それは歴史的に残さざるを得ないというような時に、ドキュメンテーションでカバーしようとするんですね。 だから、procmail はドキュメンテーションがやたら充実してるんです。 Web 上の情報も設定ツールもすぐ出てくるし、付属のマニュアルも充実しているし・・・。 でも、そもそもこの仕様が腐ってるじゃないかっていう (笑) 。 あと、僕が怒って、「なんだこれ！」と思った別のツールがあるんですけど、 それを Web で検索するとむちゃくちゃ情報が充実してるんですよ。 使いにくいソフトを使いこなす事に対して、奥が深いといって喜びを見出す人達が 情報をまとめてくれて Web にあって、その情報があるから助かるん ですけど、 よく読んでると、「なんて奥が深くて素晴らしいツールなんだろう！」 って書いてあるんですよ。でもそりゃないだろうと (笑)、ただ単に使いにくいので、 みんな使うのに困ってるだけなんだから。

-- 情報源の多さってその製品の良さとか人気を表している訳ではないですかね？

それも表してはいると思うんですけど、 例えば、使いにくくて、定番になってしまっていても、情報が充実するってことですね。

-- 例えば、vi とか。

僕は UNIX を喜んで覚えたから、全然、言えた立場ではないんですけど、 使いにくいものを使いこなす事を喜ぶのが割と弊害となる部分が多くて、 使いにくいものを使いこなすと、それが嬉しいっていう心理があって、 それがために、本来使いにくいものがありがたがられるっていう、 「奥が深い！」って勘違いされるという・・・。

-- なるほど、古き良き UNIX 文化に固執するのは、その辺りが元凶なのかもしれませんね。

Emacs と TeX から離れられないというのは、ちょっとよくない面ではないかと思うんですね。 面白いのは、流通的に言うと、古くからある技術と、新しく生まれてきているソフトウェアなどが 色々あると思うんですけど、例えば、昔だったら何か面白い発明や、ソフトは、 UNIX 的・研究者的なコミュニティから生まれてきたんじゃないかなぁと気がするんですけど、 ネットワークを使った面白いソフトは、今は別に Windows のアプリでも別に出来るし、 匿名の人が急に Winny とか出したりしてきますよね。 だから面白いアプリケーション自体が UNIX 側からはもう出ないという時代になってるなという印象がありますね。

あと、文化的な摩擦も、結構観察してると面白くて、僕は入ってないんですけど、 いろんな ML をチェックしてる人がいて、面白いことがあると教えてくれるんですけど、 古き文化を守る「古き良き」な人が居る訳ですよね。 で、そういう人たちが割と大きな顔をしていて大きな発言をしているんですね。 で、そこに、そんなバックグラウンドがない人たちが大群で押し寄せてくるわけですよ。 そうすると、文化的な摩擦がむちゃくちゃになるわけです。 匿名投稿で変なメールが投稿されると、「私が昔どこそこに居た頃は・・・。」と言って、 突然説教が始まったりして、滑稽といったら悪いですけど、 そういうのがなんだか面白くて、気になってるんですよね (笑)。

--そうですよね。ML って怖いですもんね。変な事言えないですから。

そう、さっきみたいな初心者が出てきて、つまらない質問をすると、 突然古株が出てきて、わーって怒ったりとか、で、怒ってるかと思えば、 薀蓄を披露したいだけの人も出てきて、自分の薀蓄を語って、それに続いてつまらない昔話的な雑談が沸き起こって、 それでこう、お決まりのパターンになってて、「あぁ、また始まってるよ」って友達が教えてくれるんですけど、 でも、文化的な摩擦ってもう時間の問題と言うかもう見れなくなると思いますよ。

-- どうなんですかね、時代の変わり目なのかもしれませんね。 でも、新しいと言われている高林さん達の世代でも、 古き良き世代って言われる時が来るんですかね？

どんなんでしょう、わからないですけど、重要なことが 1 つあって、 僕はそういった 「 UNIX には新旧世代の温度差があるよねぇ。」といったことを友達としてたんですね。 で、「古いのはこうで、新しいのはこんなんだ。」と僕が力説をしていたら、 その友達がすごくいい事を言ったんですよ。 「でも、ちょっと遠くから見れば、どっちも一緒に見えるよ。」と。 それでがーんときてしまって、「そっか、大した差ではないんだな。」と。

-- 深いですね。 そういった事でも、潔く、そうだって認めてしまった方がより客観的に見えるということですね。 それが別に悪いことではない訳ですしね。

1 つエピソードがあるんですけど、学会などに行くと、「古き良き」ものが好きな人が割といるんですね。 ある学会の帰りに、皆で食事に行って、Emacs について話していたんですけれども、 誰かが確か、「 Emacs に色をつけるなんて嫌だなぁ。」という話をしていたんですね。 僕は「色がつかない Emacs なんて信じられない。」と言ったんですね。 そしたら、何と、同じテーブルに座っていた人達が「 Emacs に色をつけるなんて邪道だーーー！」って (笑)。 僕はたった 1 人の少数派になってしまって、ピンチだったんですけど、 古き慣習を頑なに守ろうって人達が居る所には居るんですが、その頑なさは何なんだろうと思いますね。 でも、やっぱりこれも些細なことじゃないか、とも思うんです。 例えば「 csh がいい」と言っている人に、「いやいや zsh の方がいい」って言ってるのも大差ない同じ事かな、と。 だから確かに、古い人と新しい人が使ってるツールは違うかもしれないけど、まぁちょっと遠くから見れば一緒かなぁと。 それよりも、もう少し大きな見方があるかなあ、と。

オブジェクト指向との関わり

-- 高林さんと、オブジェクト指向との関わりについて、教えていただけますか。

僕はオブジェクト指向について、専門的に詳しいというわけではなく、素人も同然なんですけど、 オブジェクト指向は、すごく難しいものだと思い込んでいたので、長い間食わず嫌いだったんですよ。 なぜかというと、すごく単純な理由だったんですけど、用語がたくさんあって難しそうだなって印象があったからで、 オブジェクトとかクラスとか、メソッドとか継承とかカプセル化などの用語を一気に覚えるのは難しくて。 しかも概念としてすごく抽象的で、どこか掴み所がないような感じがして、 で、さらに何とかパターンとかってどんどん言葉が増えるじゃないですか。 「こんな難しいこと知らなくてもいっか」と思ってたんですよ。 でも、「噛み砕いて言えば、クラスとはデータ構造と手続きをひとまとめにしたものだ」と どこかに書かれていて、「なんだ、それだけだったのか。」ということで、じゃ、やってみるかという気になったんですね。 いきなりオブジェクト指向でプログラムを書き始めれば、それは当たり前になるんでしょうけども、 オブジェクト指向以前的な書き方をしてる人にとって、オブジェクト指向と言われると、 「なんだか難しそうだな」とか「この言葉って何だろう」とか。 そのような言葉の難しさは結構あると思いますね。

最近 Ruby でプログラムを書くことが多くて、C 言語でプログラムを書くときも、 オブジェクト指向的に書く感じになってるんですけど。 Ruby の前は、Lisp の一種の、Scheme という言語をやっていたんですけど 関数をデータのように扱えるとか、クロージャがつくれて環境を閉じ込めた無名関数を作れたり、 S 式っていうリスト構造を作れたりするのがかっこよくて、信者になってしまったんですけど。 でも僕が一所懸命「 Scheme はいい！」って言っても周りの人は全然で・・・、 一人でプログラミングしてても寂しいのと、実際にプログラムを書こうとすると、 最初は guile という処理系を使っていたんですけど、全然ライブラリがなかったりで 「だめだこりゃ。」って気になってきて・・・。 それで、しばらくしてから Ruby を使ってみると、 なんと Ruby でも、lambda {|x| ... } のように クロージャが作れて、しかも、配列を作ると、map メソッドなんかもあって、 すごく Lisp っぽくて、Scheme と同じようにプログラミングが出来る。 クロージャっていうと、難しそうなムードが漂ってくるんだけれども、 Ruby ではブロックと呼んで、イテレータでもブロックを渡して、初心者でもとっつきやすく、 Scheme のような処理を出来るっていうのですんなり入っていって、 これは、初心者な人にも、マニアな人にも、どっちにもいいな。と。

-- 言語で言うと、今は Ruby が多いですか？ Ruby と Scheme を比べると、ほとんど Ruby 信者の方に変わりつつあるんですか？

ほとんど実用のプログラムは Ruby で書くことが多いですね、 クラスライブラリが使いやすいのと、スレッドが簡単に作れるので、 ネットワークのプログラミングとかだと、スレッドがあると、 プログラムが簡単に書けることが多いので、その辺で Ruby をよく使いますね。 あと、最近だと Scheme も、昔は guile を使ってたんですけど、 最近は Gauche という、ライブラリがよくて、 実装としての完成度も高いものを使っているので、 また Scheme でプログラムをちょっと書いたりしてます。

-- Scheme っていうのは、今どのくらいコミュニティーや、 認知がされてて、どういうところで使われているんですか？

あんまり使われてないですね、コミュニティーも小さいし。 でも、教育用言語としては素晴らしくて、大学の授業で使われていたりします。

-- Ruby は技術書も大分出ていますし、新しい物好きでなくても知っていますし、 そのように右肩上がりに浸透している理由というのは、今おっしゃった辺りになるんでしょうかね？

書き易いですしね。マニアックな人は lambda {|x| ... } とか、 怪しげなプログラムも書けるし、そうじゃない人も、普通にすんなり書けるし。

高林さんは現代エンジニア

-- ところで、凄く好き嫌いがあるとは思うのですが、Java ってどう思いますか？

僕、Java でプログラムを書いたことが一度有るんですけど、あんまり嬉しくなくて(笑)。 なぜかというと、なんだかコードを沢山書かなければいけないのが面倒くさくて。 それで、最近、Visual Studio .NET で C# がどんなもんかっていうのを試してみたら、 実はこれが気に入ってしまって。Ruby でプログラムを書いていると、 ダイナミックタイピングという言語の仕様で、変数名が間違っていると、実行時にエラーが起きるんですね。 型はあるんですけど、例えば nil ってオブジェクトに対して何かメソッドを呼んだりすると、 エラーが起こって、実行時のエラーが多くて、困ったなぁという時があるんですけど、 C# とかだとそういうのが少なくて、いいなあと。 あと、C# がよかったっていうのは、Visual Studio .NET がよくできているっていうのがあって、 こればかりやっていると、UNIX とか Emacs とか使ってるのバカらしくなりますよね。

-- やっぱり高林さんって新しい人なんですね。 ずっと UNIX 文化でやられて来てる方って、ああいったリッチな IDE って、 毛嫌いする人が多いように感じるので。

僕は、Emacs と make と gcc と gdb などを使うのに、 今はだいぶ慣れましたけど、すごく修練に時間が必要だったんですよ。 でも、僕Visual Studio .NET を初めて使った時は、 30 分で「これいいじゃん！こっちの方がいいじゃん！」ってことになって (笑)。 習得に掛ける時間もそんなに必要ないし、やってみるとこっちの方がいいし。

-- いわゆる UNIX 系のを使い込んでる人って、一旦使い込んだら、手足のように動いて 「これほど素晴らしいものは他にはない！ IDE なんて遅くてやってられない」って言われる方も居ますよね。

前にちょっと面白いことがあって、Visual Studio か何かを買ってきた人がいて、 IDE を見て「あぁ、こんなの使いたくないな」と思ったらしいんですけど、 そこに、nmake とかが入ってて、それで「おぉ、make が動く！」とすごく喜んだそうなんです。 その人にとっては、IDE よりも、make の方が嬉しいという話なんですけど(笑)。 僕も Visual Studio .NET の IDE はちょっとかじっただけなんで、 色々使い込むと嫌な面も見えてくるんでしょうけど、Visual Studio .NET と C# でプログラムを書くのは結構良いですね。

-- Visual Studio .NET ( IDE ) を除いて、Java に対して C# が嬉しい理由ってなんですか？

そうですね。get〜、set〜 っていうメソッドは、書くの嫌じゃないですか。 だから、それがないだけでもばーっと気分が晴れますね。 あと、Emacs で Java のプログラム書くと、これをするためにはどのクラスを使えばいいんだろうとか、 クラスライブラリを探すのが、かなりしんどいんですけど、これは IDE があるお陰なんですけど、 API を探すのも楽ですし、サンプルコードも入ってるので、クラスライブラリ自体も、 Java のクラスライブラリより、使いやすいんじゃないの？という気がしました。

-- 変な偏見かもしれないですけど、UNIX 系の人が Microsoft 関係を誉めるのは、 何だか信じられないなぁと(笑)。やっぱり、現代っ子、現代エンジニアなんですね。

どうなんですかね、別に僕は PowerPoint とかも好きですよ。

類は友を呼ぶ

-- では、プライベートについての質問なんですけど、趣味や、現在興味のあることについて教えて頂けますか？

「読書と音楽鑑賞」と言うと、うさんくさいですね (笑)。 音楽については、いくつかエピソードがあって、さっき、Namazu を作り始めたきっかけが、 ロックだったって言いましたけど、その仲間の、プログレッシブロックという 音楽を聴くのも好きですね。そういう割とマニアックな趣味っていうのは、 何も得しなくて、色々社会的な弊害もあるんですけど、たまにはいいこともあるんですよ。 まったくの初対面の人が、MAGMA っていう、フランスのバンドで、ほとんど輸入版でしか買えないようなのがあるんですけど、その MAGMA の腕時計をしてる人が居たんですね。 「なんでそんな腕時計してるの？」って聞いたら、「フランスから輸入したんだよ。」って。 そういう、類友現象っていうのがあって、そういったきっかけで突然仲良くなるとか。 他にも、ある時、僕が初台にある NTT の ICC の美術展に行ったら、突然知らない人から 「 MAGMA を聞く高林さんですよね？」って話し掛けられて (笑)、 「えっと、あなたは誰なんですか？」とお聞きしたら、 それは NTT で goo を開発をされている方だったんですけど、 僕の事を知っていて、MAGMA が好きだって事も知っていて (笑)、 わざとショッキングな話し掛け方をしたらしいんですけど (笑)。

-- なるほど。「類は友を呼ぶ」ですか。

類友現象って、他にも有って、僕、8 年間位、TV 持ってないんですよ。 最初の頃は周りの人に結構驚かれたんですけど、最近は当たり前になってしまって、 全然驚かれなくなってしまったんですけど。で、この前、友達とカレーのパーティをしたんですけど、 13 人位集まって、なんとなく TV の話題になって、調べてみたら、 13 人のうち、8 人は TV を持っていなかったんですよね。これも類友現象ですよね。

-- 確率論からすれば、持ってない人が8人集まるなんて・・・難しいですよね。

あと、おもちゃ集めですね。( おもちゃ登場。いもいも、モビー君、ぷーちき、BONGA 、エッシャーのトカゲ ) これ、ドイツで買ってきたんですけど。ドイツは木のおもちゃがすごく有名なんですよね。

-- ホームページもそうですけど、これもアートに近い世界ですね。いんちき芸術って、 なんちゃってアートじゃなくって、もはや芸術だと思いますよ。



んなことはないです(笑)。



[ てくてく歩くゼンマイのおもちゃ ( BONGA ) ： 写真左下 の実演 ]

これのパッケージには『バッテリーフリー』とでっかく書いてありました (笑)。 これにもいくつかエピソードがあって、類友の話の続きなんですけど、 この緑のイモムシのおもちゃを 最近知り合いになったメディアアーティストの江渡さん という方に、「これいいでしょ、ドイツで買ってきたスイスのおもちゃだよ。」って、見せたんですよ。 そうしたら、「これ、naef ( ネフ ) のでしょ。」って知ってるんですよ。

-- naef って有名ですよね。私も、木のおもちゃとか結構好きで、最近買い始めたんですけど。これも類友現象ですね(笑)。

[ プーチキ ： 写真上・左から 2 番目 の説明]

これは友達からもらったんですけど、会社に持っていったら、 増井さんが出てきて、「なんでお前こんなので遊んでるんだ。」ってばかにされてしまって。 でも、その直後に、たまたま江渡さんがやってきて、「これ 佐藤雅彦 のでしょ。」 って、また知ってるんですよ。それで、僕がこれ (BONGA ) を NY に行ったときにお土産で買ってきたんですね。 それで「こういうの買ってきたんですよ。」って、おもちゃを見せたら「僕もこれ見たこと有るよ。」って何でも知ってるんですよ。 僕は「僕らと遊ぼう」 というチェコの人形アニメの DVD を持っていて、「最近はチェコのアニメが好きなんですよ〜。」と言ったら、 また江渡さんに「それ僕全部持ってるよ。」って言われて (笑)。なぜか類友なんですよね。 新しいものを買ってきて「どうだ！」って言っても、 全部知ってて、かなわないんですけど。こんなん買って来て、全部持ってるって人が居るっていうのが、 何か、こう、類友なんだなぁ。と。

-- あと、好きな言葉が Better late than never. ( 遅くともしないよりはまし ) と伺ったんですが、何か理由はあるんですか？

本や音楽の趣味で「もっと早くこれを知っていればよかったのに！」ということは多いと思うんですが、 プログラミングでも何でも同じですよね。気付いたり知るのが遅かったとしても、 ずーっと知らないよりはましだし、むしろ、「ついに巡り合うことができた！」 と感謝すべきかな。今さらこんなことしてももう遅い、とか、無駄だろう、といった「今さら感」のせいで、 ついつい新しいことを始めたり覚えたりするのがためらってしまいがちですが、 この言葉を思い出して、躊躇せずに新しいことをやっていければいいな、というのがありますね。なかなか実践は難しいんですが。

あと、自分でも「いやな法則」という名前で 思いついた言葉をまとめているんですけど、その他に、色んな格言を集めるのが好きなんですよね。 UNIX MAGAZINE の連載でも、毎号、記事のはじめにプログラミング関連の引用句を載せていました。 そうですね、例えば、計算機関連の言葉だと、最終回で紹介した 細かいことばかりにこだわっていないで人間的になろう。 -- Jamie Zawinski が好きですね。技術の重箱のすみにこだわったり、議論したりするのは大切なこともありますけど、 そればっかりでは不毛ですし。技術ばかりではなくて人間的な面をよくみていくことが大切かな、と。

若手エンジニアへのアドバイス

-- 最後に、高林さんがこれまでにおっしゃたことは若手エンジニアに対してへ のアドバイスに当てはまる気がしますが、敢えて言うなら何かありますか？

そうですね、自分もまだ若いのでこちらがアドバイスを貰いたいです。 もしかしたらもうプログラミングなんてやってる時代じゃないかもしれないですし。 と言いつつ、3 つ考えてきました。思想的な部分も入ってるんですけど・・・。

若年寄症候群

最近、Web で何でも調べられるので、色々調べていると、 「なんだこの人は。自分より若いのに何でこんなにすごいんだろう。」とびっくりすることが多いんです。 よく読んでみると、Web 日記が公開されている事が多いので、読むんですけど、結構がっかりするんですよ。 なんだかいわゆる「業界人」っぽい文体、内容、主義、主張なんですよね。考え方が妙に爺くさくて、 似通っていることががあって、なんだか皆均一化されちゃってるなと感じることがままありますね。 これはどういうことかというと、高校生が書いてる日記と、 40 歳近い人の日記も区別つかないんですよね。あまりにも似通ってて。 自分も人の事はぜんぜん言えないんですけど。 それは、誰もが同じようなニュースサイトや日記などを読むので、 入ってくる情報が均一化してそうなるんだろうなぁっていうのもあるんですけど、 せっかく、もっと、若いんだったらもっとやんちゃな事、変な事をやってほしいなあ、と思うことがありますね。 一般的に、「インターネットはいろんな情報が沢山入るから趣味が多角化して、個性を多角化して、 色んな方向に伸びる。」という説があるんですけれども、 「実は均一化する方向に向かってるよね。」というのは、最近よく聞く話だと思います。

-- そこで言う業界って言うのは、いわゆるここの業界ですか？

例えばなんとかというOS を使ってるならその世界だとか、なんとかという言語を使ってるなら、 そこを使ってる世界といったように、 コミュニティーごとにちょっと変だなというくらいに似通ってしまっているような・・・。 これは別にアドバイスって言う感じではないですけど、なんとなく、雑感として。

謎めき症候群

次、2つ目ですね。大学院にいると特にそう思う事があるんですが、すごく優秀な人なのに、 成果をあまり公開しなかったり、自分自身も表に出るのを控えたりする人がいて、 もったいないなあと思うことが、昔からありますね。それは多分日本人的なメンタリティがあって、 謙譲の美、隠匿の美学だとか、奥ゆかしさ、っていうのがみたいなのがあると思うんですが、 「目立たないで、知る人ぞ知る存在になりたい。」というようなことを言っていて、 その人が埋もれてしまうのはなんだかもったいないな、と思うことがある。と。 例えば、たまにあるのが、調べものをしていて、日記サイトを見つけて、 この日記はいい事が書いてあるなと思って、ひとつ上の階層へ上ってみたら 「 not found 」だったりすると、自分が他に何をやっているかを隠して、 日記だけ公開していると、 なんだかこの人謎めいているなぁと思うことがあります。 それはその人のポリシーで、自分のイメージを どうやって見せるかっていう話なんですけど、そう言った延長で ソフトウェアやノウハウなどの成果が埋もれてしまうのはもったいないな。という印象がありますね。

論文のための論文症候群

で、もうひとつあって、これも大学院に居て思うんですけど、 論文を書くだけではなくて、使えるソフトを作って、公開して社会に還元するということを盛んにやって欲しいなと。 首藤さんも、同じような事を言っていたのではと思うんですけど、 「論文のための論文を書く」という風潮がどうしても強いですね。 論文を書くことが大学院生にとって大切なことなので、それはいいんですけど。 僕のいる研究室は、自然言語処理講座といって、 情報検索もその中に入ると思うんですけど。この分野の研究って、例えば人の書いた論文を読みますよね、 それと、自分がやっている研究がありますよね。 で、自分の実験と、先にある実験の結果と比較して、自分の方がいいって言わなければいけない時に、 自分はこういうメソッドで、こういう結果が出た。じゃあ君のでやったときにどういう結果が出るんですか？という 評価、実験をし直す必要があるんですよ。でも、ソフトが公開されていないと、 その研究成果が使えないんですよね。 で、論文を書くために、他人のメソッドを再実装をして実験している人が結構居るんですけど、それって不毛ですよね。 本当に理論的な、基礎的な研究なら論文だけでもすごい価値があると思うんですが、 応用寄りの論文になってくると、ソフトを出してくれないとどうしようもないなぁということもありますね。 面白いことが書いてあっても、 ソフトが公開されていればなぁと思うことが多いですね。

奈良先端大の松本研究室の同級生の 工藤君は理論寄りの研究で 論文を書いて、実験に使ったソフトウェアも、ものすごく完成度の高い形で公開しているんですね。 ですからそういうのすごく尊敬してますね。 松本研究室では、茶筌 っていう、形態素解析システムを作ったんですけど、 工藤君はMeCab という、茶筌よりも、4 倍くらい早くて、完成度が高いものを公開しているんです。 工藤君はスーパーマンみたいな人なので、普通の人にはなかなか真似できないんだけれども、 そういった感じで、研究成果を論文だけではなくて、ソフトとしても公開する。 特に、応用寄りの研究だったらそうして欲しいなと。

-- ソフトウェアの世界ってアイディアですから定量的な評価ってなかなか出来ないですよね、 だから、それは、大学とかの教育機関だけでなくて、民間の教育機関でもそうかもしれないですね。 民間企業は金稼げーって感じですけど。

はい。論文を書いて、ソフトも公開してくれるといいなぁ。と。

-- そんな柔らかい言い方ではなくて、むしろしなさい！じゃないですか？

いや、僕はやわらかい人なので (笑)。

-- なんだか、後輩に対するアドバイスっていう風に思えないですね。なんだか反省する立場です。

いやいや、これは全部自戒を込めてのコメントなので (笑)。

-- 最後に、何かおっしゃりたい事はありますか？

最近知り合った中で、面白いことをやってるなぁって人は、 プログラミングとか技術面は割と二の次という感じで、 いきなりデザインとかコンセプトとかから入るんですね。 なぜか最近デザイナーとかメディアアート方面の友達が増えて、 そういう人たちを見てると、やり方が違うんですよね。 だから、そういうところでよい部分は見習っていきたいなっていうのはありますね。 これも世代なのか、それとも人種が違うのかは、わからないですけれども、 ここ最近で面白いって思うことをやってる人は、技術とかではなくて、デザインやコンセプトをうるさく言いますね。

-- それは同じ業界の中でですか？

そうですね。

-- どちらかというと、高林さんもデザイナー、メディアアート方面の方なのかもしれないですね。 もしかしたら、これからのエンジニアはそうあるべきかもしれないですね。

読者の方々へのプレゼント