世界を動かす技術を、日本語で。

コーディングエージェントが私が使っていたすべてのフレームワークを置き換えた

概要

  • 自動化プログラミング の進化によるソフトウェア開発の大変革
  • フレームワーク依存 から脱却し、本質的なエンジニアリングへの回帰
  • 自動化ツールやエージェント が手作業や冗長な作業を大幅に削減
  • 無駄な複雑性 の排除と本当に重要な課題への集中
  • 本質的な自由と創造性 を取り戻すための提言

ソフトウェアエンジニアリングの再定義と自動化の本質

  • 自分自身の言葉で語られていない現実 の指摘
  • Next.jsテンプレートのような表面的な構築 ではなく、ネットワーク設定から価格決定まで一貫したプロダクト開発
  • 最先端モデルやコーディングエージェント を日々活用する実践
  • 2025年12月以降、状況が劇的に改善した体感
  • Antirezの「automated programming」 という表現への共感
  • 歴史的な自動化革命 と同様の変化
  • 設計や意思決定の重要性 は変わらず、単純作業の手間だけが消えた現状
  • 環境を適切に整えた上でのツールやモデルの有効性
  • 自分の経験を活かしつつ、細部までコントロール可能 な新しい開発スタイル
  • 必要なツールを即座に構築 できる自動化プログラミングの強み
  • 創造性に集中できる環境 の実現

フレームワーク依存の問題点

  • 中間層(ミドルワーク)の無駄 とその排除の必要性
  • ソフトウェアエンジニアリングに蔓延するフレームワークやライブラリ の弊害
  • 本質的でない抽象化 が新たな問題を生み出している現実
  • 業界全体が複雑性の本質を見誤った歴史
  • フレームワークが解決する三つの問題
    • 「単純化」 :自分で設計することへの恐れから他人の設計を無批判に受け入れる傾向
    • 「自動化」 :ボイラープレート作業の削減という唯一納得できる点
    • 「労働コスト」 :企業側の都合でエンジニアを交換可能な「歯車」にする構造
  • 本来のソフトウェアエンジニアリング への回帰の必要性

自動化と本質的複雑性への集中

  • 自動化とボイラープレート作業のコスト低下
  • 同じコードを二度と書かない開発体験
  • 必要なツールを即時に作成できる柔軟性
  • 複雑化するまでシンプルな構成で十分 な現実
    • Makefile一つで大抵の用途をカバー
  • 本当に直面している課題にのみ対応するエンジニアリング
  • Bashのような古典的ツール の再評価
  • エージェントがBashを活用する流れの必然性

フレームワーク依存の隠れたコスト

  • 大半のユースケースで不要なフレームワークやライブラリの存在
  • 運用コスト(アップデート・脆弱性対応) の増大
  • 設計選択の自由度への目に見えないコスト
  • 長年支払い続けてきた「自由の喪失」

本質的エンジニアリングへの回帰と提言

  • 最大のチャンスを逃す危険性 への警鐘
  • Google, Meta, Vercelなどハイパースケーラー依存の問題
  • 「自分の設計者・思考者」になることの重要性
  • ツールとモデルはすでに揃っている現実
  • 旧来の枠組みからの脱却と自分だけのものづくりの勧め

まとめ

  • 自動化プログラミングとAIエージェント の進化による本質的なソフトウェア開発への回帰
  • フレームワーク依存から脱却し、無駄な複雑性を排除
  • 本当に価値ある課題に集中できる環境 の実現
  • 創造性と自由を最大化する新時代のエンジニアリング

Hackerたちの意見

こういう記事で「コードを書く苦痛」について語られるのが不思議だな。自分にとっては、そこが一番簡単な部分なんだけど。まあ、これを見てると、もしトールキンが今の時代にいて、AIを使って執筆を手伝ってもらったらどうなるんだろうって考えちゃう。「クロード、フロドとサムがゴクリの信頼性について口論してる段落を生成して。フロドはゴクリを擁護して、サムはその味方で。」とか。「それを修正して、サムはもっと厳しく、フロドは頑固にして。」なんてね。結局、そんなことしてるくらいなら、さっさと本を書いた方がいいんじゃないかって思っちゃう。

最後の一文、まさに自分の考えを言い当ててる。クラウドを自分の作業フローに取り入れようとしてみたけど、結局、自分で最初から全部書いてたら、同じ時間でプロジェクトを終わらせられたし、内容ももっと理解できてたと思う。AIに手伝ってもらった部分が難しいところだと、逆に理解が奪われちゃうんだよね。そこが一番理解が必要な部分なのに!

あなたの意見に賛成だよ。自分が気にしてるのは、むしろ面倒な部分なんだ。面倒さが技術の価値の一部だって言えるかもしれないし、それには真実もある。でも、結局はトレードオフだよね。節約した時間で何ができるか、他のことから得られる価値はどれくらいかって考えちゃう。

こういう記事で「コードを書く苦痛」について語られるのが不思議だな。 AIに関するコメント欄とvim/emacsのコメント欄を比べるのも変だと思う。vim/emacsのコメントでは、コードを書くのにほとんど時間がかからないってみんな言ってるし、考えることに時間を使ってるから、早くタイプすることを学ぶ価値がないって言ってる。一方でAIのコメントでは、AIがコードを書いてくれるから、もっと考える時間が増えるって言ってる。もしコードを書くのがそもそも簡単な部分で、早くタイプすることを学ぶ価値がないなら、AIはどれだけ価値を加えてるんだろう?これらは別の人たちかもしれないけど、かなりの重なりがあるんじゃないかって思う。

人それぞれだよね。絵を描く人もいれば、彫刻を作る人もいる。アンディ・ウォーホルは素晴らしいデッサンの技術を持ってたけど、彼の名声はその絵から来たわけじゃない。彼は他の人のアートをスクリーンプリントして有名になったんだ。しかも、そのアートはしばしば彼のものじゃなかった。彼はその技術を開拓しただけで、新しいからみんながワクワクしたんだよね。今では彼は世代を代表するアーティストと見なされている。僕は、すべてのことにおいて、出力の質とそれがどう受け取られるかが重要で、出力を生み出す過程はあまり関係ないと思ってる。もしLLMを使って多くの人が好きなものを書いたら、それはアートを生み出したことになるし、君は素晴らしいアーティストだよ。もしトールキンが今の時代に生まれていたら、現代のツールを使いながらも素晴らしいアートを作り続けていただろうと思う。彼の創造的な頭脳と仕事への姿勢が、創造プロセスで一番大事な要素だからね。どんなLLMもマスター作品に近い質を提供することはないと思うけど、創造的な人たちにとって、厳しくて報われない「まずは存在させる」段階での貴重なツールにはなると思う。天才は「後で良くできる」段階でいつも通り輝くからね。

AIツールが好きな同僚と話してたんだけど、彼はコードを書くよりも、知らないコードを読む方が得意だって言ってた。これってどれだけその違いに関係してるんだろう?それが本当かどうかも気になるし、彼らはその関数が名前の通りに動くって信じてるだけなのかもしれないね。僕も君と同じように、自分が書いたコードの方が、全く知らないコードをレビューするよりも安心感があると思う。制限は高レベルのデザインにあって、どれだけ早くコードをファイルに投げられるかじゃないんだよね。これは認知の違いかもしれないし、もしかしたら何かがどう動くかを正確に知りたいっていう欲求が強いのかも。「なんとなく動いてるっぽいから大丈夫」っていうのを受け入れるのは難しいよね。

トールキンの本はアートだけど、プログラムは何かをするためのものだよね。今、一部のプログラムはアートと見なされることもある(例えば、コードゴルフ)し、作成者がアートだと思うこともある。僕は自分のプログラムやコードは、コンピュータにやってほしいことをさせる手段に過ぎないと思ってるし、ちゃんと動くようにする簡単な方法もある。> フロドとサムがゴクリの信頼性について議論している。フロドはゴクリを擁護すべきで、サムは彼の味方であるべきだ。 これがまさにプログラムの本質だよね。言語の細かい部分じゃなくて。

現在のモデルは新しいものを書くことはできない。ただパターンをマッチさせたり、評価したり、コピーするのが得意なだけだ。今は多くの価値をもたらしているけど、創造性はないんだよね。

コードを書くのが本当に苦痛だと思ったことないの?CIが失敗してるんだけど、昨日は通ったのに。どこかで不安定なAPIが呼ばれてるのかな?最近のコミットで壊れる変更が入った?もしかして、サードパーティの依存関係のどれかが壊れる変更を出したのかも。新しいコードに取り組もうと思ってたのに、今はこの新たなフラストレーションを解決するのに5分から1時間以上かかることになっちゃった。予測不可能だし。物を作ったり新しい問題を解決するのは大好きなんだけど、こういう面倒な問題に時間を奪われたくないな…特に今はCIのデバッグをエージェントに外注できるから。最近はCIで何かが不具合を起こすと、Claude Codeに指示して、90%の確率で数分後には解決策が見つかるんだよね。

コードを書くのが苦痛だとは思わないけど、退屈だとは感じるかな。ボイラープレートに無駄に時間を取られると、いいところにたどり着けないんだよね。LLMを使えば、その部分をスピードアップできる。あなたの例に戻ると、トールキンがタイプライターの設定にめちゃくちゃ時間をかけて、修正テープを用意したり、スペルを確認したり、誤りを直したり、タブの位置を自分の基準に合わせたり、句読点をチェックしたりしているところを想像してみて。今、その無駄を全部排除して、対話の芸術的な部分に集中できるようにしたらどうなるか。

コードを書くことは簡単な部分で、実際には小さな時間の浪費の一つだと思う。労力の成果は、計画、デザイン、アーキテクチャ、そして今と将来に達成したい要件にある。これらはすべて、計画するためにかなりの努力と先見の明が必要なんだ。準備が整ったら、もしかしたら不安だったエリアでPOCをやってみたり、良いスケルトンを使ってハッピーパスの影を描いたり、計画を繰り返して本物の「コード」や基盤を置いたりする。これは素晴らしいプロセスだよ。最初は、コードから深くプロジェクトに飛び込んで、ワークアラウンドボタンを何度も押してしまって、結果的にもっと高くつくことをみんな知ってるよね。

著者はNode.jsのセキュリティパッチを更新することを祝福ではなく呪いだと勘違いしてるみたいだね。代わりに、自分の特注ソリューションに未発見のセキュリティ脆弱性があって、セキュリティコミュニティもなく、どちらも簡単に修正できない状況になるかもしれない。Node.jsをパッチする特権があるんだよ。同様に、採用マネージャーとしてReact開発者を雇うことができるけど、「独自のAIでコーディングされた統合プロジェクト」開発者は雇えない。この文章は、ソフトウェアエンジニアリングの一般的な変化よりもReactについて多く語っているように見える。Reactが嫌い?使わないのが今までで一番簡単だよ。ライブラリや抽象化、コードの再利用が嫌い?それを避けるのは危険だよ。すぐに自分の知識とリソースの限界に達して、メンテナンスプランなしで特注の四角い車輪を作ることになるから。

Hacker Newsで議論の続きを見る