GitHub Copilot と Amazon CodeWhisperer は共にプログラミングを補助してくれる AI アシスタントです。
アシストしてくれる機能はさまざまあると思いますが、最も一般的なコード生成について、 両者に同じような依頼をして、どの程度のコードを生成してくれるのかを調べてみました。
プログラミング言語は JavaScript で、エディタは VSCode です。
// 1〜5の配列を生成して list に代入
const list = Array.from({ length: 5 }, (_, i) => i + 1);
// list から奇数を抽出して大きい順に並び替え
const result = list.filter(n => n % 2 === 1).sort((a, b) => b - a);
概ね期待したコードが生成されました。
// 1〜5 の配列を生成して list に代入
var list = [1, 2, 3, 4, 5];
// list から奇数を抽出し、大きい順に並び替え
list.sort(function(a, b) {
return b - a;
}
);
// list から奇数を抽出した後、大きい順に並び替えて list2 に代入
var list2 = list.filter(function(num) {
return num % 2 === 1;
}
);
期待したコードが生成されることは少なかったです。 最初の「1〜5 の配列を生成…」にしても、放置してもアシストが出てこなかったので、Option+C のショートカットキーでアシストを要求して初めて結果が得られました。
依頼内容が GitHub Copilot と完全に同じではなかったので、再度やってみました。
// 1〜5 の配列を生成して list に代入
var list = [1, 2, 3, 4, 5];
// list から奇数を抽出して大きい順に並び替え
list.sort(function(a, b) {
return b % 2 - a % 2;
}
);
うーん、期待した結果は得られるが、コードの可視性は低そうな…。
現状ならば GitHub Copilot の方がアシスタントとして役立ってくれそうだな、と感じました。