Fly.ioの新たな論考が、AIによるコーディングへの懐疑は自動的に知的に無難な立場となる、という考えを批判している。著者は、LLMを一時的な流行として退けたい人がいる理由は理解できるとしながらも、最も強い反論の多くは、より古い形の技術に向けられていると主張する。より大きな主張は、議論の焦点が、チャットボットにコードを書けるかという問いから、エージェントが現実のソフトウェアシステム内でどのように動作できるかという問いへ移ったというものだ。

この記事は、現在のコーディングツールが実際にどう使われているかを大きな論拠としている。著者によれば、現在、LLMを本格的に活用するプログラマーは、チャット欄にプロンプトを貼り付けて、うまくいくことを願っているわけではない。彼らは、自らコードベースを調べ、ファイルを直接作成し、ツールを動かし、コードをコンパイルし、テストを実行し、何かが失敗すれば反復作業を行えるエージェントを使っている。この捉え方では、モデル自体は、より大きなループを構成する一部分にすぎない。周囲の自動化、ビルドシステム、テストハーネスは、少なくともモデルの選択と同じくらい重要だ。

この論考はさらに、効果的なコーディングエージェントは、実現不可能なほど高度な機械だという考えに反論している。著者は、そのようなシステムの有用な部分は、主にツール、オーケストレーション、緊密なフィードバックループという通常のソフトウェアエンジニアリングで成り立っていると論じる。著者の説明では、その作業の多くは、最先端モデルがどれほど進歩したかよりも、開発者がビルドやテストをどう構成するかに関わっている。これは、現在世代のコーディングエージェントをシステムコードではなく魔法として扱う人々への異議申し立てを意図している。

著者は、LLMが得意とすることについて、より限定的な二つ目の論点も示している。この投稿によると、LLMは退屈なコードの大部分を書くことができ、開発者が検索しなければならない事柄の数を減らし、疲れることなく作業を続けられる。LLMが人間のエンジニアと同じようにソフトウェアを理解しているという主張ではなく、日常的で反復的な作業を十分うまくこなせるため、仕事の経済性を変えられるという主張だ。著者は、日々のプログラミングの大部分は、まさに機械が最も得意とする類いの退屈な作業であるため、この区別が重要だと述べている。

この論考は対象範囲を慎重に限定している。扱っているのはソフトウェア開発であり、美術、音楽、文章ではない。著者は、そうした分野については懐疑派の主張をより広く認める用意があると述べる。しかしコードについては、熱意ではなく経験に基づいて論じており、C、C++、Ruby、Python、カーネル関連の仕事、Go、Rustにまたがる長い経歴を列挙している。その結果、これは応援一辺倒の投稿というよりも、経験豊富な開発者に対し、6カ月前に試したツールではなく現在のツールを念頭に置いて、問いを改めて検討するよう求めるものとなっている。

著者は、多くの批判者が犯す誤りは、プロンプトを入力して貼り付ける段階で技術を固定して考えることだと主張する。エージェントがリポジトリを直接操作できるようになると、問いは、モデルが質問に答えられるかどうかから、エンジニアリングのループに参加できるかどうかへと変わる。この論考が経験豊富な開発者に向き合ってほしいのは、その主張だ。読者に対し、ツールについての古い記憶ではなく現在のツールで検証するよう求めているのも、この点である。