AI活用のグローバル・トレンドや日本の市場動向を踏まえたDX、生成AIの最新情報を毎月お届けします。本ニュースレターは【日本語】で配信しています。登録の際はIBMプライバシー・ステートメントをご覧ください。
AI活用のグローバル・トレンドや日本の市場動向を踏まえたDX、生成AIの最新情報を毎月お届けします。本ニュースレターは【日本語】で配信しています。登録の際はIBMプライバシー・ステートメントをご覧ください。
生成AIによるコーディングは、LLMや自然言語処理(NLP)の最近のブレークスルーによって可能になりました。機械学習アルゴリズムと、一般的にオープンソースプロジェクトから得られる多様なソースコードの膨大なデータセットで訓練された大規模なニューラル・ネットワークを使用しています。
コードLLMは、前のトークンの文脈に基づいて、コードの連続で次のトークンを予測することを学習します。これにより、モデルはさまざまなプログラミング言語の背後にある構文、意味論、パターンをキャプチャーできるようになります。また、データや制御構造、関数、変数などのさまざまなコード要素間の関係を考慮し、構文的に正しいコードを生成します。
プログラマーは、コードに実行させたい内容を説明する自然言語プロンプトを入力します。生成AIツールは、NLP技術を適用してプロンプトの背後にある意図を分析し、学習した知識を利用して、関連するコード行や機能全体を提案します。
生成AIシステムは開発者を支援するものであり、開発者に取って代わるものではありません。そのため、AIコード生成はソフトウェア開発チームに次のようなメリットをもたらします。
開発ワークフローを加速する
開発者の生産性を向上
コーディングをより身近にする
ソフトウェア開発ライフサイクルのコーディング段階にAIを埋め込み、より迅速なリリースが可能になります。AIコード生成ツールは、プログラマーがより高速にコーディングできるようになり、API設定、認証フロー、クラス宣言、データベース接続、フレームワークコンポーネントのスキャフォールディング、エラー処理などの繰り返し作業を自動化します。
生成AIツールは、定型的なコーディング作業を担うことで、開発者がより付加価値の高い業務に集中できるようにします。多くのAIコード生成プラットフォームは、ほとんどの統合開発環境(IDE)ともシームレスに連携します。これにより、プログラマーは集中した状態を維持でき、コンテキスト・スイッチングの必要性が減り、精神的な負担も軽減されます。
生成AIを使用すると、初心者から専門家まで、あらゆるスキルレベルの開発者がコードを簡単に記述できます。開発者でなくても、これらのツールを使用してプロトタイプを作成できます。
AIの生成したコードには依然として欠陥が含まれている可能性があります。ここでは、ソフトウェア・エンジニアリング・チームが生成AIを開発ワークフローに組み込む際に留意しなければならない欠点がいくつかあります。
コード品質に関する懸念
スキルと専門知識の低下
セキュリティー上の問題
AIを活用したコーディング・ソフトウェアは、バグを含むコード、重複したコード、不正確なコード、または不要なコードを生成する可能性があります。開発者は、AIが生成したコードをレビューし、正確性を検証するために厳格な単体テストを実施する必要があります。
チームは、プロジェクト全体のコードベースを使用してAIモデルをファインチューニングし、検索拡張生成(RAG)を利用して最新のコーディング標準、ドキュメント、スタイルガイドラインを参照することで、コンテキストの理解を向上させ、コード品質を維持することも検討できます。
AIコーディングツールへの依存度が高すぎると、開発者のスキルや専門知識が損なわれる可能性があります。プログラマーは、AIを補助者として扱い、自身のクリティカル・シンキングと問題解決能力を信頼して、情報に基づいたコーディングの意思決定を行う必要があります。
AIコーディング・アシスタントは、意図せずセキュリティ脆弱性を持ち込む可能性があります。こうしたリスクから保護するには、徹底したコード・レビューと堅牢なセキュリティ-・テストの両方が必要です。
開発者は、機能要件に加えてセキュリティー要件も明確に指定したプロンプトを作成する必要があります。RAGは、生成AIツールをセキュア・コーディングの標準と連携させる際にも役立ちます。
生成AI、ローコードおよびノーコードはすべて、コードを迅速に生成する方法を提供します。ただし、ローコード・ツールとノーコード・ツールは、事前に構築されたテンプレートとコンポーネントのライブラリーに依存しています。このツールを使うと、コーディング・スキルのない人でも、ビジュアル・インターフェースやドラッグ・アンド・ドロップなどの直感的なコントロールを使用できます。こうしたツールを使用すると、実際のコードはバックグラウンドに隠されたまま、アプリケーションを迅速かつ効率的に作成および変更できます。
しかし、コード・ソフトウェア用の生成AIは、コンポーネントのテンプレートやライブラリーを使用しません。このソフトウェアは、開発者の自然言語プロンプトを分析し、必要な成果を生み出すコード・スニペットを最初から提案します。
ローコード・ツールとノーコード・ツールは一般に、開発者以外の人やビジネス・ユーザーを対象にしていますが、プロの開発者も他のユーザーもAIコード生成ソフトウェアを利用できます。
生成AIコーディング・プラットフォームには、多くの選択肢があります。開発チームは、自社のニーズを満たす機能、自社の技術スタックとの互換性、およびこれらのシステムをワークフローにどのように組み込めるかを検討する必要があります。
代表的なAIコード生成ツールを紹介します。
Claude Code
Codex
カーソル
GitHub Copilot
Google Antigravity
IBM Bob
Tabnine
Claude Codeは、AnthropicのAIモデルを基盤としており、コード生成とコード理解向けに最適化されています。リポジトリー内の複数のファイルにまたがる変更を一貫性を保ちながら行うことができます。Claude Codeはターミナル上で動作し、コマンドラインインターフェイス(CLI)ツールと連携するほか、JetBrainsやVisual Studio Code(VS Code)などのIDEとも統合できます。
OpenAIのCodexは、同社の最新のGPTモデルを基盤とするコーディング・エージェントです。JetBrainsやVS Code向けの拡張機能を備えており、CLIはターミナルからローカルで実行できます。
Codexは、開発者が意図に一致し、既存のプロジェクト構造やコーディング規則に適応するコードを作成できるように支援します。また、コードを分析して潜在的なバグやロジック・エラーを発見し、複雑なコードを説明して障害を追跡し、的を絞った修正プログラムを提案することもできます。
Cursorは、機能の計画と実装、コード変更のレビュー、バグの検出と修正を目的として設計されたコーディング・エージェントです。コード・ベースの検索可能なインデックスを作成し、そのインデックスに対するセマンティック検索を活用して、コードを深く理解します。Cursorは複数のAIモデルに対応しており、コード補完にとどまらず、コンテキストを考慮した提案を行う独自のTabモデルを提供しています。
GitHub Copilotは、初期のAIコーディング・アシスタントの1つです。OpenAIのGPTモデルを基盤としており、Java、JavaScript、Python、TypeScriptなどの主要なプログラミング言語に対応しています。
GitHub Copilotは、インラインでコードを提案する機能に加え、「next edit suggestions」機能を備えています。この機能は、プログラマーが次に編集する可能性が高い箇所を予測し、その箇所に対応するコード補完を提案します。チャット・インターフェイスでは、開発者がコーディングに関する質問を行うこともできます。
Google Antigravityは、エンタープライズ、フロントエンド、フルスタックのユースケース向けに構築されたエージェント開発プラットフォームです。コード生成、リファクタリング、単体テスト作成などのタスクを、並列動作する複数のAIエージェントに委任します。Antigravity CLIを使用すると、開発者はターミナルでスラッシュ・コマンドやシェル・コマンドを直接実行できます。一方、Antigravity IDEはタブ自動補完と自然言語コード・コマンドを提供します。
IBM Bobは、リポジトリー、パイプライン、環境全体にわたって、チームによるソフトウェアの構築、リリース、モダナイズを支援するAI搭載の開発パートナーです。コードベースに関する質問への回答、既存コードの自動クリーンアップと修正、単一行および複数行のコード補完、コードからのドキュメントの生成または更新、自然言語から実行可能なコードの生成を行うことができます。
Bobは、複雑さ、コスト効率、必要な機能に基づいて、各タスクに最も適したモデルを自動的に選択します。このインテリジェントなルーティングにより、開発者はリソースの使用を最適化しながら、高品質の応答を確実に受け取ることができます。
BobにはIDEに加えて、Bob ShellというCLIも用意されています。コマンド・ライン・タスク、スクリプトの自動化、およびターミナルベースのワークフロー向けのAI支援機能を提供します。
Tabnineは、コードのプライバシーと安全性を保つことに重点を置いたAIコーディングアシスタントです。コードに関しては「ノートレイン・ノーリテイン」ポリシーがあり、オンプレミス、バーチャルプライベートクラウド、完全にエアギャップされたプライベートインストールを含むエンタープライズ展開オプションを提供しています。
Tabnineのコード補完は、開発者の入力に応じて適応し、プログラム内の自然言語コメントからコードを生成することもできます。また、コードに関する問題に回答するために設計された、コードに特化したチャット・アプリケーションも備えています。
OpenAIのChatGPTやGoogle Geminiなど、一部の汎用チャットボットも、テキスト・プロンプトに基づいてコードを生成できます。これらの対話型AIアプリケーションは、コード・エディター内で直接動作する統合プラグインではなく、独立したツールです。
セキュリティーで保護された意図認識型の開発を実現するAIパートナー、IBM® Bobにより、ソフトウェア・デリバリーを加速します。
企業向けツールを活用し、AIアプリケーションの開発、デプロイ、管理をより迅速に実行します。
インテリジェントなAIモダナイゼーションにより、レガシー・システムを再構築します。