GitHubで学習したAIによってコーディングを補助、マイクロソフトのIntelliCodeが実戦配備

IntelliCodeは、マイクロソフトのAIを利用したコーディング支援ツール。いよいよ誰でも使えるものとなる。プログラミング言語は、Visual Studio上ではC#とXAML、Visual Studio Code上ではJava、JavaScript、TypeScript、Pythonをサポートする。発表によれば、現状で、Visual Studio 2019のバージョン16.1のセカンドプレビュー以降に、デフォルトで含まれるようになった。

IntelliCodeは、基本的にマイクロソフトの非常にポピュラーなコード補完ツール、IntelliSenseの次世代版と言える。ただしIntelliCodeでは、GitHub上の何千というオープンソースのプロジェクトに含まれるソースコードを使って学習したAIを利用している。そのGitHubプロジェクトも、100以上のスターの付いた選りすぐりのものだ。そうしたデータを利用することで、IntelliCodeはかなり賢いコード補完を提案することが可能となった。推奨するコードの内容は、周囲のコードとコンテキストも考慮して生成している。

IntelliSenseの場合、デフォルトではデベロッパーにアルファベット順のリストを提案していた。これはそれなりに便利だが、数が多すぎて、本当に必要なコードはリストのずっと下の方にあるということも多かった。

実は、Kiteのようなスタートアップも、似たような賢いコード補完ツールを提供していることは注目に値する。さまざまな開発環境上で動作するのだが、今のところKiteがサポートする言語はPythonだけに限られている。

KiteやIntelliCodeのようなツールは、デベロッパーの仕事を楽にし、生産性を高めて、バグが忍び込む可能性を減らすことを目指している。こうしたツールがもっと賢くなれば、さらに先を見越して、プログラムのコードのより多くの部分を自動的に補完することができるようになるだろう。プログラマーは何をしようとしているのか、というコンテキストを認識し、同じような問題を他のデベロッパーはどのように解決したか、という知識に基づいた提案をすることもできるようになるはずだ。そうなるには、もう少し時間がかかるとしても、すでにStackOverflowを参照する頻度を減らす効果は十分に発揮できるものとなっている。

( function() {
var func = function() {
var iframe_form = document.getElementById(‘wpcom-iframe-form-83890f65b2d2f9515b86282f70f862bf-5cd14085d49ac’);
var iframe = document.getElementById(‘wpcom-iframe-83890f65b2d2f9515b86282f70f862bf-5cd14085d49ac’);
if ( iframe_form && iframe ) {
iframe_form.submit();
iframe.onload = function() {
iframe.contentWindow.postMessage( {
‘msg_type’: ‘poll_size’,
‘frame_id’: ‘wpcom-iframe-83890f65b2d2f9515b86282f70f862bf-5cd14085d49ac’
}, window.location.protocol + ‘//wpcomwidgets.com’ );
}
}

// Autosize iframe
var funcSizeResponse = function( e ) {
var origin = document.createElement( ‘a’ );
origin.href = e.origin;

// Verify message origin
if ( ‘wpcomwidgets.com’ !== origin.host )
return;

// Verify message is in a format we expect
if ( ‘object’ !== typeof e.data || undefined === e.data.msg_type )
return;

switch ( e.data.msg_type ) {
case ‘poll_size:response’:
var iframe = document.getElementById( e.data._request.frame_id );

if ( iframe && ” === iframe.width )
iframe.width = ‘100%’;
if ( iframe && ” === iframe.height )
iframe.height = parseInt( e.data.height );

return;
default:
return;
}
}

if ( ‘function’ === typeof window.addEventListener ) {
window.addEventListener( ‘message’, funcSizeResponse, false );
} else if ( ‘function’ === typeof window.attachEvent ) {
window.attachEvent( ‘onmessage’, funcSizeResponse );
}
}
if (document.readyState === ‘complete’) { func.apply(); /* compat for infinite scroll */ }
else if ( document.addEventListener ) { document.addEventListener( ‘readystatechange’, function(){
if (document.readyState === ‘complete’) {
func.apply();
}
}, false ); }
else if ( document.attachEvent ) { document.attachEvent( ‘onreadystatechange’, func ); }
} )();

画像クレジット:Luis Alvarez/Getty Images

原文へ

(翻訳:Fumihiko Shibata)

Source: TechCrunch Japan
GitHubで学習したAIによってコーディングを補助、マイクロソフトのIntelliCodeが実戦配備