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

GPTと取り残される感情

2025年8月10日原文(whynothugo.nl)

概要

AIコーディングツールの進化に対する焦燥感と実際の体験のギャップについての考察。 AIツールの実用性に疑問を感じる理由の整理。 他者の成功事例と自分の経験の乖離。 AIが得意な分野と苦手な分野の具体例。 コミュニケーション手段の案内。

AIコーディングツールに対する違和感

  • AIコーディング に関するブログや新モデルの話題が盛り上がる現状
  • 自分のスキル が時代遅れになる恐怖感
  • 実際にAIツールを試すも、 期待外れ の体験
  • 数時間かけても進捗がなく、 手作業の方が早い という実感
  • Vimの習得と比較し、AIツールには 即効性の欠如 を感じる

AIツールの得意・不得意

  • 単語補完や型推論 など、ピンポイントなタスクには強み
  • 関数単位のバグ検出 にも一定の効果
  • しかし、 複雑な機能や大規模実装 では役に立たないことが多い
  • 存在しないライブラリを 勝手にインポート するなど、現実離れした提案
  • 依存関係なしでの実装を依頼すると、 具体的なコード生成ができない 事例
  • バグ修正時に 新たなバグを生む ことが頻発

他者の成功体験とのギャップ

  • Hacker News などでの成功談の多さ
  • 著名な開発者 による実績報告が現実味を持つ
  • 一部の成果物が 公開されている 事実
  • 自分の結果と他者の結果が 一致しない葛藤
  • AIツールを「 壊れないハンマー」と言われるが、実際は「 紙細工」のように感じる

コミュニケーション案内

  • 本件に関する 意見・議論 を歓迎
    • パブリックインボックス: ~whynothugo/public-inbox@lists.sr.ht
    • プライベートメール: hugo@whynothugo.nl

Hackerたちの意見

みんなが見落としてるのは、たまにうまくいくこともあれば、うまくいかないこともあるってことだよね。「他の誰かがやるともっと良くなる」とか「自分が使ってるモデルよりも良いモデルがあるはず」とか「もっと上手にプロンプトできれば、いい結果が出るはず」とか「自分が使ってるIDEよりも優れたエージェントがあるはず」とか、そういうことを考える人が多いけど、確かにそういうのはあるかもしれない。でも、結局のところ、確率が変わるだけで、うまくいく時といかない時があるのは変わらないんだよね。例えば、エージェントにちゃんとしたデータを表示する画面を作ってもらったことがあるんだけど、最初は素晴らしいものができたけど、いくつかのフィールドが抜けてたり、フォーマットが不一致だった。でも、それを指摘したら、ちゃんと直してくれたんだ。プロダクトマネージャーやエンドユーザーの言葉で話してくれたからね。コードの質もすごく良くて、自分が書いたのと同じくらい、いや、もしかしたらそれ以上かも。もちろん、そうならないこともたくさんあるけどね。タイプスクリプトの型がよく分からないコードをいじってて、変なエラーメッセージを与えたら、理解しようと試みたけど、結局うまくいかなかった。1日か2日かけて「ラバーダック」として使ってみたら、何が悪いのか、どう直せばいいのかが分かるようになった。エラーが出ても理解できるし、エージェントも理解できるようになったりする。たまに型チェックに引っかかるコードを書くこともあって、「tscを実行してエラーを直して」と言うと、ちゃんと直してくれることもあるし、誇れる仕事をすることもあれば、つまらない型ガードを追加することもある。例えば、「if (x && typeof x === "object") x.someMethod()」みたいな感じで。基本的に同じ問題を与えても、Javaでテストを書くとなると、全然違うアプローチを取ることもある。ある時は、他のテストで使っている依存性注入フレームワークを使って、プライベートフィールドにモックを注入するけど、別の時は、プライベートフィールドにモックを直接注入するためのヘルパーメソッドを書くこともある。こうしたランダムさをうまくコントロールできるテクニックもあるかもしれないけど、結局はうまくいく時といかない時があるから、良い時だけ話したり、悪い時だけ話したりしたら、全然違う話になっちゃうよね。

「タイプスクリプトの型がよく分からないコードをいじってて、変なエラーメッセージを与えたら、理解しようと試みたけど、結局うまくいかなかった。1日か2日かけて「ラバーダック」として使ってみたら、何が悪いのか、どう直せばいいのかが分かるようになった。エラーが出ても理解できるし、エージェントも理解できるようになったりする。」 これ、簡単なグーグル検索を試して、ドキュメントを読んでみたら、LLMから結果を引き出すよりも早く解決できたんじゃないかなって思っちゃう。

行動心理学は、LLMを使ってコードを生成する際の反応の奇妙な分布を説明するのに役立つよ。「鳩のギャンブルのような行動:‘ジャックポット’信号が不適応なリスク選択を促進する」 https://www.nature.com/articles/s41598-017-06641-x テクノロジー業界はギャンブル依存症を積極的に助長していて、怖いのは人々がその罠に自ら飛び込んでいること。これを見てみて: https://news.ycombinator.com/item?id=44849147 「人々のワークフローについて話して学んだことのほとんどは直感に反していて微妙だ。」マジで?今、これらのモデルのために雨乞いのダンスをして、動きを「直感に反していて微妙」と表現してるの?これは魔法のような自己欺瞞のレベルだよ。ダウンボートしたければすればいいし、無視してもいい。私たちのエージェンシーが奪われてる。誰もが「予測できなかった」とは言えない。だって私たちはそれを見てたし、何かを言ったのに、仲間たちはそれを指摘した私たちを無知で自己中心的だと扱ったんだから。

一番最悪なのは、LLMがコードに微妙なバグを導入して、それをすぐに見つけられないことだよね。最近、Langfuseの統合をやってて、Cursorを使ってトレースやスコアをすぐにプッシュするためのスケルトンコードを生成したんだけど、生成されたコードには「score_id」っていうパラメータが含まれてて、Langfuseではドキュメント化されてなかったのに、なぜか受け入れられて、全体のトラッキングがめちゃくちゃになっちゃった。何度もデバッグを繰り返しても、トラッキングの問題が何なのか分からなかったけど、別のLLMにコードの可能な問題を見つけてもらったら、そのscore_idの行をすぐに指摘してくれた。

これはすごく大事な教訓だね。これらのコーディングモデルがどう作られているかを理解しないといけない。基本のLLMからどう設計されているか、そしてお互いをレビューするために明確に異なる2つのモデルを使うことがなぜ重要なのかを理解することが大切なんだ。

HNで見つけたブログ記事が、LLMを使ったコーディングのやり方を完全にレベルアップさせてくれたよ。https://harper.blog/2025/02/16/my-llm-codegen-workflow-atm/ AIが質問をしてくれて、PRDや仕様について考えることで、システムデザインが上手くなった気がする。

今はうまくいってるけど、2週間後にはうまくいかないか、逆に2倍うまくいくかも。¯_(ツ)_/¯ なんかルーレットを回してる気分だよ。AI支持者って、最初の数回のプロンプトで運よく勝ったギャンブラーなんじゃないかって思うこともある。

ここでの議論: 私のLLMコード生成ワークフロー - https://news.ycombinator.com/item?id=43094006 - 2025年2月 (160コメント)

MITでCSの学位を取得して、2004年から2020年までプロのソフトウェアエンジニアリングをしてたんだけど、最近別の分野で会社を始めたから、約4年間本格的な開発はしていなかったんだ。今夏、休暇を取って、自分の業界に特化した小さなソフトウェア趣味プロジェクトを始めることにした。初めてCursorを試してみたんだけど、新しいコードベースを立ち上げる際の面倒なことを実装するのに、すごく役立った。ビルドシステムの設定、ライブラリやAPIの調査、設定やI/Oのためのフレームワークの実装など、全部助けてくれた。もちろん、難しい部分は自分でやらなきゃいけなかったし、(おそらく一番重要なのは)Cursorが書いているコードを理解して、間違った方向に行った時には修正しなきゃいけなかったけどね。実際に「いや、なんでそんなやり方するの?Xの方がずっとシンプルだよ」と言ったら、だいたい直してくれた。何回か、自分でたくさんのコードを書いた後、久しぶりにプロジェクトをコンパイルしたら、(普通はそうするように)解読不可能なC++のテンプレートエラーの森に突っ込んじゃった。全部をスクロールする時間を使う代わりに、「コンパイルエラーを直して」と言ったら、ちゃんと直してくれた。もう一つの例として、「このクラスの比較演算子を実装して」と言ったら、5秒で終わった。プロジェクトが複雑になるにつれて、欲しい動作のテストを書くのがすごく役立って、「このテストを通して」と言ったら、ちゃんとやってくれる。コードベースを理解して、ジュニアデベロッパーのように追加してくれるから、すごく良い仕事をしてる。IDEを使って、全体のコードベース(ビルドシステムやテストを含む)にアクセスできることが重要だね。ChatGPTを単独で使って、コピペするのは価値がない。最初から全てのプロジェクトをやるのは無理だけど、面倒な作業からは助けてもらえたから、十分価値があると思う!

昨年の夏、約12年ぶりにソフトウェアの世界に戻ってきたんだけど、AIをヘルパーとして使うことで、ほぼ同じ経験をしたよ。ここ6ヶ月は、コンサルの合間にできるだけコーディングしてきた。AIがなかったら、こんなに早く追いつけたか分からない。大学でサンワークステーションをハッキングしてた頃以来、こんなにプログラミングが楽しいと思ったことはなかったけど、正直言って、最近は自分で書くコードは10%くらいしかない。今はClaude Codeを使って、GPT-5とペアプログラミングしてて、ファイルの編集をGemini Flashに任せてる。これ、かなりクールだよ。

新しいコードベースを始めるのに関わる全ての面倒なこと クッキーカッターや他のテンプレートリポジトリを見たことある?小さなプロジェクトにはそれが私のお気に入りで、結構うまくいくよ。LLMが追加するバグが、テンプレートリポジトリにはないことが心配だね。後者は通常、しっかりレビューされた人間が書いたコードだから。

趣味のプロジェクトならそれでいいけど、商業的に価値のある仕事ではプライバシーの問題をどう扱うの?

Hacker Newsで議論の続きを見る