はじめに
私はGithub Copilot
を使用し始めてから、約5ヶ月が経ちました。
使用感をお伝えしていきます。
結論としては、以下になります。
・個人的には新しい分野を勉強する時の強い味方である
・プログラミング初心者や実務経験1~3年未満程度の方には学習効率を上げる効果が期待できる
・熟達したプログラマーには不要
・著作権や脆弱性の問題が示唆されている点を認識したうえで使用する必要がある
Github Copilot とは
GitHub Copilot では、コーディング時にオートコンプリート スタイルの候補を提示する AI ペア プログラマーです。 使用するコードを書き始めるか、そのコードに何をさせたいかを自然言語のコメントで記述することで、GitHub Copilot から候補を取り入れることができます。 GitHub Copilot は、編集中のファイルや関連ファイルのコンテキストを分析し、テキスト エディター内から候補の提示を行います。
メリット
自分の知らなかった記法を教えてくれる
これは初心者に向けた内容ですが、
自分が認知していない記法を提案してくれることがあります。
それが必ずしも適切で効率の良い書き方とは限りませんが、初心者にとっては勉強になるでしょう。
成長率が2倍近くなる?
Github Copilot
は必ずしも適切なコードを提示してくれるわけではありません。
ただ、1つのメソッドや機能を作成する時に、 自分の考え以外の書き方を提示してくれることがあります。
下記公式サイトを見ればイメージがつかめるかと思います。
プログラムを書き始めて間もない人にとっては、
他者からのレビューを受ける前にある程度のレビューを受けられるので、経験値が倍増すると考えて良いかと思います。(2倍は言い過ぎかもですが)
新しい分野を勉強する時の強い味方
自分があまり経験していない言語やフレームワークを勉強するときに、大変重宝します。
よくある書き方が提示されることが多いので、ベーシックな書き方について知ることができます。
例えば、Go 言語を学習するときに、A Tour of Goをやっているとします。
下記のセクションをエディタで書いているとすると、、、
下のキャプチャのように Github Copilot
が補完してくれます。
上記のように、書籍やUdemy
などの教材に出てくる、サンプル的なコードは補完してくれる確率が高いです。
有名な教材であればあるほど、多くのひとが同じコードを書いています。
ですので、高い確率で補完してくれす。
写経したり、サンプルアプリを作っている時に、つまらないタイポを防ぐ効果があります。
さらに、サンプルアプリなどの退屈なコーディング(HTMLタグとかですね)を補完してくれるので、勉強のモチベーションを保つ効果もありました。
一方で、仕事でコーディングをしているときに、Github Copilot
が提案してきたコードを採用しないことも多くあります。
しかし、提案されたコードを私たちは知覚しています。
そういった、見たことがある・なんとなく知っていることに関しては、心理的障壁が減るかと思います。
つぎに勉強や仕事の際にそういったコードに触れる機会があれば、スムーズに頭に入ってくるのではないでしょうか。
めんどくさい時にも助けてくれる
勉強や仕事で、何時間もコーディングをするときに、キーボードを叩くことすらめんどくさくなる時はないですか?
そういった時にもGithub Copilot
は重宝します。
人間の集中力が切れてきても、Github Copilot
は変わらずコードの提案をしてくれます。
ほかに例を挙げると、
テストコードのようなある程度書き方が決まっているものはGithub Copilot
の得意分野です。
めんどくさい、煩雑なパターン化されているコーディングを助けてくれます。
デメリット
著作権や脆弱性の問題が示唆されている
Github Copilot
が登場してからずっと指摘されてきた問題です。
詳しくは以下のニュースなどを参照してください。
こういった問題が存在することは認知しておきましょう。
繰り返しになりますが、
Github Copilot
が提案してきたコードは以下の可能性があるので、それを認識したうえで使用してください。
・著作権を侵害している可能性
・脆弱性の問題がある可能性
思考の幅が狭まる?
これは私が感じたことでは無いですが同僚がGithub Copilot
を使っていて、言っていた感想です。
Github Copilot
が提案してくれるので自分で考える力が育たないかもしれません。
Github Copilot
が 提案してくれるコードを鵜呑みにせず、自分で考える必要が ありますね。
お金がかかる
最初の2カ月間は無料で使うことができます。(2022年11月20日時点)
それ以降はサブスクリプション制度でお金を払っていく必要があります。
まとめ
Github Copilot
を半年ほど使用してみて感じたことをまとめてみました。
冒頭にも述べましたが、以下が大きなメリットです。
・新しい分野を勉強する時の強い味方である
・プログラミング初心者や実務経験1~3年未満程度の方には学習効率を上げる効果が期待できる
コーディングが楽になるというよりかは、サポートをしてくれるというイメージが強いです。
Github Copilot
にはデメリットもあるので、使用前に確認してください。