ソフトウェア

プログラマーの書いたソースコードの続きを自動で記述する「GitHub Copilot」はエンジニアを駆逐してしまうのか?


GitHubがリリースした、プログラマーの記述したソースコードの続きを自動で補完してくれる機能が「GitHub Copilot」です。このGitHub Copilotを使えばAIがソースコードを完成させてくれるため、この種のAIが増えれば「エンジニアの仕事はなくなってしまうのでは」という危機感を覚えた人も少なくないはず。そこで、エンジニアのHrithwik Bharadwaj氏がGithub Copilotの利点と欠点を挙げています。

Limitations and The Good Things about Github Copilot
https://blog.hrithwik.me/the-good-and-the-limitations-of-github-copilot

「GitHub Copilot」はMicrosoftが開発するソースコードエディター「Visual Studio Code」用の拡張機能として提供され、マシン上でもクラウド上でも利用可能です。実際に「GitHub Copilot」を使うとどんな風にソースコードの続きが記述されるのかは、以下の記事を読めばわかります。

GitHubにソースコードの「続き」を自動で補完する機能「GitHub Copilot」が登場、OpenAIの協力により - GIGAZINE


「GitHub Copilot」はソースコードを自動補完したり、コメントや関数名を確認してコードを合成したりすることができる、Visual Studio Code向けの拡張機能です。「GitHub Copilot」は何十億ものパブリックコードを用いてトレーニングされており、入力されたコーディングパターンを模倣した自動入力機能や、単体テストの実行機能なども搭載されています。

興味を持ったBharadwaj氏は実際に「GitHub Copilot」を使用し、「このAIはデータ構造とアルゴリズムに関する問題のほとんどを解決できた」とその感想をまとめています。

さらにその後、Bharadwaj氏は「GitHub Copilot」を使って「メールバリデーション」「GitHubを呼び出すAPI」「シンプルなメール送信クライアント」を作成する中で、「『GitHub Copilot』の利点と欠点が明らかになっていった」と語っています。


というわけで、Bharadwaj氏がまとめた「GitHub Copilot」の利点と欠点が以下の通り。

◆利点
・構文の自動補完
Bharadwaj氏は「GitHub Copilot」をテストする際、Pythonを使ってコーディングしていたそうで、途中でスライス構文を忘れていることに気づいたそうです。しかし、「GitHub Copilot」が構文を補完してくれたため、問題なくコーディングを続けることができたとのこと。

・メールバリデーションやGitHubの呼び出しAPIの開発をサポートできる
「GitHub Copilot」を使えば、いくつかのAPIを呼び出すための単純な関数を生成したり、ドキュメントに依存することなくいくつかの正規表現コードを書いたりすることが本当に簡単になるとのこと。

ボイラープレートコード
Phrase Expressのように定型文を入力したり、Mongoスキーマを記述したりすることにも役立つそうです。


Bharadwaj氏は「全体として、『GitHub Copilot』がVisual Studio Code上で行う自動補完は、非常にシームレスに行われる点が非常に気に入っています」と語り、「GitHub Copilot」による自動補完が非常にスムーズに行われる点を称賛しています。

◆欠点
リリースされたばかりの「Github Copilot」はバージョン1のベータ版といえますが、「それでもあまりに優れている」とBharadwaj氏は記しています。それでもあえて欠点を挙げるなら、以下の4つを挙げることができるとBharadwaj氏。

・ベストプラクティスに従わない
「Github Copilot」が自動補完するコードはベストプラクティスに従っているわけではなく、バックエンド開発に使用するように最適化されたものでもありません。そのため、意図していないシャドーイングやバグが発生するケースが見られたそうです。

・バージョンの競合
さらに、「Github Copilot」が生成する一部のコードは、コードベースが使用されているバージョンでは機能しなかったり、AIが多くの不要なコードを出力してしまったりすることもあったそうです。これについて、「経験のある開発者ならば『Github Copilot』が出力した不要なコードを処理することができますが、初心者がAIの力を借りてコーディングを行っていた場合は、コーディングよりもスタックオーバーフローにより多くの時間を費やすこととなってしまうでしょう」とBharadwaj氏は記しました。

・奇妙な著作権メッセージが表示される
「Github Copilot」が著作権で保護されたコードを表示したこともあるそうです。


Bharadwaj氏は実際に使用した感想として、「一部の関数を作成する場合は最適ですが、一部のコードには効率的ではない場合があります」「人間に取って代わるものでは断じてなく、プログラマーの仕事を手伝う副操縦士的なもの」と記しています。

この記事のタイトルとURLをコピーする

・関連記事
GitHubにソースコードの「続き」を自動で補完する機能「GitHub Copilot」が登場、OpenAIの協力により - GIGAZINE

JavaScriptを補完してウェブを高速化する「WebAssembly」をChromeがついに実装したので実行速度を試してみた - GIGAZINE

Gmail・Googleドライブ・Wordなどのネット上の文章の校正・編集をカンタンに依頼・共有できるChrome拡張「Poetica」 - GIGAZINE

Excelのように使用できるローコード「Power Fx」をMicrosoftが開発 - GIGAZINE

in ソフトウェア, Posted by logu_ii

You can read the machine translated English article here.