GitHub Copilot と Amazon CodeWhisperer を使ってみた

GitHub CopilotAmazon CodeWhisperer は共にプログラミングを補助してくれる AI アシスタントです。

アシストしてくれる機能はさまざまあると思いますが、最も一般的なコード生成について、 両者に同じような依頼をして、どの程度のコードを生成してくれるのかを調べてみました。

プログラミング言語は JavaScript で、エディタは VSCode です。

GitHub Copilot

// 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);

Untitled7.gif

概ね期待したコードが生成されました。

Amazon CodeWhisperer

// 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;
}
);

Untitled6.gif

期待したコードが生成されることは少なかったです。 最初の「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;
}
);

Untitled9.gif

うーん、期待した結果は得られるが、コードの可視性は低そうな…。

現状ならば GitHub Copilot の方がアシスタントとして役立ってくれそうだな、と感じました。