はじめに
先日、苦戦した「GitHub Education」への申請が完了し、晴れていろんな特典を受け取ることができました。(特典については他の方の記事を参考にしてください。)しかし、Pro
マークがついても特にやりたいことはなかったので、なんとなく楽しそうな「GitHub Copilot」を使ってみることにしました。
そこで思ったのが、「別にChatGPTとかで良くない?」です。いまいち強みを実感することができなかったので、今回の記事では「GitHub Copilot」の強みをまとめてみました。参考になれば幸いです。
では、まずは概要から紹介していきます。
GitHub Copilotの概要
GitHub CopilotはMicrosoftとOpenAIが共同で開発した、AIによるコード補完、生成機能をもったAI開発支援ツールです。この2つの機能以外にもチャット機能も持っています。ちなみにですが、あくまでプログラミングに秀でたものなので、ChatGPTのように雑談に対応することはできません。(下のようにふられます。)
ただし、 プログラミングに関連した雑談(おすすめの言語やプログラミングをするにあたってのお悩み相談など)は可能です。
OpenAIが開発に携わっていることもあり、学習モデルには現時点で最新の大規模言語モデル(LLM)である GPT-4
を使用しています。ただ、だからといってChatGPTと同じ中身なのかというとそれは誤りです。
GitHub CopilotはGitHub上のパブリックリポジトリからも学習しており、前述したようにコード補完や開発者支援に特化している点がChatGPTとは異なります。
下のように各開発環境用のプラグインが用意されており、それをインストールして、GitHub Copilotの機能を使用することができます。
- Visual Studio Code
- Neovim
- IntelliJ IDEA
- WebStorm
- GoLand
- PyCharm
GitHub Copilotの強みとは
多くの言語、フレームワーク・ライブラリに対応している
以下に対応しているものをまとめます。
言語
Python、JavaScript、TypeScript
Java、C#、Go、Ruby、PHP、Swift、Kotlin
Web開発
HTML、CSS
フレームワーク・ライブラリ
-
フロントエンド
React、Vue.js、Angular、Svelte、Bootstrap、
Material Design、Next.js、Nuxt.js、Gatsby、Tailwind CSSなど -
バックエンド
Node.js、Django、Flask、Spring Boot、ASP.NET Core、Laravel、Ruby on Rails、Goなど -
その他
機械学習 (TensorFlow、PyTorchなど)、
データ分析 (pandas、NumPyなど)、
DevOps (Ansible、Terraformなど)
それに加えて、定期的にGitHub上の膨大な公開リポジトリを学習データとして更新されていくため、比較的新しいライブラリやバージョンに対応することができます。十分な情報を書けば、ある程度複雑なものにも対応できるそうです。
コード補完機能が優れている
この記事では「コメントによる指示」、「チャットでの直接的な質問」を取り上げます。
コメントによる指示
ソースコード内のコメントに支持を記述するとそれに合ったソースコードを提案してくれます。下のコードは全て補完機能により作られたものです。
チャットでの直接的な質問
ソースコードを書いていて疑問が生じた際は適宜質問することができます。もちろん、エラー対処にも対応しています。
補完サポートが強力である
GitHub Copilotは、開発者が利用する言語やフレームワークに応じた補完だけでなく、複数のモジュールや依存関係を理解し、それらに適したコードを提案する点で、他のツールと比べて優れています。
たとえば、プロジェクト内の関数やクラス定義を把握し、それに沿った補完を行うため、複雑なコードベースでも的確な補完が可能です。
おわりに
今回の記事では、GitHub Copilotについて概要を紹介した後、他の類似サービスと比較したときの強みについて扱いました。今回取り上げた点以外にも多くの魅力があるので
、ぜひ使ってみてはいかがでしょうか。
特に、学生の方は「GitHub Education」に登録すればこのサービスを無料で利用できるのですごくおすすめです。
ただ、これは他のサービスでもいえることですが、GitHub Copilotの提案が最適であるとは限らないという点に注意です。自分でやるところはやって、任せられるところはやってもらうという姿勢を大切にしていきましょう。
では、今回の記事はこれで終わりです。最後までお読みいただきありがとうございました。
参考