初心者だろうとベテランだろうと、プログラマーであればうまく再利用できるコード・スニペットを探してStack Overflowその他のサイトで長い時間を過ごしているはずだ。よく言われるように「車輪を再発明する」ほど無駄な努力はない。
今回、マサチューセッツ州ケンブリッジのMicrosoft Researchのチームがスニペット検索のプロセスを効率化してIDEに統合してくれた。Microsoftは今日(米国時間2/17)、Bing Code Searchアドオンを公開した。これはC#(他の言語も今後サポートされる)のコード・スニペット検索機能をVisual Studioに組み込むものだ。
ここで重要なのは、単なる標準的な検索機能ではなく、自然言語を利用したスマート検索がサポートされているという点だ。たとえば、「ファイルを1行ずつ読む(read files line by line)」というような条件で検索ができる。このツールの検索機能はBingが受け持ち、サービス自体はWindows Azure上で走る。
検索対象となるのはStack Overflow、MSDN、Dotnetperls、CSharp411の各サイトだ。すべてのスニペットはコンパイル可能かどうか自動的に検証される。また検索アルゴリズムはそのスニペットに対するコミュニティーの投票など各種の価値づけ情報を考慮して表示順位を決定する。
もうひとつ大変に便利な機能は、単にスニペットをコピー・ペーストするのではなく、ユーザーの既存ソースコードに合わせて変数名を調整してくれることだ。
もしVisual Studioをインストールしていなくてもウェブ版がこちらから使える(インターフェイスは若干異なる)。
私の取材に対して、 開発チームの上級研究員、Youssef Hamadiとポスドク研究員のYi Weiは「プログラマーなら誰でも実感すると思うが、変数名をユーザーが使っているものに変換することはソースコードを非常に読みやすくする」と語った。
Hamadiはまた「このツールで、初心者はコードの書き方が学習できるしベテランはその目的にもっとも適切なスニペットすぐに選び出せるので、どんなレベルのプログラマーにも有益だろう」と語った。
Microsoftの社内テストではこのBingコード検索を利用すると問題解決に要する時間が60%早くなったという。
提携サイトの一つであるStack Overflowのエンジニアリング 担当副社長David Fullertonは「この提携でわれわれのサイトへのトラフィックが減るとは予想していない。検索結果にはオリジナルのソースへのリンクが表示される。多くのユーザーはわれわれのサイトを訪問して詳しく調べたいと思うだろう」と語った。
Microsoftがこの方向をどう発展させていくか楽しみだ。極端にいえば、将来は自然言語検索を繰り返すだけでプログラミングができるようになるのかもしれない。Hamadiは「われわれはこのテクノロジーをベースにしたプロダクトをさらに用意している」と語った。
[原文へ]
(翻訳:滑川海彦 Facebook Google+)