投稿記事
<<AIとのペアプログラミングを可能としたGitHub Copilot>>
2023-03-13
Microsoft傘下のGitHub(ギットハブ)は、開発者が入力するソースコードや、スニペット(プログラムの断片という意味、特にコードスニペットと呼ぶ場合もある)を、開発者に提示する、Copilot(コパイロット)というツールを発表しました。GitHubは「開発者は、現在Copilotを使ってソースコードの最大40%を生成、今後5年以内に、この数が倍増する」と予想しています。エンジニアの働き方を変革する可能性が高いCopilotには、今話題になっているChatGPTと同様に GPTベースのAIが利用されています。(Microsoft傘下のOpenAIの技術がChatGPTです)
【GitHubとは】
GitHubとは、Git(各ユーザーがデータベースを持つことができる分散型のソフトウェアバージョン管理システム)を管理するサーバーであり、個人やチームがバージョン管理やコラボレーションのためにより効率的かつ簡単にGitを使えるようにするサービスです。誰でもサインアップして無料で公開コード・リポジトリをホストすることができるので、オープンソース・プロジェクトでは人気があります。
GitHubを使うことで、開発者同士が一緒にコードのレビューを行えるほか、プロジェクトの管理をしながらソフトウェア開発を行うことも可能です。2022年11月時点で3.3億件ものオープンソースのリポジトリがホスティングされていて、WalmartやBloomberg、airbnbなどを筆頭に、400万以上の組織がGitHubのエンタープライズバージョンやプライベートバージョンなどを使って自分たちのソフトウェアをGitHubにアップしています。
参考URL:https://github.co.jp/
出典:https://www.paloaltoinsight.com/2023/02/22/github-copilot/
【GitHub Copilotとは】
Copilotは、GitHubが2022年6月にリリースしたコーディングサポート機能です。プログラマーがこれから書こうとするコードをAIが予測提示してくれるツールです。開発者はCopilotが提示したソースコードをたたき台に、必要があれば手直しするだけでコーディングを完了させることができます。またコードナビゲーションもサポートしており、作成中の関数やクラスの定義を表示したり、コードに基づいて次のステップを提示することも可能です。
【Copilot利用上の制約】
①Copilotが提示したコードは必ずしもそのまま実行できるとは限りません。既存のソースコードを学習するという仕組み上、古いコーディングスタイルや、今では非推奨になっている実装が提案されることもあるという欠点があります。とはいえCopilotの示すコードを叩き台にして、コーディング作業を効率化することは非常に大きな効果を発揮します。プログラマーは「フロー状態」と呼ばれる超集中状態を維持しやすくなり、よりよいコードを考えることに神経を集中し、生産性を大きく向上させることが可能です。
②AIは公開リポジトリ(データや情報が保存される場所)に含まれるすべての言語について学習し、大量のコードデータセットでトレーニングされています。そのため、提案の質は、その言語のトレーニングデータの量と多様性によって大きく左右されるという特徴があります。従っ、て公開リポジトリにあまり存在しないマイナーな言語では、表示される提示の数が少なかったり、プログラムの堅牢性に欠ける場合もあります。
上記制約はあったとしても、AIによって出力された提案やコードスニペットを目にすることで、プログラマーは特定のプログラミング言語やフレームワークでのコードの書き方をより深く理解することができます。Copilotは大量のデータセットで学習をしているため、初心者のプログラマーから、知らず知らずのうちに自分の型にはまったコーディングをしている熟練のプログラマーまで、さまざまな層のユーザーがこれまで知らなかったような新しいライブラリやパッケージを発見するのに役立つと重宝されています。
出典:https://recruit.gmo.jp/engineer/jisedai/blog/how-to-hack-github-copilot/
出典:https://www.paloaltoinsight.com/2023/02/22/github-copilot/
【プロコードの効率化】
No-Code開発ツールやLow-Code開発ツールは基本的に、プログラム・コードを書くことなく、GUIを操作してシステムを開発するツールです。これらのツールが進化することにより、業務を一番よく知る業務現場の人が、あるいは業務現場に近い所にいる人が、自社の業務の価値を高めるために、システムを自ら作成することが可能となってきています。一方Pro-Codeとは、プログラム・コードを書くことでシステムを開発することです。人月単価の受託開発ビジネスでは、顧客がNo-Code開発ツールやLow-Code開発ツールツールを使うことで、自社の工数が減少することが懸念されていましたが、今はむしろ開発の生産性を高めるために、ツールベンダーと協力して積極的にSIerが開発ツールを採用するようになってきています。更にGitHub Copilotを活用することにより、人間がするべき作業を人間がして、AIに可能なことはAIに任せることにより、より効率よく、質の高い作業をすることが、可能となってきているのです。
出典:https://www.atmarkit.co.jp/ait/articles/2007/07/news004.html
【GitHubとは】
GitHubとは、Git(各ユーザーがデータベースを持つことができる分散型のソフトウェアバージョン管理システム)を管理するサーバーであり、個人やチームがバージョン管理やコラボレーションのためにより効率的かつ簡単にGitを使えるようにするサービスです。誰でもサインアップして無料で公開コード・リポジトリをホストすることができるので、オープンソース・プロジェクトでは人気があります。
GitHubを使うことで、開発者同士が一緒にコードのレビューを行えるほか、プロジェクトの管理をしながらソフトウェア開発を行うことも可能です。2022年11月時点で3.3億件ものオープンソースのリポジトリがホスティングされていて、WalmartやBloomberg、airbnbなどを筆頭に、400万以上の組織がGitHubのエンタープライズバージョンやプライベートバージョンなどを使って自分たちのソフトウェアをGitHubにアップしています。
参考URL:https://github.co.jp/
出典:https://www.paloaltoinsight.com/2023/02/22/github-copilot/
【GitHub Copilotとは】
Copilotは、GitHubが2022年6月にリリースしたコーディングサポート機能です。プログラマーがこれから書こうとするコードをAIが予測提示してくれるツールです。開発者はCopilotが提示したソースコードをたたき台に、必要があれば手直しするだけでコーディングを完了させることができます。またコードナビゲーションもサポートしており、作成中の関数やクラスの定義を表示したり、コードに基づいて次のステップを提示することも可能です。
【Copilot利用上の制約】
①Copilotが提示したコードは必ずしもそのまま実行できるとは限りません。既存のソースコードを学習するという仕組み上、古いコーディングスタイルや、今では非推奨になっている実装が提案されることもあるという欠点があります。とはいえCopilotの示すコードを叩き台にして、コーディング作業を効率化することは非常に大きな効果を発揮します。プログラマーは「フロー状態」と呼ばれる超集中状態を維持しやすくなり、よりよいコードを考えることに神経を集中し、生産性を大きく向上させることが可能です。
②AIは公開リポジトリ(データや情報が保存される場所)に含まれるすべての言語について学習し、大量のコードデータセットでトレーニングされています。そのため、提案の質は、その言語のトレーニングデータの量と多様性によって大きく左右されるという特徴があります。従っ、て公開リポジトリにあまり存在しないマイナーな言語では、表示される提示の数が少なかったり、プログラムの堅牢性に欠ける場合もあります。
上記制約はあったとしても、AIによって出力された提案やコードスニペットを目にすることで、プログラマーは特定のプログラミング言語やフレームワークでのコードの書き方をより深く理解することができます。Copilotは大量のデータセットで学習をしているため、初心者のプログラマーから、知らず知らずのうちに自分の型にはまったコーディングをしている熟練のプログラマーまで、さまざまな層のユーザーがこれまで知らなかったような新しいライブラリやパッケージを発見するのに役立つと重宝されています。
出典:https://recruit.gmo.jp/engineer/jisedai/blog/how-to-hack-github-copilot/
出典:https://www.paloaltoinsight.com/2023/02/22/github-copilot/
【プロコードの効率化】
No-Code開発ツールやLow-Code開発ツールは基本的に、プログラム・コードを書くことなく、GUIを操作してシステムを開発するツールです。これらのツールが進化することにより、業務を一番よく知る業務現場の人が、あるいは業務現場に近い所にいる人が、自社の業務の価値を高めるために、システムを自ら作成することが可能となってきています。一方Pro-Codeとは、プログラム・コードを書くことでシステムを開発することです。人月単価の受託開発ビジネスでは、顧客がNo-Code開発ツールやLow-Code開発ツールツールを使うことで、自社の工数が減少することが懸念されていましたが、今はむしろ開発の生産性を高めるために、ツールベンダーと協力して積極的にSIerが開発ツールを採用するようになってきています。更にGitHub Copilotを活用することにより、人間がするべき作業を人間がして、AIに可能なことはAIに任せることにより、より効率よく、質の高い作業をすることが、可能となってきているのです。
出典:https://www.atmarkit.co.jp/ait/articles/2007/07/news004.html
