AIによるアプリ開発:効果的なこと、そうでないこと
この記事は、AIがアプリケーション開発者に与える影響を探ります。ChatGPTやGitHub CopilotなどのAIツールは生産性を向上させることができますが、創造性に欠け、幻覚を起こす可能性があるため、人間の開発者は依然として不可欠です。調査によると、組織の33%のみがそのようなツールを使用していますが、実際の使用率はより高い可能性があります。最大の課題は使いやすさではなく、トレーニングです。
AIの影響を最も受けると予測される職業の一つがアプリケーション開発者です。結局のところ、ChatGPTのようなAIモデルは言語操作の専門家であり、コンピュータ言語に基づくプログラミングの仕事が影響を受けるのは当然です。しかし、アプリ開発の役割の変化は、想像とは異なるかもしれません。
AIがプログラミング職業に与える影響についての予測は大きく異なります。一方では開発者の完全な消滅を予測する声もあれば、AIが既存のプログラマーをスーパーエリートに変えると確信する声もあります。真実はその中間にある可能性が高いです。
AIがあなたのプログラミングの仕事を奪うのではと心配しているなら、あなただけではありません。しかし、今日のAIには大きな限界があり、人間の開発者が関与し続ける必要があります。それは創造性であり、ボットにはありません。
「私たちは人々が想像するような真の人工知能(AI)をまだ開発していません」と、カリフォルニア州ミルピタスに本拠を置くAI自動化企業ABBYYのシニアソフトウェア開発者Vaso Peras-Likodrić氏は言います。「私たちは出力を通じて推論を模倣する予測ニューラルネットワークを持っていますが、正確な知能の本質はそれをはるかに超えています。」
今日のAIモデルは、人間が生成した膨大なトレーニングデータに基づいて、次に来る単語やアクションを予測することに非常に優れています。そしてここに問題があります:AIモデルはまだ起こっていないことを知ることができません。
「その結果、これまでに考えられなかった独創的なアイデアがAIの結果に現れる可能性は低いです」と彼は言います。「簡単に言えば、人間の創造性には大きな余地があり、これらのツールはそれを完全に捉えることはできません。」
Peras-Likodrić氏はまた、AIモデルは「主に満足のいく結果を生成する」一方で、幻覚を起こす傾向があるため、人間の手がキーボードに残る理由になると述べています。
「最も先進的なシステムでも、AIの『幻覚』や不正確な出力が発生することがあります」と、GPT-4を使用して文章作成を支援しているPeras-Likodrić氏は言います。「これが、正確性が不可欠なすべての重要なタスクで人間による検証が依然として重要である理由です。例えば、ABBYY製品の検証ステーションは人間の要素の重要性を強調しています。AIツールはプロセスを加速できますが、現在の状態では部分的にしか依存できません。」
ではAIの役割はどこにあるのでしょうか?ABBYYのプラットフォーム処理グループ責任者Vladimir Khil氏によると、現在のAIが優れたパフォーマンスを発揮できるアプリケーション開発活動は他にもたくさんあります。
「コードを分析し、コーディングスタイルや効率的なアルゴリズムに関する提案を提供し、第三者技術に関連するプライバシーの懸念なしに読みにくいコードを検出できるプライベートなAIエンジンがあると想像してください」と彼は言います。「それは革新的な変化をもたらすでしょう!」
AIはテストスクリプトの作成にも役立つ可能性があります。「テストの作成は開発者にとって退屈な場合があります。しかしAIの力を使えば、インターフェースやシナリオを説明するだけで、テストコードを簡単に生成できます」とKhil氏は言います。
O'Reillyによるローコード/ノーコードアプリケーション開発トレンドに関する新しいレポートは、ChatGPTやGitHub Copilotなどのツールの使用状況に光を当てています。これらのツールはプログラマーの間で人気が高まっています。
739の組織を対象とした調査で最も重要な発見は、そのようなツールを使用していると回答したのは33%のみであり、67%が組織で使用されていないと回答したことです。しかしO'Reillyの専門家はこれを信じていません。
「この推定値はCopilotの実際の使用率を過小評価している疑いがあります」とO'ReillyのMike Loukides氏は報告書に書いています。実際の数字は大幅に高い可能性があり、20年前にO'ReillyがCIOを調査した際、オープンソースソフトウェアの使用率が示されたよりもはるかに高かったのと同様です。「彼らはほとんど知らなかった!」とLoukides氏は書いています。「Copilot、ChatGPT、および類似ツールの実際の使用率は33%をはるかに超える可能性があります。仕事でCopilotやChatGPTを使用していなくても、多くのプログラマーがこれらのツールを実験したり、個人プロジェクトで使用したりしていると確信しています。」
興味深いことに、これらのツールは予想されるほど使いやすくはありませんでした。レポートによると、最大の課題はトレーニングであり、34%がトレーニングを最大の課題と回答し、次いで使いやすさが12%でした。
「これらのツールの多くはローコードまたはノーコードであるはずなので、これは驚きでした」とLoukides氏は書いています。「特にGitHub Copilot、Amazon CodeWhisperer、その他のコード生成ツールを考えていますが、ほとんどすべての生産性ツールは生活をシンプルにすると主張しています。少なくとも最初は、それは明らかに真実ではありません。学習曲線があり、それは私たちが予想したよりも急であるようです。」
データは、私たちがまだAI支援プログラミングの非常に初期段階にあることを示唆しています。ChatGPTがリリースされてからわずか6ヶ月、GitHub Copilotは約18ヶ月です。これらのツールを生産的に使用するには、アカウントにサインアップするだけでは不十分だとLoukides氏は言います。
もう一つの興味深い発見は、これらのAIツールがジュニア開発者とシニア開発者のどちらにとってより有益かということでした。調査データは混合しており、13%がシニアプログラマーに役立つと回答し、11%がジュニアプログラマーに役立つと回答しました(11%は誰にも役立たず、生産性をまったく向上させないと回答)。
「一般的な見解では、Copilotはシニアプログラマーにとってより有利であり、解決すべき問題を複雑なプロンプトで説明し、生成されたコードのバグを迅速に発見する能力が高い」とLoukides氏は書いています。「ジュニア開発者は学習に使用し、Stack Overflowで解決策を探したりオンラインドキュメントを検索したりする時間を減らしています。シニア開発者はシステムの設計と構造化を支援し、さらには本番コードの作成にも使用しています。」
まとめると、AIはアプリ開発を変えつつありますが、人間の創造性と判断力が鍵となります。ツールが進化するにつれ、開発者は新しい働き方に適応し、プロンプトエンジニアリングやコードレビューなどのスキルを習得する必要があります。今後、AIと人間の協力が主流になるでしょう。