GitHub Copilot:第一印象
(vladiliescu.net)- 数週間使ってみて感じたこと
→ 「3〜5年以内に、私たち全員がより多くのコメントを書き、あらゆるものにもっと説明的な名前を使い、書くコードはずっと少なくなり、その代わりに大量のコードレビューをするようになるだろう」
- 長所
→ 反復的で退屈なボイラープレートコードの作成に卓越している
→ 最小限のコンテキストでデータセットを分割し、学習および評価するコードを生成できる
→ 「もうクイックマクロを書く必要がない」
- 短所
→ 高度な機能については Copilot の有用性は微妙
→ 正しいことをするかもしれないし、しないかもしれない大量のコードを生成するため、注意が必要
→ 古いバージョンのライブラリを勧めたり、構文的に正しくないコードを使ったり、存在しない ML アルゴリズムのパラメータを埋めたりすることがある
→ 「常に注意を払う必要がある」
[ 研究 ]
GPT に関する Codex 論文から重要なインサイトを得た
- 可能性
→ 「Codex はさまざまな形で役立つ可能性がある。たとえば、ユーザーを新しいコードベースにオンボーディングしたり、熟練したコーダーのコンテキストスイッチを減らしたり、非開発者が仕様を書けば Codex がドラフト実装を作成したり、教育や探索を助けたりできる」
→ つまり会社のコードベースを学習し、会社全体で使われているパターンやモジュールを推薦できれば、Pattern と Practice を標準化する助けになるだろう(すぐには起きないだろうが)
→ また、非開発者が仕様を書けるようになることにも非常に興奮している。特にテスターだ。API や UI をテストするためのコードは書けなくても、何をしようとしているのかの説明は書けるので、彼らが必要とするコードの大半は Copilot が十分に書けるほど単純であり、生産性を大きく高められるだろう。現在のプレビュー版の Copilot でもすでにある程度可能
- 制限点
→ Codex は実際には意図した作業を正しく実行しないソリューションを提案することがあるため、「コードレビュー」が重要
→ また「Automation Bias」(自動化バイアス)のため、Copilot が良くなるほど生成されたコードのバグを見つけようとする意欲が下がり、生成されたコードのバグは微妙で識別が難しくなるだろう
- 誤ったコードを推奨することがある
1件のコメント
私も、予想よりはるかにうまく提案してくれるとは思いました。(英語の)文章作成能力がより重要になりそうです。ただ、非開発者やジュニア開発者が簡単にビジネスロジックのコードを書けるよう支援するという点では、まだかなり距離があるように見えますし、熟練した開発者が退屈なコードを書く時間を減らすのには、かなり役立つように思います。
欠点は、ここに書かれているものと似たように感じました。特に「構文的に正しくないコードを提案する」ことがある、という点です。今はむしろ提案が不完全だからこそ、「こういう意図で提案したのだな」と少し参考にしながらコードを書く程度ですが、提案の精度が上がるほど、上に書かれている通り、それをそのまま使って生じるバグが増えそうではあります。