これが半年くらいするとそうは言ってもわかるようになってくるんですよ。最初は本当に分からないんですが、ひたすら読んでいるうちに分かるようになってきて、この時に結構な能力を身につけたんですよ。ソースコードっていうのは、例えばXに10を代入するだとか何かを表示するだとかそういう単純な繰り返しになっているじゃないですか。いう見方じゃなくて、この人は一体何をしたいんだろうかってことを考えるようになったんです。見た瞬間に腕のある人が書いたものなら一瞬で意図が読み取れる能力が身について、それ以降は自分でコードを書くのも本当に早くなりましたね。そんなことができるんですか。プログラミング言語で何かを書くっていうのは、何か意味を伝えたいってことだと思うんですが、その伝えたい意味の方を早くトランスレイトすることができるようになりましたね。いうことを言う人はいないと思うんですが、彼のこの能力は、本当にすごくて、ソースコードを読むだけでその人の人となりを類推できてしまうんです。よいコードは何をしたいのかストレートに伝わってくるんです。実力があるレベルまできてている人のソースコードは意図がわかるんですが、それ以下だとこれは本当に意図が分からないんです。いう意味では、ソースコードって文章と変わらないんですよね。書けない人に教えたりすることもあるんですが、「一体、何がしたいの?」と聞いても本人が分からないんですよ。分からないままに書いてしまっているんでしょうね。実は自分でも疑問に思ってて考えていて結論にたどり着いていないんですが・・・プログラミングの世界でもボキャブラリーみたいなものがあって、オブジェクト指向というのはいい意味でそういうレベルになってて、ある一つの言葉の意味をあらわすときにとてもよいものの考え方を提示した一連のプロトコルの知識セットをどんどん作っていったわけです。いう知識セットとコードとの対応関係がわかってくると、結局どれを使いたいのかどういうことを表現したいのかってことがもう少しハイヤーレベルになってくる。いう影響を与えているのはオブジェクト指向だけでなく、現代のコンピュータや通信のアーキテクチャーが意味に対するレベルを与えてるって思うんですよ。エンジニアっていうのはレベルが高い人であればあるほど、ユーザーとか顧客とかをマシンの理解できるレベルにトランスレイトしていくんですが、マシンは決してきれいなものではないので、その間をつながないといけないんです。逆にアーキテクチャーだとかっていう言葉に変換できる能力ってどんどん高くなっていかなくちゃいけない。すると、ソースコードにもその今までこういう表現をすると伝わるなってことを綺麗に書けるんです。全人的な能力を求められるんでしょうね。意味レベルのところを1つ1つ作り上げていって、新しいセットを覚えていくと、また効率よく意味が理解できるようになる、もっと読めるようになる、書けるようになるっていうのがありますね。考え方なんでしょうけどね。うーん、説明になってないですね。これは自分でもちゃんと理解できてないんですよ。思うのが、頭のセットの限界点っていうのは自分のコードの書ける限界点にきてますね。頭の能力のめいっぱいを使ってコードを書く。そこをこぼれそうになると危険信号なんです。そのセットの中でストーリーが収まっているうちは動くんですよね。これ駄目だなって思うと確実に駄目なんですよね。いうコードの書き方をしてますね。GNUEmacsのコードが分かるようになってからですね。あれは、C、アセンブラ、リスプ、他に怪しげな言語みたいな構成になってますからね。アルバイトでデバイスドライバとかも書いたりもしてましたけど、やっぱりあの時のトレーニングが大きかったですね。その時に、「自分の成果を還元していかないと」って思って、せっかく自分で作ったんだから、頑張ってコントリビュートしてみましょうと思って始めたのがMuleforwindowsだったんです。それで大場さんたちのような素晴らしい人たちと出会ったわけです。そこで私の知ってる人たちの中でも本当にベストな人たちが集まってきてくれたのが私にとっては本当に財産ですね。昔は、こんな感じでオープンソースが流行るなんてまったく思ってなかったんですよ。私の所属しているこの会社にしても、今でこそとてもオープンソースにコントリビュートしてますけれど、昔はそうなるなんて本当に思ってなかったですね。確かにそういう印象はありましたね。その後にMuleプロジェクトに本格的に参加することになるんですが・・・このままいくとどこまでも脱線しそうなんで、大場さん、ちょっとナビゲートをお願いします。EmacsとMuleの関係について少し説明しますね。Emacsはさきほど説明したエディタ環境なんですが、もう1つMuleって呼ばれる部分があって、もとのEmacsが英語圏でしか動かないセットだったんですが、それをサン総研の半田研一さんが始めた国際化しようとするプロジェクトがあったんです。それがマルチリンガライハンスメントGNUEmacs、略してMuleです。元々は別のプログラムだったんですが、今は統合されていて、Emacsの中にMuleが入っていて、Emacsを使えば最初から国際化されているようになっていますね。日本でもインドとか他の国でも使えるようになっています。サン総研になってますが、半田剣一さんと戸村さとるさんが拾ってくれて、Muleプロジェクトにお世話になったんです。そのときあたりから歯車がまた1回進んだっていう印象がありますね。それから自分の中で特にユーザーインターフェイスまわりでの形を模索したかったんです。それにあまり言えないないんですが、いろいろあって(笑)、いつまでもMuleforwindowsってのもあれだろうということで、新たにめどうっていう名前をつけて、Muleプロジェクトの中で自分はこの領域の仕事をしますってことで始めたんですよ。そのあたりが大学の4回生くらいですかね。あってって言いましたけど、ちょっと真面目な話をすると、オープンソースのプロジェクトの中で人間関係って馬鹿にできないんですよ。私が見てる中でもすごい分裂したりだとか喧嘩したりだとかあるので、その中で前に進めるソーシャライゼーションみたいなものは生身の人間のやってることなんですごい重要なんです。それについてはエリックレイモンドがいろんなことを書いていたりしますけど。いうプロジェクトの中でいろんなレベルの高い方がいて、いろんなことを教わったりしましたね。作ってもらっていて、腕のある人間を集めていたんです。守岡知彦さんだとか新部裕さんとうLinuxのコントリビューターで有名な人がいて、本当に腕利きが集まってMuleのために喧嘩したり激論したりしたのはいい経験でしたね。これは本当に財産ですね。これがなかったら、今の自分の中での自信はなかったでしょうね。私以上の人もいるでしょうけど、今では、たいがいの人間よりはコードが書けるっていう自信があるのはそういう経験があってのことなので、そういう環境を作ってくださったことには本当に感謝していますね。今回は、面白法人カヤックのCTOを努める貝畑政徳さんにお話をお聞きしました。