AIコーディングツールの過去、現在、未来
ゲッティイメージズ/iStockphoto
AI 支援ソフトウェア開発ツールは、プログラマーにソフトウェア ソース コードを自動的に提案または生成します。 これは最先端のテクノロジーのように思えるかもしれませんが、ある意味ではそうです。 ただし、AI 支援開発はまったく新しいものではありません。 実際には、AI やアルゴリズム処理を使用してプログラマーの作業を支援する他のツールにまで遡る長い歴史があります。
AI 支援開発が今日重要である理由を理解するには、その過去を理解し、これらの最新のツールが以前のツールとどのように異なるかを確認することが重要です。 AI コーディング ツールの歴史を見て、どのようにして現在の地位に到達したのかを見てみましょう。
AI 支援ソフトウェア開発とは、機械学習、ニューラル ネットワーク、および AI のその他の側面を使用して、新しいコードをいつ作成するか、既存のコードのどこを改善するか、システム内に存在する可能性のあるエラーを特定する方法などについて自律的に決定を行うことを指します。コードベース。
ただし、これらの最新の AI 支援開発が登場するずっと前に登場したソフトウェア開発ツールのカテゴリが多数あります。 これらの既存のツールやアプローチは、厳密に言えば AI 支援開発と同じではありませんが、いくつかの重要な方法で AI 支援開発を事前に予見していました。
インテリジェント コード補完とは、プログラマーが書き始めたコード行を完成させるのに役立つ一種の開発ツールを指します。 また、コード内で見つかった比較的単純な構文やスペルのエラーを修正することもできます。
インテリジェントなコード補完の簡単な例は、Bash などのシェル スクリプトに通常関連付けられているコマンド ライン補完機能です。 Ubuntu などの Linux ベースのシステムでターミナルを開いた場合は、1 文字または 2 文字の入力を開始して、Tab キーを押します。 端末は、最初の文字に基づいて入力できる有効なコマンドのリストを返します。この例では、最初の文字「bas」を使用しています。
同様に、端末はユーザーがコマンドのスペルを間違えた可能性のあるインスタンスを検出し、ユーザーが入力するつもりだったものを提案します。
インテリジェントなコード補完の起源はおそらく 1950 年代に遡ります。当時、プログラマーは、アプリケーションに問題を引き起こす可能性のあるタイプミスを検出できる基本的なスペルチェック機能を使用して、コードの精度を向上できることに気づきました。 もちろん、インテリジェントなコード補完は AI 支援開発やコード チェックと同じではなく、ユーザー入力を有効な入力オプションの事前構成されたリストと比較するなど、古い検証方法に依存します。
ローコード開発ツールを使用すると、開発者や技術者以外のユーザーは、手作業によるコーディングをほとんど行わずにソフトウェアを作成できます。 インテリジェントなコード補完ツールとは異なり、ローコード開発プラットフォームは、コードの個々の行の完成や検証を支援するだけでなく、プログラム全体を作成できるように設計されています。
ローコード プログラミング ツールは AI を使用しません。 代わりに、ユーザーがソフトウェアを作成するために結合する、事前に構築されたコード モジュールに依存します。 これは、ローコード ツールは、事前構成されたモジュールがサポートする種類のアプリケーションを構築するためにのみ使用されるため、通常、より狭いユースケースをサポートすることを意味します。
AI 支援開発が意図するほど革新的なアプローチではありませんが、ローコード開発の概念は、FOCUS や SQL などの第 4 世代プログラミング言語が初めて登場した 1970 年代から存在していたことは間違いありません。
開発者は長年にわたり、静的コード分析ツールを使用してソース コードを自動的に解析し、コードベース内に埋もれているセキュリティの脆弱性、バグ、その他の問題を探してきました。 静的コード分析ツールは通常、開発プロセス中ではなく、展開後のソース コードに対して実行されます。これは、ビルド サイクルの最初から関与する AI 支援開発ツールとはまったく対照的です。
ただし、ソース コード アナライザーは従来、分析の実行に AI に依存していませんでしたが、DeepCode のようなツールは、静的コード分析と機械学習の概念を組み合わせて、この種のリアルタイム コード スキャンを容易にし始めています。
過去数年にわたって、実稼働対応の AI 支援プログラミング ツールがいくつか、ソフトウェア開発市場で注目を集めてきました。 これらのツールの初期の例の 1 つである IntelliCode は、コード作成時にプログラマーに推奨事項を提供できることを期待して、2018 年に Microsoft Visual Studio に追加されました。 IntelliCode は、C++、JavaScript、Python など、約 6 個のプログラミング言語をサポートしています。 また、引数の補完に関連するものなど、比較的限定された推奨タイプのセットも提供します。
2021 年にデビューした GitHub Copilot も、OpenAI の AI アルゴリズムを利用し、実際のアプリケーション コードベースを解析してトレーニングされたツールです。 このため、Copilot は、関数型プログラミングを目的としたコードを含む、ほぼすべての言語またはフレームワークでソフトウェアのコーディング提案を行うことができます。 AI 支援開発ツールの Amazon バージョンである CodeWhisperer も同様のタスクを実行することを目的としています。つまり、事実上あらゆる言語またはフレームワークのコードの完全なスニペットを提案または自動生成することです。
Copilot と CodeWhisperer は、同様の AI 支援開発ツールと同様に、実世界で使用する準備ができています。 ただし、彼らが提供するものは、AI コーディング ツールの分野で今後出現すると考えられるものの一部にすぎません。