細部の消滅を悲しむ

コーダーであってエンジニアではないと自称する下層プログラマーが、LLMによって業界が細部を気にしなくなる仕組みと、それによる職業上の困難を語る。

日本語
コピー

細部が消えていくことへの悼辞

2026年9月24日

この業界の現状を前に、自分がどこに立っているのかをずっと考えている。これはブログ記事というより日記に近い。すまない。こういうものは普段公開しないが、同じ思いを抱えている人がいて、少しでも孤独でなく感じられたらと思って出してみる。意見はすべて個人のものだ。


「vibecoding」という言葉が生まれ、業界が主にプログラマーのアーキテクチャ設計能力を見るようになる前、私は engineer ではなく coder と自称することに誇りを持っていた。私の関心がどこにあるかが表れていると思う。細部、パフォーマンス最適化、言語のあらゆる仕組みへの習熟、Java 的な抽象化をいじることではなく物事を明確に説明する力。もちろん、それはある種の誤解でもあったが、自分の長所が活きる場が消えつつあり、業界が私の頭では動かないモードへ移行していることには気づかずにいられない。


私が初めてコンピュータに触れたのは、『トロン:レガシー』の回想シーンを見たときだった。10歳の私は、あの行が何を意味するのかどうしても知りたくて、プログラミングを学ぶ苦行を始めた。実用性はどうでもよかった。役に立つプログラムを書くことにも、コードを書くこと自体にも興味はなかった。ただこの機械がどう動くのかを理解したかった。何年も学び、主に Linux を使い、ようやく理解できた。その後、ネットワークや暗号、Rust など別の分野を専攻しようとしたが、いつも機械そのものに引き戻された。その機械を味わい、その気性を尊重することを覚えた。おもちゃの OS を書き、クロックサイクルを数え、機械語を手で書く。そういうことが楽しかった。巧妙なハックを思いつくたびに誇らしかった。漁師が竿と一体になったように感じるのと同じで、私は機械を自分の延長として扱っていた。これを八年やってきて、もうずっと前から力尽きている。CPU を替えるのをためらう。ARM64 を x86 ほど理解していないからで、それが素直に居心地悪い。Python のコードのメモリ確保が気になる。自分のマシンで動いている Java コードの JIT 逆アセンブリを確認する方法を知らないことが、ひどく引っかかる。今日、注釈付きの『The Story of Mel』を読んで、いったい誰が「十六進数」の説明を必要とするのか、と思っている自分に気づいた。

自分を、ある専門分野に精通したプログラマーだとは思わない。自分は純粋に低レイヤーのコーダー、いや、細部にこだわる人間にすぎないと思っている。必要ならウェブサイトくらい作れるが、低レイヤーソフトウェアを書くときのように一か月連続で打ち込むことはできない。ただ、物理学を同じやり方で調べるのはまったく問題ない。細部へのこだわりは技術に限らない。主題をトップダウンで学ぶことができず、情報が欠けているのも耐えられない。誰かに概念を説明されても、自分で一から作り直して「腑に落ちる」まで理解できない。学生の頃は、公理を何時間もかけて自分の直感に合わせて調整し、必要なときにその上に定理を積み上げ、その定理も直感になるまで繰り返していた。(本当に、ガールフレンドと過ごす時間の多くは定理の証明だった。)もっと現実的な話では、背後にある化学を理解しないと料理を試すことすらできない。要するに、完全に理解していないものは使えない。腹に落ちていないものでは仕事ができない。これは日常の活動では本当に足を引っ張るが、しばらくの間、ソフトウェアの世界だけがこの苦闘からの唯一の息抜きだった。理解していない人でさえ、少なくとも低レイヤーでの私の仕事は尊重してくれた。コンパイラの小さな最適化は積み重なるものだとか、JSON パーサーを速く動かすために誰かがアセンブリを書かねばならないとか、プログラムは Electron のあれほどひどい代物である必要はない、という共通認識があった。ソフトウェア開発の中心ではないかもしれないが、時間を割く価値のある程度には重要だった。それ以外では、他人の issue を一目見てどこが問題か分かるといった理解で評判を築いてきた。


それが強力な LLM の登場まで続いた。業界の圧倒的多数の consensus は、LLM が「細部を気にかける」という消耗的で疲れる工程を過去のものにし、開発者は抽象と大きなプロジェクトに集中できるようにする、というものだ。彼らにとっては良いことだろうが、誇張ではなく、LLM は私からすべてを奪った。誰でも遅いコードを LLM に投げれば、ホットループを自動で見つけ、ネットのどこかで見つけた技を使ってベクトル化してくれるなら、それを見るために人を雇う意味はほとんどない。LLM がコードを分析し、ポインタの由来を説明し、理解できるまでずっと付き合ってくれるなら、専門知識の価値は大きく下がる。私は LLM をそういうふうには使えない。プロジェクトのソースファイル数、あるいは少なくとも全体のアーキテクチャが、頭に収まる範囲を超えると、ほぼ生理的に無理で、範囲を広げても何の得もない。前回 LLM で趣味のプロジェクトを作ろうとして、LLM のほうが、私がほぼ誰に見せるよりもそのプロジェクトをよく知るようになる、と気づいた。理解されない天才でいることには甘んじられる。だが、人と話す価値もないと見なされるだけでなく、あしらわれて LLM に回されるのは、あまりに侮辱的だ。それ以来、自分が大事にしていることは LLM を使わないと誓った。一年のうちに、計画された未来がある状態から、障害者手当を申請すべきか心配する状態になった。LLM 駆動の開発は、私がプログラミングで唯一耐えられた部分をすべて最適化で消し去り、雇用市場はこれが未来だと決めつけ、私が人生でずっと存在すると思っていたあの選択肢は消えた。まともな代替など最初からなかったのだと分かった。

これが今の私の立場だ。LLM を両手を広げて受け入れた大企業以外で、私がやるような仕事を気にかける余力のある会社はほとんどない。Linux には例外になるチャンスがあったが、ならなかった。趣味はまだあるが、請求書は払えない。レトロコンピューティングとパフォーマンス最適化は、体験ではなく承認を追いかける LLM 信奉者たちにますます侵食され、楽しみは少しずつ抜けていく。

出典: purplesyringa.moe← ホームへ戻る