コーディング支援ツールはAI技術を活用することで、どのように進化してきたのか。「コード補完」「ローコード」「静的解析」などとの違いを踏まえて解説する。
人工知能(AI)技術を用いたコーディング支援ツール(以下、AIコーディングツール)の利用が開発現場で広がりつつある。コーディングを支援するツールはAI技術を取り入れることで顕著な進化を遂げているが、実は全く新しい技術というわけではない。
AIコーディングツールは、その前身となったツールから何が進化したのか。以前から使われてきた「インテリジェントなコード補完」「ローコード開発」「静的解析」などと比べてみよう。
AIコーディングツールは、AI技術を用いてソースコードを自動生成したり、修正内容を提案したり、エラーを特定したりするものだ。では、AIコーディングツール登場以前の「コーディング支援」とはどのようなものだったのか。
インテリジェントなコード補完は、プログラム作成時、書きかけのソースコードを完成させるまで支援する機能だ。簡単な構文ミスやスペルミスの修正もできる。例として、OS「Linux」のシェル(コンピュータに対する命令を解釈するプログラム)である「Bash」に付随するコマンドライン補完機能が挙げられる。
「Ubuntu」といったLinuxディストリビューション(配布用パッケージ)でコマンド操作ツール「端末」(ターミナル)を開き、文字を幾つか入力してタブキーを押すと、入力した文字に基づいたコマンドの候補リストが表示される。
以下は、ターミナルに「bas」という文字を入力した場合の例だ。
chris@chris-Gazelle:~$ bas base32 base64 basename basenc bash bashbug chris@chris-Gazelle:~$ bas
ユーザーがコマンドを誤って入力した場合はその誤りを検出し、正しいコマンドの候補を提供する。以下は「bash」と間違えて「bassh」と入力してしまった場合の例だ。
chris@chris-Gazelle:~$ bassh Command 'bassh' not found, did you mean: command 'bash' from deb bash (5.1-6ubuntu1) command 'bssh' from deb avahi-ui-utils (0.8-5ubuntu5) Try: sudo apt install <deb name>chris@chris-Gazelle:~$
インテリジェントなコード補完の起源は20世紀後半にさかのぼる。当時のプログラマーは、簡単なスペルチェック機能を用いてソースコードの入力ミスを確認し、ソースコードの精度を高めていた。
一方で、インテリジェントなコード補完は、ソースコードの生成や修正の提案ができるわけではない。その役割はあくまで、入力されたソースコードが事前に設定したルールやデータと合致するかどうかを確認するにとどまる。
ローコード開発ツールを使うと、手動でのコーディングをほとんどせずにアプリケーションを作成できる。ローコード開発ツールとは、最低限のソースコード記述による開発を可能にするツールだ。インテリジェントなコード補完のようにソースコード行ごとの補完と検証をするものではなく、プログラム全体を作成するのがローコード開発ツールの目的だ。非技術者でもソフトウェア開発ができるというメリットがある。
ユーザーは、ローコード開発ツール内で提供されるソースコードモジュールを組み合わせることでアプリケーションを作成できる。既存のモジュールを組み合わせることでしかアプリケーションを構築できないため、一般的な開発ツールと比較して狭い範囲の用途にか使えない。
「SQL」「FOCUS」などの「第4世代言語」(エンドユーザーが自ら開発できるよう設計されたプログラミング言語)の登場後に、ローコード開発ツールが誕生したと言われている。
静的解析ツールは、ソースコードに潜むセキュリティの脆弱(ぜいじゃく)性やバグ、その他の不具合を自動的に解析して見つけ出すことができるツールだ。
静的解析ツールはほとんどの場合、ソースコードの完成後に使用される。これは、ソースコードを書く段階から使用されるAIコーディングツールとは対照的と言える。
従来、静的解析はルールベースで解析していたため、AI技術を使うことはほぼなかった。しかし、セキュリティベンダーSnykの「DeepCode AI」など、静的解析と機械学習の概念を組み合わせ、リアルタイムにソースコードを解析できるようにしたツールも登場し始めている。
後編は、主要なAIコーディングツールを紹介する。
米国TechTargetの豊富な記事の中から、最新技術解説や注目分野の製品比較、海外企業のIT製品導入事例などを厳選してお届けします。
Copyright © ITmedia, Inc. All Rights Reserved.
DXを実現するためには、開発チームと運用チームのスムーズな連携が必要になる。これを実現する手法がDevOps だが、実践に当たってはいくつかの課題が存在する。本資料ではこの課題と解決策について解説する。
ソフトウェアテストをアウトソースするに当たってはベンダー選びが重要だが、自社に合うテストベンダーをどう選べばよいか分からない、という声もよく聞かれる。そこで、失敗しないベンダー選定の基準を、チェックシート形式で解説する。
ソフトウェア開発ではテストを、開発エンジニアが自ら担当するシーンが散見される。ただ、専門知見を持たない人材が我流でテストしていては、開発品質の担保が難しくなる。この問題の解決には第三者によるテストが重要だ。
DXの推進が叫ばれる中、その中核を担うソフトウェア開発の現場では、IT人材不足をはじめとする5つの課題が顕在化している。それらを解消し、ソフトウェアの品質を高める方法として注目されるのが、ソフトウェアテストの外注だ。
クラウドサービスは今や広く普及し、クリティカルなシステム領域のクラウド移行も進んでいる。このクラウドの利点を徹底的に活用する仕組みが「クラウドネイティブ」だ。この仕組みを、企業はどう取り入れるべきなのか。
なぜ、「kintone」が大企業の「Fit to Standard」に効果的なのか (2025/3/7)
ノーコードは、負の遺産であるアナログ業務をなくせるのか (2024/11/12)
手間もコストもかかるGUIのテストはどうすれば自動化できるのか (2024/6/4)
「システム内製化」が失敗しがちなのはなぜ? “従来のやり方”では駄目な理由 (2024/5/15)
金融機関のモダナイゼーション 最適解に導くには (2024/3/29)
お知らせ
米国TechTarget Inc.とInforma Techデジタル事業が業務提携したことが発表されました。TechTargetジャパンは従来どおり、アイティメディア(株)が運営を継続します。これからも日本企業のIT選定に役立つ情報を提供してまいります。
Cookieを超える「マルチリターゲティング」 広告効果に及ぼす影響は?
Cookieレスの課題解決の鍵となる「マルチリターゲティング」を題材に、AI技術によるROI向...
「マーケティングオートメーション」 国内売れ筋TOP10(2025年4月)
今週は、マーケティングオートメーション(MA)ツールの売れ筋TOP10を紹介します。
「AIエージェント」はデジタルマーケティングをどう高度化するのか
電通デジタルはAIを活用したマーケティングソリューションブランド「∞AI」の大型アップ...