[ゲスト] 高林 哲 Satoru Takabayashi
11月15日(月)〜11月18日(木)までの間、梅田望夫さんの代わりに高林哲さんがゲストブロガーとして登板します。
高林さんのプロフィール:産業技術総合研究所研究員。2004年 IPA未踏ソフトウェア創造事業開発者。1997年に全文検索システムNamazuを開発。以来、多数のフリーソフトウェアを開発している。趣味はバッドノウハウ。 ・高林哲のWebサイト ・いやなブログ |
昨日は未踏ソフトウェア創造事業の概要を紹介した。今日は、未踏ソフトのプロジェクトとして現在私が取り組んでいるソースコード検索エンジンについて述べたい。
ソースコード検索エンジンとは
ソースコード検索エンジンとは、その名の通り、ソースコードの検索エンジンである。なぜそんなものが必要かといえば、プログラムを書いていると、他の人が書いたソースコードを参考にしたいときがよくあるからだ。
プログラミングという作業は調べものの連続である。「ここをこうするにはどのライブラリを使えばいいのか、このライブラリのAPIはどうなっているのか」など、そういったことを調べながらコツコツとコードを書いていく。マニュアルを調べ、コードを書く。しかし、いくらマニュアルを読んでも、参考になるコードがないと理解に苦しむときがある。
たとえば (突然込み入った例になってしまうが)、 Unixのiconvという関数の使い方はなかなかややこしく、サンプルコード (使い方の例) が載っていないマニュアルを読んで理解するのは容易ではない。このようなときは、他人のソースコードを参考にするのが手っ取り早い。
しかしながら、Google で iconv を検索しても、iconv ライブラリのページや、iconv のマニュアルばかりがヒットして、ソースコードはなかなか出てこない。通常の検索エンジンは一般的な文書を主な対象としているためである。そこで、ソースコードの検索に焦点を絞った検索エンジンが必要となる。ソースコード検索エンジンは、オープンソースのソフトウェアに蓄積されたノウハウを活かし、ソフトウェア開発に生産性の向上をもたらす。
以上のようなことを未踏ソフトウェア創造事業への提案書に書いた。現在は開発がある程度進んできた段階にあり、11月6 日に京都で中間発表を行った。そのときの発表資料をウェブ上で公開している。
ソースコード検索エンジン gonzui
今回のプロジェクトで開発するソースコード検索エンジンの名前はgonzuiに決めた。ゴンズイはナマズ目の海水魚で、毒を持っている。全文検索システムNamazuの仲間という意味合いを込めて名づけた。
今年の6月から7月にかけて既存のシステムの調査や要素技術のテストを行い、7月末から本格的な開発を始めた。9月の頭に未踏ソフトのプロジェクトマネージャーである石田亨教授とミーティングを行い、最初のバージョンを公開する目標を 11月29日と定めた。
このようなスケジュールでgonzuiの開発を進めていたところ、今月の始め頃にKodersというソースコード検索エンジンのサービスが始まった (詳しくはKoders.com:(オープン)ソースコードの高速検索を参照)。 Kodersの目的は、私のプロジェクトと同様に、参考となるソースコードを探し出すことである。さきほどのiconv関数をKodersで検索すると、大量のソースコードが見つかる。
と、あっけなく Kodersに先を越されてしまったが、これはソースコード検索エンジンを開発するという目標が正しかった証としてみることができる。比較対象ができたことで開発がしやすくなったというメリットもある。先月にはIBMがJavaコード専用検索エンジン「Prospector」を開発中というニュースもあった。ソースコード検索エンジンの開発はいつのまにか小さなブームになっているようである。
プロジェクトの発端
ところで、ソースコード検索エンジンを作ろうと最初に言い出したのは、実は私ではなく、現在、開発協力者としてプロジェクトを手伝ってもらっている田中哲氏である。氏はプログラミング言語とライブラリの専門家であり、日夜、いかにしてプログラミングをより生産的な活動にできるか考えている。田中氏が「ソースコードの検索エンジンがあったらいいよねー」と話しかけてきたとき、一瞬何のことを言っているのかわからなかったが、しばし間を置いてからアイディアの秀逸さに気づき、「それはすごい。作らないと!」と反応したことを覚えている。
しかし、ちょうどこの頃、田中氏はソースコードのデータマイニングという研究プロジェクトに一段落をつけていたところで、「しばらく大量のソースコードは扱いたくない」との返事だった。「それなら私がメインで作るので手伝ってください」と田中氏にお願いし、ほどなくして未踏ソフトウェア創造事業に向けて提案書を書き始めた。本プロジェクトはこのようにして始まった。
明日は、ソースコード検索エンジンについてもう少し掘り下げ、この話題のまとめとしたい。
※このエントリは CNET Japan ブロガーにより投稿されたものです。朝日インタラクティブ および CNET Japan 編集部の見解・意向を示すものではありません。
メンバー限定サービスをご利用いただく場合、このページの上部からログイン、またはCNET_ID登録(無料)をしてください。