数日前、LinkedIn で、「テクノロジー企業は GitHub Copilot でプログラマーの生産性を 50% 向上させることを目指す」という大胆な声明を掲載した興味深い見出しを見つけました。状況をさらに奇妙なものにしたのは、投稿の投稿者がプログラマーではなかったことです。
見出しの大胆さにもかかわらず、私はこの問題が興味深い分析と議論につながる可能性があると信じています。
現在一般に利用可能な AI ツールの優れた機能を否定することはできません。プログラミングの分野では、すでに開発者を大幅に支援し、ルーチンを最適化し、生産性を向上させています。適切なツールを使用すると、問題をより速いペースで解決できます。
しかし、プログラミングに慣れていない人にとって、これらの AI ツールはほとんど神秘的であり、あらゆる問題を自動的に迅速に解決できるような印象を与えるかもしれません。しかし、現実は全く異なることを私たちは知っています。
これらのツールによって生み出される熱意は十分に正当なものであり、私について誤解を招く前に、私もその一人であることを知っておいてください。しかし、これらのツールが実際にどのような機能を備えているのかを誰もが完全に理解しているわけではないと思います。
一方で、機械に取って代わられることを恐れるプログラミング初心者もいます。
その一方で、おそらくプログラマーが実行する実際の作業を明確に理解せずに、コストを削減したり生産性を向上させたりするための魔法のようなソリューションを求めている CEO もいます。
「ChatGPT (または Copilot)、Node.js でショーのチケットを販売するページを作成します。バックエンドは 1 秒あたり平均 2,000 のリクエストに対応できるように準備し、障害に強い必要があります。分散されたリクエストを分散するためにロード バランサーをセットアップします。 」
この例は誇張されすぎています。しかし、これは、プログラマーではない人にとっては簡単に見えるものを実装する背後にある複雑さを示しています。
コードを書くことはプログラマーの仕事の一部にすぎず、生成 AI がその点で優れていると確信していますが、それがプログラマーの仕事のすべてではありません。
私たちプログラマーは、1 行のコードも書かずに 1 日のかなりの時間を費やします。まず新機能の要件を理解し、関係者との会話と調整を行い、技術アーキテクチャを設計し、最後にすべての情報をコードに変換する必要があります。
そして、このコードは、既存のコードベースの残りの部分とどのように適合するかを考慮して、コンテキスト内で記述する必要があることを忘れないでください。
私が言いたいのは、これらの AI ツールは非常に便利ではありますが、魔法のような効果をもたらすわけではないということです。しかし、彼らはプログラマーの良いアシスタントになることができます。
ソフトウェア エンジニアリングに対する私の視野を大きく広げた読書の 1 つは、Dave Thomas と Andrew Hunt による古典的な書籍「The Pragmatic Programmer」でした。章の 1 つは、奇妙なデバッグ手法であるラバーダックについて説明しています。
ラバーダック プログラミングの背後にある基本的な考え方は、直面しているコードや問題をラバーダックに説明するかのように大声で説明することです。問題を言語化するか、コードを段階的に説明することで、多くの場合、解決策が見つかったり、問題に対する新しい視点が得られます。
ChatGPT は会話、さらには文脈に沿った会話に優れています。この人工知能はデイブ・トーマスとアンドリュー・ハントのゴム製アヒルの進化形なのだろうか?
ChatGPT をラバー アヒルとして使用して、ChatGPT と統合する Visual Studio Code の拡張機能がすでに存在します。ここで確認できます。
GitHub がその製品に Copilot という名前を選んだことが気に入っています。これはラバー アヒルのコンセプトと一致しています。このツールは、実際のパイロットではなく、副操縦士になることを目的としています。それはプログラマーのアシスタント、つまりゴム製のアヒルです。
このメッセージは、プログラミングのキャリアの将来について不安や懸念を抱いている人たちに向けたものです。リラックスしてください。しかし、それほどリラックスしないでください。厳しい現実として、優れたプログラマを作るのはコードだけではなく、ソフトウェア エンジニアリングの基礎だからです。
70 年代から 80 年代にかけてコンピュータが一般大衆に普及すると、会計や財務の専門家は表計算ソフトウェアに脅威を感じました。数千の行と列を保存でき、計算エラーが発生しないマシン。誰がそれを拒否するでしょうか?
スプレッドシートが昔も今も強力であることは事実であり、「スプレッドシート作成者」の仕事にとって脅威となっていました。しかし、データを解釈し、ビジネスの背景を理解し、会計の概念を適用した人は、スプレッドシートを批判するのではなく、その使い方を確かに知っていました。
プログラマーは単なるコード作成者ではありません。新しいゴム製のアヒルを恐れないでください。代わりにそれを使用してください。この記事をまとめるのに協力してくれた ChatGPT に感謝します。
ここでも公開されています