ホームページ > 記事 > テクノロジー周辺機器 > プログラミングの「Devin AI時代」、ソフトウェア開発者の喜びと悩み
著者|編集者: Keith Pitt
|作成者: Yifeng
|51CTO テクノロジー スタック (WeChat ID: blog51cto)
この記事の著者である Keith Pitt は、ソフトウェア開発会社 Buildkite の創設者兼 CEO です。 2013 年に、テクノロジー業界に継続的インテグレーションおよび継続的デリバリー (CI/CD) プラットフォームを提供するために、もう 1 人のソフトウェア エンジニアであるティム ルーカスとともに会社を設立し、最近では OneVentures と AirTree からの支援を受け、シリーズ B で 2,100 万ドルを共同主導しました。融資。
プログラミング歴 20 年のベテランであり、ソフトウェア開発者にサービスを提供する会社の CEO であるキース ピットは、インテリジェントな人工知能、AI プログラミング ツールを作成するというアイデアを早くから取り入れており、最終的にはこれによって固有のレベルのタイミング予測におけるほとんどのソフトウェア開発スキルに対して懐疑的です。
彼は記事の中で次のように述べています。「まだ疑問はありますが、日々の開発作業で生成 AI と対話した経験により、視野を広げ、何が可能だと思うかを考え始めました。AI は、比較的基本的な方法でソフトウェア開発を変えることには、良い面と悪い面の両方があります。」
開発者は、文法や句読点などの詳細に時間を費やしすぎると、消えてしまう可能性があります (またそうすべきです)。開発者は、マニュアルを調べたり、コード交換からコード スニペットをつなぎ合わせたりする必要がなくなり、代わりに、目的の結果を記述することで、完全にフォーマットされたコードの回答を得ることができます。大規模言語モデル (LLM) は、既存のコードのタイプミス、句読点エラー、開発者にとって頭痛の種となるその他の詳細を検査することもできます。
Spring、Express.js、Django などのソフトウェア フレームワークを使用して開発する場合、AI プログラミング ツールはソフトウェア開発の共通部分を抽象化し、一貫した設定をガイドラインとして設定します。共通の機能を提供する事前に作成されたコードだけでなく、生産性を大幅に向上させることができます。生成された AI は、定型コードを作成し、反復的なタスクを自動化し、コードの最適化を提案することで、ツールの価値を実証します。
AI は、特定のプロジェクトのフレームワーク コンポーネントをカスタマイズするのにも役立ちます。
多くの開発者の専門知識は、特定のプログラミング言語の習熟度にかかっています。 AI があらゆる言語でコードを生成できるようになると、Python や Ruby に習熟していることはそれほど重要ではなくなります。同様に、テストやコードの最適化などの専門的なバックエンド スキルに関連するタスクは、生成 AI モデルにすぐに転送されます。
最も価値のあるスキルは、魅力的なユーザー インターフェイスの構築、ユーザーのニーズをドキュメントに変換する、顧客をサポートする新しい方法の発明など、AI が苦手とするスキルです。ソフトウェアの「詩人」、つまりコードによって可能になる素晴らしいアイデアを夢想する人たちが中心舞台に立つことになります。
生成 AI は当然ながらソフトウェア テストに適しています。開発者がコードを記述すると、AI が必要な数のテスト スクリプトを作成できます。最近の IDC の調査では、ソフトウェアの品質保証とセキュリティ テストが AI プログラミングの最も期待される利点であり、他の選択肢をはるかに上回っていることがわかりました。これにより、DevOps の継続的な統合/導入の実践が混乱し、多くのテスト専門家が新しい仕事分野を探すことになります。
#現在のローコード/ノーコード開発ツールはすでに非常に優れており、生成 AI はそれらを新たな高みに押し上げます。ローコード/ノーコード ツールは高度に自動化されていますが、それでも人間がホワイトボード上でワークフローをつなぎ合わせてソフトウェアに変換する必要があります。
将来的には、モデルに手描きのワークフロー スケッチを与えて、必要なコードを数秒で取得できるようになります。
AI は将来性を秘めていますが、全能であると見なされるべきではありません。
モデルはテストを迅速に生成できるため、必要以上のテストを実行する可能性があります。過剰テストはソフトウェア開発、特にチームが生成するテストの数によってパフォーマンスを測定する組織においてよくある問題です。重複したテストや不要なテストを実行しすぎると、プロジェクトの速度が低下し、後のプロセスでボトルネックが発生する可能性があります。
しかし、AI がテストを削除するタイミングを推奨できるようになれば、開発者は大きな解放を受けることになるでしょう。生成 AI のこのビジョンは私を将来に興奮させてくれます。
「私はいつも怠け者を選んで大変な仕事をするのです。なぜなら彼はそれを行うのに簡単な方法を見つけるからです。」この文は、しばしば誤ってビル・ゲイツの言葉であると考えられています。この文の出所は明らかではありませんが、この文自体には一定の真実があります。怠け者は常に重労働を避けるための近道を探しており、AI は優れた解決策を提供します。
生成 AI は怠惰な開発者にとって中毒性があり、肥大化して非効率でパフォーマンスの悪いコードの作成につながる可能性があります。さらに恐ろしいのは、AI プログラミング ツールが、優秀な開発者が誇るイノベーションを抑制してしまう可能性があることです。生成 AI は既存のパターンとデータに基づいてコーディングされるため、「コンフォート ゾーン」から出ることを望まない開発者のイノベーションの可能性がさらに制限される可能性があります。
生成 AI の性能は、モデルのトレーニングに使用されるデータによって決まります。
低品質のデータ、トレーニングのショートカット、不十分なヒント エンジニアリングにより、AI によって生成されたコードが品質基準を満たさなかったり、バグが多かったり、仕事を完了できなかったりする可能性があります。これにより、組織は AI プログラミング ツールの品質に対する信頼を失い、その潜在的な利点を逃す可能性があります。
一部の注目を集める専門家も同様の主張をしていますが、そのような結論を裏付ける歴史的な前例はありません。高級言語からオブジェクト指向、フレームワークに至るまで、技術の進歩により開発者の生産性は着実に向上していますが、需要は高まるばかりです。
ジェネレーティブ AI は、ローエンドの基本的なコーディング スキルの市場を切り崩す可能性がありますが、より大きな影響は、業界をバリュー チェーンの上位に押し上げて、LLM が現在苦手なこと、つまり革新を行うことです。
生成 AI モデルは、未知で作成を待っているものではなく、既知のものに基づいてトレーニングされることに注意してください。私は、機械が革新的なユーザー インターフェイスを設計したり、Uber をすぐに考案したりするとは思っていません。
しかし、開発者にとって、キャリアの中でそのような爆発的な生産性を経験するのは難しいかもしれません。開発者は、若い頃のようにマシンと戦おうとするのではなく、流れに身を任せて波に乗るべきです。 AI プログラミングは人々を多くの退屈な作業から解放するので、誰にとっても刺激的なはずです。特定の作業タスクがなくなる可能性があるというリスクは、学習して行動を起こす動機に変えられるべきです。ビジネス要件をエレガントでパフォーマンスの高いソフトウェアに変換できる質の高い開発者は、常に高い需要があります。
AIGC の詳細については、次のサイトをご覧ください:
51CTO AI.x コミュニティ
https://www.51cto.com/aigc/
以上がプログラミングの「Devin AI時代」、ソフトウェア開発者の喜びと悩みの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。