AI News HubLIVE
站内改写

AIはソフトウェアを悪くしていない、人間が悪くしている

ソフトウェアの品質低下をAIのせいにするのは誤りだと論じる。実際には、開発者は長い間、凡庸さ、無駄、職人技の欠如を受け入れてきた。AIは既存の悪い慣行を加速させるだけである。

記事インテリジェンス

エンジニア上級

要点

  • AI以前からソフトウェアの品質基準は低かった
  • AIは既存の悪い開発習慣を加速させるだけ
  • 真の職人技は迅速な納品文化に取って代わられた

重要な理由

このニュースが重要なのは、AI以前からソフトウェアの品質基準は低かったためです。

技術的影響

モデル選定、推論コスト、プロダクト能力、評価基準に影響する可能性があります。

この記事の著者Raphael Amorimは、AIが敏感なトピックであるため、この記事をホームページにリンクせず、自分の考えを記録するために書いたと述べている。彼はAIが生成する「スロップコード」を好むと思われることを懸念しており、現在の議論は白黒はっきりしすぎていると感じている。

彼は「AIがソフトウェアを悪化させている」という見出しを頻繁に見かけるが、そのたびに反論する。「いいえ、そうではありません。人間が悪化させているのです。AIは、もともと悪いソフトウェアを出荷することに慣れている人々に渡された最新のツールに過ぎません。」彼はAI愛好家ではないが、技術自体は好きで、モデルを構築し、ファインチューニングを行い、論文を読むこともある。ただし、AIに主導権を渡すことには賛成していない。

彼は、AIを非難することは、より深い問題から目をそらす最も簡単な方法だと主張する。その問題はずっと前から存在していた。AIが関数を自動補完できるずっと前から、私たちは悪いソフトウェアを作っていたのだ。その原因は、年々基準を下げ続け、それを進歩と呼んできたことにある。リソースを無駄にするソフトウェアが当たり前になり、そのコストはユーザーのマシン、バッテリー、RAMが負担し、決して「十分良い」と決めた人が負担することはない。

最も明確な例は、多くの開発者が毎日使っているエディタだ。多くの人がデスクトップアプリのふりをしたブラウザでコードを書いている。VS Codeは多くの点で素晴らしいが、テキストファイルを編集するために10GB以上のメモリを消費するブラウザベースのエディタである。テキスト編集というタスクに10GBのメモリを費やすことが当然とされ、誰も疑問に思わない。著者はElectronアプリを使ったことがない。それは原則であって偶然ではない。低品質のソフトウェアを作る側の都合でそれを受け入れるつもりはない。

著者は、制約が現実だった時代を覚えている。64KBが実際に意味を持ち、人々が今日の開発者が信じられないような限られたリソースの中で全体の体験を構築していた時代。それらの制約はソフトウェアを悪くしなかった。むしろ、人々に考えさせ、職人技を強いた。すべてのバイトがその存在価値を証明しなければならなかった。今や、文字通り制約はない。にもかかわらず、その自由を美しいものを作るために使う代わりに、私たちは「RAMを30GB焼き尽くそう」と集団で決めたかのようだ。無駄を祝福しているに等しい。

問題はエディタだけにとどまらない。プログラミング言語を見てみよう。システムプログラミングという、すべてのバイトとサイクルが重要であるべき領域で、肥大化した言語が押し付けられている。人々は肩をすくめて「大丈夫だ」と言う。それは大丈夫ではない。精密さが求められる仕事に、重く、ガベージコレクションを持ち、ランタイムの上にさらにランタイムを重ねたスタックを選び、それを擁護する——それがまさに彼が批判する態度だ。かつてシステムプログラミングを定義していた制約は静かに捨てられ、それは「実用主義」と呼ばれた。

さらに笑ってしまうのは、npmを通じてまったく別の言語で書かれたバイナリをインストールし、IPC呼び出しでラップして、合理的なアーキテクチャであるかのように出荷することだ。別の言語で書かれたネイティブバイナリを引っ張り出し、サブプロセスとして起動し、パイプ経由で通信し、それを「パッケージ」と呼ぶ。レイヤーが積み重なり、それぞれがメモリと複雑さのコストを払い、誰も自分の快適ゾーンを離れなくて済むようにしている。動くのは確かだ。しかし「動くこと」は優れたエンジニアリングの基準ではなかった。それは最低限のことであり、私たちはそれを目標に変えてしまった。

AIが基準を下げたのではない。基準はすでに床にあった。AIは床に到達するのを速くしただけだ。開発者がリソース使用量を気にせず、所有権を気にせず、自分が何を出荷しているかを理解しようとしなければ、AIは彼らを悪くしない。彼らはすでにその状態だった。AIは最後の摩擦を取り除いただけだ。スロップコードは常に来る運命だった。AIはそれに速い配送トラックを与えただけだ。

スロップコードの本当の源泉は、人々が優れたエンジニアリングの感覚を失ったこと、あるいはもっと正確には、単に気にしなくなったことにある。すべてが出荷することに重点が置かれ、工作ではなく時間が重視される。チケットを閉じて次へ進む。唯一の質問が「終わったか?」であり、「良いか?」が決して問われない場合、スロップコードは偶然ではない。それは速度を報い、工作を無視するシステムの予測可能な出力だ。AIはそのインセンティブを発明したのではなく、美しく養っているだけだ。

人々がAI生成コードを指さして「ソフトウェアが悪くなっている」と言うとき、著者は聞きたい:「何と比べて悪いのか?」10GBのテキストエディタと比べて?メッセージを表示するのに1GBのメモリが必要なチャットアプリと比べて?単にウィンドウをかぶせたウェブサイトであるデスクトップアプリと比べて?私たちはそれらすべてを受け入れ、多くを称賛してきた。人間に代わってモデルが悪いコードを書いた瞬間に突然良心を持ち出すのは偽善だ。

正直な立場はより難しい。品質が何年もオプションであり、職人技を便利さと交換してきたことを認めること。AIは私たちがすでに大切にしていたものを映し出す鏡に過ぎない。品質を気にしない文化にツールを与えれば、その文化がすでに生み出しているもののより速いバージョンが得られる。だから、AIはソフトウェアを悪くしていない。私たちが悪くしているのだ。そして、それを認めたとき、初めてより良いソフトウェアを構築し始めることができる。