[ゲスト] 高林 哲 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 編集部の見解・意向を示すものではありません。
| 日 | 月 | 火 | 水 | 木 | 金 | 土 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |
ネットワーク型産業構造への衣替え?
iPhonista Nightの事後報告
SoftBankは誰に好評なのか?
スパム
アフィリエイトの仕組みを知らない?技術者のITリテラシー
OSC2008Tokyo/Fallで勉強会大集合開催
月5000円を得るための代償
iPhone2.2では、絵文字に対応?
すでに土砂降りのIT業界みんなのお題では、ブロガー同士で質問を出し合いそれに対する回答や意見を集めています。今日はどんな話題が盛り上がっているでしょう?
CNET Japan ブログネットワークは、元はCNET Japanの一読者であった読者ブロガーと、編集部の依頼により執筆されているアルファブロガーたちが、ブログを通じてオンタイムに批評や意見を発信する場である「オピニオンプレイス」、また、オピニオンを交換するブロガーたちが集うソサエティです。
広い視野と鋭い目を持ったブロガーたちが、今日のIT業界や製品に対するビジョンや見解について日々熱く語っています。
CNET Japanやその他サイトが提供するITニュースやコンテンツへの意見や分析、 ビジネスやテクノロジーに対するビジョンや見解について語っていただける方を 募集しています。ご応募はこちらから
ブログの投稿はこちらから(※ブロガー専用)
今年最も活躍したブロガーを表彰します。詳細はこちらから
これは、CNET Japan 編集部の依頼に基づいて執筆されているCNET Japan アルファブロガーによるブログの印です。
CNET Japan ブログネットワーク内で拍手の代わりに使用する機能です。ブログを読んで、感激した・役に立ったなど、うれしいと思ったときにクリックしてください。多くGood!を獲得した記事は、より多くの人に読まれるように表示されます。
[レビュー]2011年画質を備えた高画質、多機能Blu-ray--ソニー「BDZ-X95」
今週の新製品総チェック:よりモバイルPCとして進化した「Let's note」が登場
今週の新製品総チェック:フルサイズCMOS搭載のキヤノン「EOS 5D Mark II」が登場
今週の新製品総チェック:第4世代iPod nano登場、ソニー「α」、松下「LUMIX」に新機種も