ディスカッション (11件)
最近流行りのエージェントベースのコーディング。AIが勝手にコードを書き、修正してくれる魔法のように思えるかもしれないが、実は大きな落とし穴がある。複雑な依存関係、制御不能なコードベースの肥大化、そして何より「コードを理解せずに書く」ことの代償は非常に大きい。楽をしようとして、逆に技術的負債を爆速で積み上げていないか?いま一度、AIとの付き合い方を見直すべきだ。
フロー状態や手作業でのプログラミング中と、コードレビュー中の脳のスキャン結果を比較する研究を見てみたい。もし結論として活性化する脳の部位が異なるのであれば、オーケストレーション(調整業務)は完全に別の活動ということになる。コードを読むことは、コードを書くこととは別物だからね。
ただし、コードレビューの研究をするなら、単に表面をなぞるだけか、それとも理論的な思考の停滞期を乗り越えるほど深く見ているか、といった比較が必要になる。つまり、コーディングする人の立場になって、その視点に深く入り込んだとき、脳が別の認知モードに切り替わっているのかどうかを調べる必要がある。
そうでないなら、単に「Looks good to me」とスタンプを押すだけでは、脳の機能は同じように萎縮してしまうだろうね。批判的な思考も、変更内容の要約も、積極的な問いかけも存在しないから。
思慮深く、慎重なコードレビューは、結局のところ時間がかかるものだ。AIはここで大いに役立つけど、「レビューモードに入る」プロセスそのものは、依然として人間が引き受けなきゃいけない。
これって、「機械エンジニアの仕事は部品を設計することであって加工することじゃないから、カリキュラムから機械加工の実習を外そう」という問題と全く同じだよ。その結果、新人の機械エンジニアは、部品がどうやって作られるのかを知らないから、適切な設計の仕方も分からなくなるんだ。
自分はAIツールを使ってアプローチのアイデア出しをしたり、時にはコードを生成させたりしているけど、実際の打ち込みは自分で行うようにしているよ。そうすれば、長い時間をかけて培ったメカニクスやプログラミング言語の感覚を忘れにくくなるからね。
重要なのは、最終的なコードの品質はあくまで自分次第ってことだよ。
エージェントと反復作業を繰り返して、自分が書くのと全く同じ品質になるまで調整を続ければいいだけなんだから。
これをより根本的なレベルで解決するにはどうすればいいんだろう?
多くの人はすでに問題に気づいていると思うんだ。
-「我々のコードを書く能力が低下している」
-「コードを書く能力が低下すれば、良いコードを見抜く能力も低下する」
だけど問題は、今の市場がLLMなしでは回らなくなっていることだ。
フリーランスのレートや締め切りは、今やLLMのアシストがあることを前提に調整されている。「適当なコード(vibe coding)は書くな」と指示するクライアントでさえ、LLMを使わないと到底間に合わないような締め切りを設定してくる。クライアント側の期待値そのものが異常になっているんだ。
これが市場の皮肉なところだ。
正直、どうすればいいのか分からない。
最近のHacker Newsでの議論は、ほとんどがAI利用に対するネガティブなエコーチェンバーになっている。他の場所では逆に、ポジティブな意見だけのエコーチェンバーになっていることも多い。でも、現実的な解決策を議論している人はほとんどいないね。
よく目にする主なトピックはこんな感じだ。
-
大規模なPRシステムは根本的なストレステストに失敗しているのか?それともAIが生成したコードはマージすべきではないのか?もしPRレビューが手作りから大量生産に移行しているなら、PRシステムはどうあるべきか?それとも変える必要はないのか?
-
ベンダーロックインが進む中、回避策としてローカルLLMへ移行できるのか?コストやハーネス設計は管理可能か?コーディング速度を同等にするには、どのレベルのローカルモデルが必要なのか?
-
強制的にエージェントによるコーディングを使うなら、自分のコード能力の低下をどう防ぐべきか?
クリストファー・アレグザンダーの言葉が頭を離れないんだ。
「『デザイン手法』という概念の周囲に学問分野全体が形成され、私自身もその主要な提唱者の一人と称えられてきた。しかし、こうなってしまったことを私は非常に残念に思っている。設計の研究と設計の実践を分けるのは不合理だと考えているため、デザイン手法という研究対象そのものを公に拒絶したい。実際、設計の実践を伴わずにデザイン手法を研究する人たちは、創造の源泉を失った、あるいはその意欲すら持ったことのない、ほとんど常に不満を抱えたデザイナーに過ぎない」——1971年
この引用は今のプログラミングに当てはまる気がする。
もしプログラミングの学習や監督を、実際に作るという実践から切り離してしまったら、何か重要なものが失われるんじゃないだろうか。
建築の世界では、実践がなければ建築家はその意義を失うという考え方がある。でも、今は市場がその分離を強要している。
十分な象徴的資本と高い地位を持つ人はAIを使わない自由がある。でも、市場の底辺にいる人たちは、AIを使わざるを得ないプレッシャーの中にいる。
だから今の議論は、AIコーディングが良いか悪いかという段階を超えなきゃいけないと思う。
本当の問いは、「市場が求めるからAIは使い続けつつ、どうやってプログラミングを意味あるものにし、我々の判断力を維持する人間的な実践を守り抜くか?」ということだ。
ここが重要な問いだと思う。
AIを使わずにどうやって市場価値を維持するか?
もしAIを使うなら、どうやって「質の低いエンジニア」として扱われないようにするか?
AIを使わないなら、どうやってAIを使う人より競争力を保つか?
AIを使うなら、使わない人に対してどんな強みを持ち、どうポジショニングするか?
エージェントによるコーディングがスキル低下を招くのは知っているし、自分でもそれを感じ始めている。だけど、高い地位や実績、象徴的資本がない自分のような人間にとって、社会的・市場的な圧力のせいでAIはほぼ避けられないものになっている。
もどかしいのは、どこにも実践的な答えが見当たらないことだよ。
この記事は少し的外れな気がするな。
確かにAIを使いすぎればスキルは低下する。でも、あえて触れられていない「部屋の中の象(明白な問題)」について言いたい。AIは人を速くしすぎているんだ。
出力が速いこと自体は悪くない。だけど、コードを生成するまでの深い理解や経験を伴わないまま、出力とコードだけが速くなっている。深い知識を持って安全な決断を下す人よりも、ビジネス価値について口先だけで語れるような人ばかりが評価されているんだ。
AIはいいものだし、素晴らしい解決策を出せることもある。でも結局のところ、AIは自分が何をしているか理解していないし、最高の場合でも優れたオーケストレーターによる監督が必要だ。
僕たちは「ビジネス主導の開発」という泥沼にいて、悪い決定を下しても、厳しい評価や評判の低下といった適切な報いを受けていないのが現状だよ。
AIにできるなら、それは大して難しくない作業だという結論に至ったよ。僕が扱っている複雑なソフトウェアは、まだどれもAIに確実に書かせることはできないからね。
「vibe coding(適当なコーディング)はするな」と言いつつ、それなしでは不可能な締め切りを突きつけてくる。よくある話だね。
面白いのは、2025年11月頃にLLMが十分に実用的になってから、自分の頭の中にあるものをいかに簡単に形にできるようになったかということだ。驚くほどだよ。
今の僕にとってコーディングは前よりずっと楽になった。まるで、24時間365日いつでも使える狂ったようなインターンが側にいて、ペアプログラミングで監督しなきゃいけないけど、役立つ知識も危険な知識もほとんど理解しているような状態だからね。
皮肉なことに、僕は今、モデルの推論能力と信頼性を改善する方法を繰り返すことに時間の大部分を費やしている。ベンチマーク設計の難しさを除けば、かなりいい成功を収めているよ!!
僕のフォーク(https://github.com/cartazio/oh-punkin-pi )には、僕のアイデアを重ね合わせたものがたくさん詰まっている。結局のところこれは、他の本当にクールな機能を盛り込んだ次世代ハーネスを完成させるまでの橋渡しだ。僕が計画しているもののホスト版にビジネスチャンスがあるかは分からないけれど、フォークでの変更によって、モデルの推論能力の違いを実感できるレベルにはなれたよ。
Lars、言いたいことはよく分かる。僕はLLMをタスクのスコープ定義や、高レベルな視点でのセカンドオピニオンとして使っているよ。それから自分でコードを書く。ボイラープレートや退屈なオブジェクトは自動化することもあるけど、自分で書いた方が速いか、質が高い場合も多い。その後にLLMにテストコードを書かせて、AIが漏らしたケースを自分で見つけて追加するようにしている。
まあ、周囲からは「脱成長派」とか「ラッダイト(技術否定派)」なんて呼ばれているから、僕の意見を参考にするときは気をつけてね。