ローコードおよびノーコード プラットフォームの爆発的な成長により、個人でも組織でも、従来はコードの記述と呼ばれていた作業を比較的少なくして、強力な本番アプリケーションを作成できるようになりました。このトレンドの次のステップは、最近の Open AI Codex と Github Autopilot で実証されているように、AI 生成コードです。
では、これらの傾向は何を意味するのでしょうか? コードを書くことは時代遅れになるのでしょうか? 背景は何ですか?この質問に答える前に、これらの傾向を文脈に沿って考えてみると役に立ちます。プログラミング コードの初期の頃は、アセンブリ言語とマシン言語を使用するのが標準でした。コードの記述は後に高級言語へと進化し、開発者はマシンに依存しない言語で高レベルの意図を記述し、コンパイラを使用してその下でマシン固有のコードを生成できるようになりました。 この傾向は現在まで続いており、現在ではPythonなどの主流の言語には、複数回使用できるライブラリが多数付属しています。したがって、少量の新しいコードのみで、強力なアプリケーションを比較的簡単に作成できます。 ローコード/ノーコードとは何ですか?ローコード/ノーコードは、この進化の次のステップです。開発者は再利用可能なコード ブロックを探して組み立てる必要がありません。ローコード プラットフォームは、高レベルの指示に従い、正しい再利用可能なコード ブロックを識別して、必要なコードを組み立てることができます。開発者は、どのようなアプリケーションを構築するか、ソフトウェアをどのように動作させるかなど、依然として多くの決定を下す必要があります。 では、ローコードはいくつかの決定を自ら行うのでしょうか、それともすべてを開発者が決定するのでしょうか。答えは前者であり、自動化された決定の量はプラットフォームによって異なります。以前のコンパイラでも同様でした。たとえば、開発者がコンパイラを使用してループを記述する場合、開発者がループをマシン コードで実装する方法を指定することはほとんどありません。コンパイラは、コンパイラ設計者が作成したヒューリスティックとアルゴリズムの組み合わせを使用して、マシン コードでループを実装する方法を決定します。 AIはコードを書くことができますか?人工知能コーディングは最近開発されたもので、ローコードよりも高度な方法です。ローコード プラットフォーム上の人間 (つまり、ローコード プラットフォームの設計者) が自動化ロジックを組み立てている場合があります。自動化ロジックは、ユーザーが高レベルの指示を提供した後にトリガーされ、コードを生成します。人工知能は、既存のコードの大規模なコーパスを学習した後、いくつかのアセンブリルールを確立し、コードを生成できます。 ユーザーにとって、AI によって生成されたコードは、ローコード プラットフォームによって生成されたコードと同じように見えるかもしれませんが、このコードは AI によって作成されたローコードです。つまり、AI を使用した新しいローコード プラットフォームの作成が容易になり、プラットフォーム自動化パターンが AI に基づいているということです。 このタイプのプラットフォームでは、さまざまなことが可能です。 アプリケーションを作成する現在、業界内のいくつかの人工知能プロトタイプは、すでに人間の日常言語の指示に基づいて簡単なアプリケーションを作成でき、この分野における人工知能の発展の見通しを示しています。これらの AI は、さまざまな言語で書かれたプログラムの多くの例を使用してトレーニングされますが、単純なレベルでは、単なるコードの自動修正です。より複雑なレベルでは、これは実際には開発者が指定したタスクのコードを記述できるエンジンです。 コードのデバッグ今日のプログラマーが使用する統合開発環境 (IDE) の中には、コード内の単純な構文の問題をすでに特定できるものもあります。新しい AI テクノロジーは、この点でさらに一歩進んでいます。コード ベース、バグ修正、コード更新を分析してトレーニングすることで、一般的なエラー パターンを検出し、新しいコードでこれらのエラーを見つけることができます。 AIコードを書くデータセットを自動化ツールに渡し、適切なタイプのコードを生成させ、データセットから人工知能を構築することが可能になりました。このタイプの AI 自動化は、さまざまな本番 AI 環境でバックエンド コードを生成したり、中高生に AI を使用してコードの書き方を教えたりするなど、特定の学習コンテキストですでに使用されています。 図に示すコンパイラ、人間が設計した自動化、AI が設計した自動化により、プログラミング アシスタント プラットフォームが徐々に拡張されます。新しいテクノロジーの出現により、プログラミング アシスタントの適用範囲が拡大し、プログラミング アシスタントがより幅広いユース ケースをカバーするようになりました。 (写真:AIClub.World) プログラマーはこれからどこへ向かうべきでしょうか?こうした傾向は間違いなく広範囲にわたる影響を及ぼすだろう。多くの開発者は、これによって職を失うことになるのではないかと心配していますが、私はそうは思いません。 コンパイラは、開発者の仕事を奪うのではなく、必要な開発者の数、コードの使用量、作成されるアプリケーションのサイズと範囲を大幅に増加させました。上記の傾向は同じであると予想されます。しかし、それはコードの書き方の性質を根本的に変えることになります (熟練したアセンブリ言語開発者であれば、利用できる仕事は限られていました)。これらの傾向により、人間は実装者ではなく設計者の役割を担うことになります。将来の開発者は、特定の API の使用方法などの詳細を気にすることなく、使いやすさ、デザイン、機能などに自由に集中できるようになります。 もちろん、この傾向がどのように発展していくかはまだ分からない。ソフトウェアの作成は、設計、機能、実装、テスト、変更と保守、DevOps などを組み合わせた複雑な作業です。自動化できるものはすべて、開発者が他の作業に集中できるようにします。人間のタスクは機能性、デザイン、倫理性などのトピックに重点を置き、低レベルの実装は人工知能と自動化によって処理されるという新しい領域に突入していると言えます。 要約するタイトルの質問に戻りますが、人工知能の台頭によりプログラマーは消えてしまうのでしょうか? 著者はそうは思わない。開発者の仕事は、ユーザーのニーズを満たす製品を作成することです。対応するソリューションは、製品が動作する環境(企業が使用するテクノロジー、既存のインフラストラクチャ、チームのスキル、法的制限など)やその他の多くの要因に固有のものである必要があります。そして、AI によって生成されたコードは、これらのほとんどのものを補完します。しかし、AI はコードを書くことの意味を根本的に変えており、今後もコードを書くことの意味を変え続けるだろうと私は信じています。重要なのは、コーディング教育と業界のコーディング慣行にいかに対応していくかです。 ビジネスリーダーやテクノロジーリーダーにとって、チームがこれらの進歩とその活用方法を理解していることを確認することが重要です。ローコードはすでに開発者の生産性向上に役立っています。 AI 生成コードは比較的新しい現象ですが、今後数年間でより一般的になることが期待されます。熟練した開発者であっても、継続的な教育およびトレーニング プログラムを利用することで、最新のテクノロジーを常に把握できるようになります。もし今そのような計画がない場合は、計画を作った方が良いでしょう。 |
<<: 今日のアルゴリズム: 文字列内の隣接する重複をすべて削除する
「不適切なタイミングで車線変更をすることがよくあるのですが、状況を救うためにハンドルを切ろうとすると...
1月17日、新世代の大規模言語モデルShusheng Puyu 2.0(InternLM2)が正式に...
人工知能の開発は、最も急速に成長している技術分野の 1 つです。 Apple、Google、Sams...
近年、セキュリティ業界では、デジタル化された人工知能の学習および認識技術の概念がかなり普及しています...
Farmers Insurance、Tryg、GM Financial はいずれも、パンデミックの...
以下は、テンセント研究所法律研究センター副所長兼主任研究員である蔡雄山氏の講演の記録です。多くの場合...
「機械学習」、「人工知能」、「ディープラーニング」という 3 つの用語は混同されることが多いですが、...
[[274294]] [51CTO.com クイック翻訳] Future Today Researc...
回答者の大多数 (59.4%) は明確なインシデント管理プロセスを導入しており、自動化のレベルはニー...
[51CTO.com からのオリジナル記事] モノのインターネットの普及とセンサーの広範な使用により...