「Binary 2.0」「バッドノウハウ」などの提唱者として知られる高林哲氏との対談の後編です。
今後重要な技術は?
弾:次に大きな変化があるとしたらどんな分野だと思う? たとえばクロック数が倍になるとかでなくて、こういうソフト、ハードが現れるとかこういう技術がはやるとか。
高林:あんまり考えたことないですね。ただ、CとかC++とか、当分なくなりそうもないじゃないですか。
弾:なくなりそうもないよねえ、もう何年の付き合いか(笑)。
高林:最近はマルチコア、マルチプロセッサってなってきましたよね、じゃあスレッドでプログラム書くかっていうと、非常に難しいわけじゃないですか。
弾:難しいねえ。あんまり書きたくないね。
高林:そういうスレッドプログラミングとかがますます重要になるのかなという気がしてます。
弾:最近は関数型プログラミングがすごい注目されてるけど、あれも別のアプローチからのBinary Hacksのような気がするんだよね。
高林:さっきも言いましたけど、弾さんがブログに、なんとかへの渇きがどうって書いてたじゃないですか。要するに基礎が大切だって話しに対して、そんなのはそのうち…。
弾:後付けでいいんだという話でしたな。そうそうそう。
高林:つまりそういうことだと思うんですよ。便利なスクリプト言語とかライブラリとか使っておもしろいもの作って、日々おもしろいと思いながらやっていくと、普通にやってる分にはスクリプト言語と便利なライブラリでいいんですけど、なんとなくその下はどうなってるんだろうとか、もうちょっと基礎的なこと勉強したいなって自然と思うわけじゃないですか。だから、Binary Hacksとか関数型言語というのは、もうちょっと基礎的なことを知りたいぞとかいう欲求だと思うんですよね。
弾:もっかの悩み、誰か書いてほしいなと思うのは、HaskellのGHC(Glasgow Haskell Compiler)の吐くオブジェクトコードがわけわかなので誰か解説してくれないかなという…。実は結構、関数型言語のオプティマイズコンパイラって進んでるのね、先進的なの。だけどその辺を普通に解説している本ってなかなかないのよ。LispだってCより速いコンパイラが実はごろごろあるけども、それが実際どういうことをやってるのか解説してるものはない。どっちもなんとなく反対側のアプローチのような気がするじゃないですか、でも、実は同根なんだよね。
高林:同じハードウェアで動いてますからね。
弾:そうそうそう。
高林:その点で言えばおもしろいのはObjective Caml[1]の作者とLinux Threadsの作者が一緒なんです。結構びびりましたね。Linux ThreadsってLinuxのスレッドの昔の実装なんですけど。
弾:結構、二兎を追うというのはいいよね、自分が普段やっていることの正反対のことをしてみるとか。
高林:なかなか難しいんですけどね。