LoginSignup
0

AIを活用したペアプログラミング「Github Copilot」

Last updated at Posted at 2024-01-30

copilot.jpg

エスプリフォートでは日々アンテナを張りながら技術力を高め、積極的に新しい事を取り入れ、日々のシステム開発に生かしていっています。
これら磨きあげた技術力が、お客様に高いクオリティでシステムを提供する一助になっています。

はじめに

近年、AI技術の進化とともに、多くの業界でその恩恵を受けているのは明らかです。特にプログラミングの世界でも、この波は静かではありません。この記事では、AIを活用したプログラミングのツール「Github Copilot」について探ることにします。

Github Copilotとは?

Github Copilotは、GitHubとOpenAIが共同で開発した、
VS Codeの拡張機能として動作するコーディングアシスタントです。AI技術を駆使して、
開発者が書きたいコードを予測し、提案してくれるのが主な特徴です。

主な機能

  1. コードの予測:
    • 入力を基に、次に書くべきコードの提案を行います。
  2. ドキュメントからのコード生成:
    • コメントやドキュメントの内容に基づいて関数やクラスを生成します。
  3. 多言語対応:
    • Python, JavaScript, Go, Ruby など、多数の言語に対応しています。

具体的な機能の例を紹介

hello.cというファイルを作成します。

コードを作成します

int main()

すると以下のようにコードの候補が現れ、選択するとコードが生成されます。
草稿2-1.png

上記は簡単な一例ですが、
実際にはメソッド名、引数やコメントなどに応じたコードを生成してくれます。

Copilotのメリット

効率の向上

コードのヒントを得ながら書くことで、開発速度を向上させることができます。

学習のサポート

未知の言語やフレームワークに取り組む際のサポートとしても利用できます。
そのため、不慣れな開発言語でもコーディングが容易になります。

既存エディターとの結合が可能で、新たな環境構築の必要がない

既存エディターと統合できるため、新しく環境を構築したり、別のソフトウェアを同時に起動する必要がありません。そのため、ユーザーの利用ハードルは比較的低く、使いやすいです。
公式に対応しているのは、Visual Studio Code、Visual Studio、JetBrains IDE、Neovimの4種類のみになります。その他の一部のテキストエディターやIDEでも利用できるようです。

Copilotのデメリット

著作権法上の危険

GitHub CopilotによりAIがソースコードを自動生成する場合、その前提として他者のソースコードを学習しているため、OSSなどの他者のソースコードの著作権を侵害している可能性もあります。また、AIが自動的に作った生成物について、基本的には著作物性が認められず、著作権は発生しないため、GitHub Copilotにより自動生成したソースコードは、著作物として認められない可能性が高くなります。

セキュリティ上の漏えい

入力したコードが機械学習に使用されることにより、社外に流出する可能性があります。また、提案されたコードが脆弱である可能性があり、システムの脆弱性に繋がる可能性があります。

料金について

Github Copilotは、当初はプレビュー期間中として無料で提供されていましたが、
現在は有料プランとして提供されています。

1 か月あたり 10 ドルです。

注意: 実際の料金は変動する可能性がありますので、最新の情報はGitHub公式サイトで確認してください。

まとめ

現段階のGithub Copilotは完璧ではありません。
提案されるコードがそのまま使用できない場面も、少なくありません。
これは、AIが提案するコードが常に最適とは限らないことを意味しています。
そのため、AIへの過度な依存は避け、基本的なコーディング技術やアルゴリズムの構築能力を磨くことが重要です。

このAIの進化に伴い、エンジニアの役割や業務も変わってくることでしょう。
AIの力をうまく活用しつつ、人間独自の思考や判断を取り入れるバランスが、
今後のエンジニアにとって大切な事の一つとなるのではないでしょうか。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0