- LLMコード生成ツールに対する業界の熱狂的な受容について、ソフトウェア開発における思考の重要性を強調する文章
- 自動生成コードは**非決定的(non-deterministic)**であり、内部動作が不透明なため、毎回同じ結果を保証する機械化とは本質的に異なる
- LLMは既存の低品質なコードを学習して同じミスを繰り返し、それを再び学習する**「ヒューマン・センティピード認識論(human centipede epistemology)」**の問題がある
- コード生成をエージェントに委ねると、PRレビュー時の共有コンテキストと責任の所在が弱まり、ソフトウェア品質に悪影響を及ぼす
- LLMはプロトタイピングなど限定的な用途では有用だが、開発者が思考そのものを外注することは危険であり、理解なしに保守はできない
LLMコード生成への居心地の悪さ
- 長年にわたり業界の最新動向を追い、CSSやJSの新機能を同僚と共有してきた経験があるにもかかわらず、LLMベースのコード生成が急速に広がる中で、取り残されるような不安を感じている
- CopilotとClaudeを**「spicy autocomplete」**(刺激の強いオートコンプリート)やデバッグ補助ツールとして使ってきたが、少しでも複雑な作業をさせると結果はひどい
- 十分なコンテキストを与える必要があるが、多すぎると過負荷になり、「あなたは分散システムの専門家です」のようにLLMの自我をなだめる長いプロンプトを書かなければならない状況
- プロンプトを磨く時間よりも、自分でコードを書くことのほうが速い場合が多い
- エンジニアたちがコーディングという楽しい作業を捨て、レビューという退屈な作業だけを残そうとしている現象に疑問を抱いている
「産業革命の再現」という主張への反論
- 産業革命が気候変動に寄与したように、AIデータセンターの莫大なエネルギー消費にも似たパターンが見られる
- すべての電力が化石燃料由来ではないにせよ、「エビのイエス」の画像生成のようなことに膨大な資源が浪費されている
- 機械化は商品を安価にして広く普及させたが、品質低下も招き、SHEINでコーヒー1杯より安いズボンが買える現実につながっている
- 熟練労働の衰退、低賃金国への工場移転、労働者搾取によってさらに悪化した
- 生成コードはファストファッションに似ている。見た目はよくても時間が経てば穴だらけになり、しばしば他人のコードを無断借用し、環境にも悪影響を与える
- 核心的な違いは、機械化が毎回同じ結果を生み出し、問題が起きたときに内部を調べられたのに対し、LLMの出力は非決定的で、内部動作が不透明なことだ
- 毎回違う結果を出し、**幻覚(hallucination)**まで混じる機械化プロセスは役に立たない
「新しい抽象化レイヤー」という主張への反論
- JavaやGoを使うことでアセンブリを学ぶ必要がなくなったのは事実であり、ガベージコレクションやメモリ割り当てもランタイムが処理してくれる
- しかし、システムアーキテクチャ、クリティカルパスへの影響、保守性とデプロイ速度のトレードオフ、ブラウザ互換性、アクセシビリティ、セキュリティ、パフォーマンスなどは、依然として開発者が自ら考えるべき領域だ
- LLMが最も大きな害を及ぼすのは、エンジニアがソフトウェア開発に必要な思考そのものを外注してしまうときだ
- LLMには推論能力がないため、開発者も考えずLLMも考えないなら、誰も考えていない状態になる
- Horizonスキャンダル の事例では、Post Officeのソフトウェアバグによって無実の職員たちが収監され、13人が自殺した
- ソフトウェアに対する**説明責任(accountability)**は、かつてないほど重要である
低品質なコードが根本問題
- 人間の開発者も、アクセシビリティが低く、性能が悪く、JavaScriptに過度に依存するコードを書いている
- LLMはこうした低品質コードを学習データとして訓練され(明示的な同意なしに)、同じミスを繰り返し出力する
- LLMが生成した低品質コードを、また別のLLMが学習する循環構造、いわゆる**「ヒューマン・センティピード認識論(human centipede epistemology)」**
- 支援技術の利用者、劣悪なインターネット環境の利用者、顔認識ソフトウェアの人種差別の被害者などを考えると、現在のソフトウェア品質は十分ではない
- 人間として学び改善する代わりに、ミスを思考のないアルゴリズムに外注している状況だ
PRレビューと共有コンテキストの弱体化
- FFConfでのJessica RoseとEda Erenの発表の核心メッセージは、**「自分で書いていないコードは理解していないコードであり、理解していないコードは保守できない」**ということ
- 同僚が書いたPRには、ある程度の信頼と考える過程が含まれているが、LLM生成のPRにはその保証がない
- オープンソースのメンテナーたちは、低品質なLLM生成PRの急増を経験している
- 一部企業ではSlackでClaudeにチャットでコード変更を依頼し、自動生成されたPRを同じ人物が承認する方式を使っている
- この場合、責任がレビューアー1人にだけ集中し、二組の目のうち一方を失うことになる
- チーム内の**共有コンテキスト(shared context)**も減少する
- PRレビューはバグ確認だけでなく、コードと変更内容への理解を共有するプロセスでもある
進歩への反対ではなく誇大宣伝への反対
- LLMそのものに反対しているのではなく、「人工知能」というブランディングに反対している
- LLMは知的ではなく、機械学習の一形態にすぎない
- 「生成AI」は、人々が過剰な期待を寄せる非常によくできたマルコフ連鎖にすぎない
- プロトタイプやワイヤーフレーム、インタラクティブなデモを素早く作る用途では合理的だ
- 問題は、「バイブコーディング(vibe code)」でプロダクションレベルのソフトウェアを作れると信じたり、コーディングの思考過程そのものを委任したりすることだ
- ZedブログのMikayla Makiの見解では、エージェントは信頼していない外部コントリビューターのように扱い、やり方がすでに分かっている作業にだけ使うべきであり、コードを理解することが必須だとする
- **「spicy autocomplete」**は今後も使うが、思考を外注はしないし、この仕事を最初に好きになった理由を思い出すべきだ
2件のコメント
> 自動生成コードは非決定的(non-deterministic)
> 「人工知能」というブランディングには反対
本当にいちばん重要な言葉です..
GeekNewsでも電卓やカメラにたとえる方がいましたが、開発者たちもこういう認識なら一般の人たちはどうなのか、深刻に思えます。
Hacker Newsの意見
AIが「心の自転車」ではなく、大企業の利益最大化のための商品としてしか認識されていない限り、現在のAIのあり方を正当化するのは難しいと思う
真の学習プロセスなしにデータをかき集めて加工し、返してくる構造は、人間の精神的成長に不利だ
結局は収益モデルを作ることが核心であり、そうでなければ高品質なLLMを維持できない
私はもうほとんど手動編集をしない。Claude CodeにチケットURLだけ投げても、たいてい一発で解決する
このやり方に投資するチームは、そうでないチームよりはるかに生産性が高くなると信じている
LLMは人によってまったく異なる体験を与える技術で、プロンプトの自由度が非常に大きい
特定のデザインを実装するときは、むしろ自分で書いたほうが速い
「自分が書いていないコードは理解できない」という話は現実的ではない
コードレビューの目的は作者の身元ではなく、システム的な信頼性の確保だ
人間でもAIでも、ましてやゴールデン・レトリバーが打ったものであっても関係ない
ただ、AIが作ったPRをわざわざ理解するのに時間を使うくらいなら、いっそ自分でプロンプトを投げて結果を得るほうがましだと感じる
LLMに依存すると、開発者はプロジェクト構造を学ぶ機会を失い、結局システムをブラックボックスとして扱うことになる
こうした流れは開発者を「プロンプト・キディー (prompt kiddie)」にしてしまう変化だ
「プロンプトを磨くのに時間を無駄にするくらいなら、自分でコードを書く」という話に共感する
問題は「生成」そのものではなく、非構造的な生成だ
つまり、即興のプロンプトではなく、明確な**スキル単位の構成(composition)**としてアプローチすべきだ
「AIに『あなたは分散システムの専門家だ』と言わなければならない」というのはGPT-3時代の話だ
今はファインチューニングと後処理手法のおかげで、こうしたロールベースのプロンプトは必要ない
LLMコード生成ブームを見ていて、「自分は取り残されるのではないか」と不安だった
CopilotとClaudeは自動補完アシスタントとしてしか使ってこなかったが、複雑なコードは依然としてひどかった
ところが最近は、エージェントベースのツールがコードベースを検索し、Webで資料を探し、自分でコンテキストを調整する
結局は「技術をちゃんと理解しないまま文句を言っている人たち」の問題だ
実際にはプロンプト技術の不足である可能性が高い
周辺ツールが検索と実行を自動化してくれるおかげで、あたかも「考えているように」見えるだけだ
結局これは自動化であって知能ではない
最近のHNの多くの投稿やコメントは、LLMが書いたように感じられる
新しさがなく、ほとんどが表面的な一般化を繰り返している
最近のニュースを見ると、AIはまだ十分に成熟していない
例: MicrosoftのCopilot売上目標引き下げと
Moltbookのセキュリティ問題 の事例
結局ほとんどの人はAIを信頼していない
AIはアイデア探索やボイラープレート作成には有用だが、依然として思考力が核心だ
AIは人間の思考を代行してくれる最大の誘惑だが、長期的には思考の筋肉を弱める危険がある
一定期間使ったあとで再び手でコーディングしてみれば、流暢さが落ちていることを感じるはずだ
CopilotではなくClaudeのほうが優れているのかもしれないし、Moltbookのセキュリティ問題は初期サービスの宿命かもしれない
結局はAI導入企業と非導入企業の生存率として結果が現れるだろう
私も以前は「AIは間抜けなブラックボックス」だと思っていたが、ここ6か月ほどで見方が完全に変わった
きちんと学べば驚くような結果を出せる
今はAIを増幅器として見ており、自分の能力を拡張するツールとして使っている