Bonanzaの保木さん(後編)

前編については→http://d.hatena.ne.jp/AT-Corp/20090719#1247972438


保木さんの「オープンソース」観?

学校のブログで、電設部担任のN先生が
コンピュータ将棋プログラム「Bonanza」の作者
保木さんにインタビューに行って来た、
その後半記事が公開されました。
http://www.jec.ac.jp/it-o/2009/07/bonanza_1.html


ここのくだりがとても興味深い。

N.「なぜBonanzaのソースを公開することになったのですか?」

保.「学術の世界では、作ったものを自分の中で取っておいても
   しようがないんですよ。」

N.「発表してなんぼ、という世界ですよね。」

保.「意見をもらわないとダメなんですよね。」

N.「でも今までは他のコンピュータ将棋プログラマの方も
   個々の手法などについては論文等で発表されてましたよね。
   今回はBonanzaの『ソースプログラムを公開した』、
   ということがとっても画期的だと思うのですが。」

保.「そうですね。でも私は実は『オープンソース』っていう
   概念が全くわからないのですけど(笑)、
   僕がしたかったのは・・・やっぱり『発表する』という
   ことだったんです。」

N.「『発表する』ということは、
   アルゴリズムだけを公開するのではなく
   『ソースを公開する』ということなんですね。
   それって、とってもエンジニア的発想だと思いました。
   『ソースに全てが書いてあるのだ』という。」

保.「はい、そうなんですね、はい。」

N.「やっぱり保木さん、コンピュータ少年だったんですよ!」

保.「はははは、はは。」

N.「(笑)いやあ、やっぱりそうだったんですねえ・・・」

保.「でもソースだけでいいとは思わないです。
   こうなんていうか、アイディアがあって、
   アルゴリズムがある・・・
   で、そのアルゴリズムのひとつの実装例として
   ソースを示すことができた・・・。
   実装できないアルゴリズムって使えないわけですよ。
   どんなに美しいアルゴリズムでも。」

N.「つまりアルゴリズムをまず発表し、
   それを本当に実装した成果として
   ソースを発表したんですね。」

保.「そう、アルゴリズムがきちんとコンピュータに乗って、
   本当に動くんだ、実装できるのだ、という。」

N.「アルゴリズムと実装を両方とも公開することで、
   はじめて発表したことになるのですね。」

保.「はい、そうですね。」


Bonanzaオープンソースになったのは、
自然の成り行きだったのですね。
でもここでひとつの疑問が浮かび上がります。


N.「なるほど、でもよく考えて見ると
   他のコンピュータ将棋のソースプログラムは
   公開されませんよね?」

保.「アルゴリズムを発表して実装例までを示す、
   ということができるほどまとまっているものが
   将棋プログラムにはあんまりないんですね。」

N.「あ、そういえばBonanzaはとてもシンプルだから
   実装例を示しやすかったんですね。」

保.「はい、ちゃんと実装例として示すことができて、
   かつオリジナルのアルゴリズムである、
   ということです。」

N.「実際には動くソースというのはたいてい
   動かすための苦労の跡がにじみ出ていますものね。
   個人で作ったプログラムのソースを公開するのは
   本当に大変だと思います。」

保.「Bonanzaはすごいシンプルだと思いますね。」


企業のプロジェクトチームがプログラムを作り始める時は、
ソースプログラムの書き方に厳密なルールを設定しますが、
個人で作ろうとすると実際にきちんと動かすために
数々の特殊条件を乗り越えていく過程で、
とても美しいソースであるとは言えなくなっていくのです。
「よし、オープンソースにするぞ!」と言い出してから
ソースの修正にえらい時間がかかってぼやくプログラマ
実はたくさんいるらしいのです。


N.「ところで、Bonanzaを公開する時に、
   『えーっ、公開すんのかよお』
   っていう声はなかったんでしょうか?」

保.「あ、言われましたねえ。
   『公開して大丈夫なの?』って」

N.「例えばどんなこと?」

保.「公開するとコピーが出回るぞ、って。」

N.「コピーが出回ることは・・・」

保.「僕としては出回ってもらいたいくらいなんですけど、
   大会(世界コンピュータ将棋選手権)が機能しなくなる
   って言われました。」

N.「大会が機能しなくなるって言うのは、
   Bonanza一色になるっていうことですよね。
   それに対して保木さんの答えは?」

保.「いや、別にいいと思いますねえ(笑)。」

N.「全部がBonanzaになっても、みんなが強くなるだけ?」

保.「はい、全然問題ないと思います。」


保木さんのこの余裕はどこから来るのでしょうか。
一度世界チャンピオンになって頂点を極めた
自分のプログラムを、あえて負けるかもしれない状況に
自らの手で追い込んでいくかのようです。
勝敗を超越した何かが見えているのでしょうか。


実際にはBonanzaのソースが公開され、
誰でも保木さんのオリジナルの「自動学習法」の
部分を取り入れることができるようになりました。
その結果何が起きたか。
そう、Bonanzaは「Bonanzaチルドレン」に敗れたのです。
2009年の世界コンピュータ将棋選手権で、
Bonanzaは5位に終わりました。
今回の上位入賞チームのほとんどは、
保木さんのオリジナル部分の影響を受けています。


N.「今回の大会では『Bonanzaチルドレン』が
   保木さんを倒しましたね。」

保.「いやあ、嬉しい限りです。」


純粋に「技術の発展」というものを願っての言葉。
これがまた、自身でイノベーションを起こした上での
言葉・行動だからこそ持ちうる説得力があると思う。