GoogleがGoogle Code Searchを出したので,似たようなサービスをちょっと調べてみた.
Google Code Search
http://www.google.com/codesearch
Googleのコード検索サービス.言語,ライセンス,パッケージ,プロジェクトを指定して検索することができる.POSIXの拡張正規表現することで柔軟にクエリを指定でき,また"$!"など特殊文字も""で囲むことで検索することが出来る.
Koders
言語,ライセンスを指定して検索することができる.Googleよりもコードの色づけがきれい.また,ソースコードの識別子にリンクが張ってあり,さらに検索をすることができる.プロジェクトのブラウジングすると,開発コストを推定していたり,プロジェクト内の言語の割合を円グラフで表示していたりしてなかなか面白い.また,EclipseなどのIDE用プラグインやEnterprise版などもある.
krugle
Ajaxを効果的に使った検索サービス.ソースコード検索だけでなく,技術文書の検索やプロジェクトの検索も行っている.言語,プロジェクトの他に,コードの出現場所(クラス定義や関数呼び出し,コメント)を指定することができる.
ソースコードのブラウジングの面では一番使いやすいように思える.検索結果をクリックするとソースコードが左のペインに表示され,右のペインにはプロジェクトのディレクトリ構造がツリー表示される.左のペインでは複数のソースコードをタブで切り替えることができる.また,マウスでドラッグしてハイライトした部分から検索をすることもできる.
また,ユーザ登録すると,検索結果を保存したりメモを付けたりすることができるようだ.
codefetch{
オープンソースソフトウェアのユーザとそのソフトウェアに関する本とを結びつけるためにソースコード検索を提供している.ユーザがクエリを入力すると本に書かれてあるコードから検索し,本とコードを表示する.Perlのコードなどには関数名にリンクが貼ってあり,オフィシャルなドキュメント(perldocなど)などにとぶことができる.
比較
表にしてみた
Koders | Krugle | codefetch{ | 備考 | ||
言語指定 | 33 | 30 | 36 | 27 | 指定できる言語の数 |
ライセンス指定 | 18 | 20 | × | × | 指定できるライセンスの数 |
プロジェクト指定 | ◯ | × | ◯ | × | |
パスの指定 | ◯ | × | o | × | (追記) Krugleも対応しているっぽい site:で指定できる |
コードの色づけ | △ | △ | ◯ | ◯ | |
ブラウジング | × | ◯ | ◎ | × | |
インデックス数 | ◎ | ◯ | ◎ | △ | 適当なキーワードで検索を書けたとき結果の数で比較した |
これを見るとgoogleは対象言語の数や対象ライセンスの数,またはインデックスの量では他のソースコード検索サービスと同等かそれ以上だが,まだ,ソースコードの見せ方,ブラウジングという点では改良の余地があるように思える.