GitHub Copilot が発表されました（2022 年夏 GA 予定）

![co](https://github.blog/wp-content/uploads/2021/06/GitHub-Copilot_blog-header.png?w=2400)

皆さんごきげんよう。

現地時間 6 月 29 日、[**GitHub Copilot**](https://copilot.github.com/?fbclid=IwAR3rirxJ48gIa8L5lY3RUoyuVEFI1NE2HySr-OPJU-KQuNI7nHQHvikhVSg) の Technical Preview が発表されましたので、情報リンクなどをまとめてみました。

日本時間 6 月 30 日現在、プレビュー利用者の申し込み受付中です（[申し込みには上限があるようです](https://github.blog/2021-06-29-introducing-github-copilot-ai-pair-programmer/)）。実際に使ってみたいという方は、是非下記のページの上方 `Sign up >` ボタンより申し込んでみてくださいね。

> **uikou 注1** : Microsoft Build で今年（2022 年）夏に Copilot が GA されることが決定しました。

https://blogs.microsoft.com/ai/how-ai-makes-developers-lives-easier-and-helps-everybody-learn-to-develop-software/

> **uikou 注2** : 以下の Copilot のページはかなり長いのですが、<font color="Blue">**下のほうにスクロールしていくと実際の使用例が各言語ごとに gif っぽい感じでまとまっている**</font>ので、観てみると楽しいです。ぜひ下のほうまでスクロールしてみてくださいね。イメージが具体化されると思います！

https://copilot.github.com/

> こっちはブログです

https://github.blog/2021-06-29-introducing-github-copilot-ai-pair-programmer/

# GitHub Copilot : より多くのことを、より簡単にできるように
開発時の関数名・コメントなどを読み込むことで、その内容を解釈し、行単位での補完や、関数全体の実装まで補完してくれる AI によるプログラミング支援の機能となり、[Visual Studio Code](https://azure.microsoft.com/ja-jp/products/visual-studio-code/) および、今後リリースされる [GitHub Codespaces](https://github.co.jp/features/codespaces) の拡張機能です。

端的に言ってしまえば、コメントで詳しく内容を書けば AI がコードを実装してくれる、という感じでしょうか。[IntelliSense / IntelliCode](https://docs.microsoft.com/ja-jp/visualstudio/intellicode/custom-models) のコード補完機能の発展形といえば、想像しやすいのではないでしょうか。

https://docs.microsoft.com/ja-jp/visualstudio/intellicode/intellicode-visual-studio

コードについては勝手に決められるのではなく、いくつか候補を出してくれるので、その中で選択するもよし、あるいは自分で事後に編集するもよし。自分にとって適したものを使っていただけます。コード記述でいちいち関数の Usage を見ながら進めて行くようなことも多いと思いますが、そうした手間がかなり軽減され、より早く実装を進めて行くことができるようになりそうです。
#対象言語について
幅広く対応しますが、その中でも特に Python、JavaScript、TypeScript、Ruby、Go で使いやすくなっているようです。

# どういう仕組みで動作してるの？
実はこの機能、[OpenAI](https://openai.com/) との共同開発によるもので、OpenAI によって作成された OpenAICodex を利用しています。Public のソースコードがたくさんあるデータセットでトレーニングしているため、実装支援ができる、ということのようです。

> **uikou 注** : [OpenAI](https://openai.com/) は、2019 年に Microsoft とパートナーシップを締結しておりまして、当初よりこうしたものを出していきたいという気持ちを継続的なパートナーシップの活動の一環のようです。

https://news.microsoft.com/ja-jp/2019/07/25/190725-openai-forms-exclusive-computing-partnership-with-microsoft-to-build-new-azure-ai-supercomputing-technologies/

GitHub Copilot が使用する OpenAI Codex は、公開されているソースコードと自然言語でトレーニングされているので、プログラミング言語と、人が話す自然言語双方を理解することができます。
Visual Studio Code や、GitHub Codespaces の拡張機能として動作し、コメントとコードを GitHub Copilot サービスに送信します。サービスは、OpenAI Codex により、行や関数全体を合成し、提案してくれます。
![how it works](https://copilot.github.com/diagram.png)

# 開発の責任は依然開発者のもの
**ちなみに、GitHub Copilot は、開発者に成り代わるものではありません**。あくまでもプログラミング支援機能であり、GitHub Copilot 自身が、提案したコードを実際にテストすることはありません。そのため、コンパイルが通らなかったり、うまく動作しないこともあります。従って、**コードは、作成者自身で、責任をもって全体で確認・調整をする必要があることに変わりはありません**。

GitHub Copilot は、直前のコンテキストを使用し、開発者の意図をくみ取り、その解釈に基づく最良のコードを提案しようとしますが、提案してくれるコードが完璧であるという事ではないことにご注意ください。
旨く動作させるコツは、コードを小さな関数単位に分割すること、また関数の引数に意味が分かるような名前を使う事、docstring に適切な内容、コメントを記載することのようです。（参考 : [How do I get the most out of GitHub Copilot?](https://copilot.github.com/))

# 参考リンク
https://copilot.github.com/

https://github.blog/2021-06-29-introducing-github-copilot-ai-pair-programmer/

https://openai.com/

https://www.linkedin.com/pulse/announcing-github-copilot-kevin-scott/

それではみなさん、ごきげんよう。