概要
AIコーディングツールの進化に対する焦燥感と実際の体験のギャップについての考察。 AIツールの実用性に疑問を感じる理由の整理。 他者の成功事例と自分の経験の乖離。 AIが得意な分野と苦手な分野の具体例。 コミュニケーション手段の案内。
AIコーディングツールに対する違和感
- AIコーディング に関するブログや新モデルの話題が盛り上がる現状
- 自分のスキル が時代遅れになる恐怖感
- 実際にAIツールを試すも、 期待外れ の体験
- 数時間かけても進捗がなく、 手作業の方が早い という実感
- Vimの習得と比較し、AIツールには 即効性の欠如 を感じる
AIツールの得意・不得意
- 単語補完や型推論 など、ピンポイントなタスクには強み
- 関数単位のバグ検出 にも一定の効果
- しかし、 複雑な機能や大規模実装 では役に立たないことが多い
- 存在しないライブラリを 勝手にインポート するなど、現実離れした提案
- 依存関係なしでの実装を依頼すると、 具体的なコード生成ができない 事例
- バグ修正時に 新たなバグを生む ことが頻発
他者の成功体験とのギャップ
- Hacker News などでの成功談の多さ
- 著名な開発者 による実績報告が現実味を持つ
- 一部の成果物が 公開されている 事実
- 自分の結果と他者の結果が 一致しない葛藤
- AIツールを「 壊れないハンマー」と言われるが、実際は「 紙細工」のように感じる
コミュニケーション案内
- 本件に関する 意見・議論 を歓迎
- パブリックインボックス: ~whynothugo/[email protected]
- プライベートメール: [email protected]
みんなが見落としてるのは、たまにうまくいくこともあれば、うまくいかないこともあるってことだよね。「他の誰かがやるともっと良くなる」とか「自分が使ってるモデルよりも良いモデルがあるはず」とか「もっと上手にプロンプトできれば、いい結果が出るはず」とか「自分が使ってるIDEよりも優れたエージェントがあるはず」とか、そういうことを考える人が多いけど、確かにそういうのはあるかもしれない。でも、結局のところ、確率が変わるだけで、うまくいく時といかない時があるのは変わらないんだよね。例えば、エージェントにちゃんとしたデータを表示する画面を作ってもらったことがあるんだけど、最初は素晴らしいものができたけど、いくつかのフィールドが抜けてたり、フォーマットが不一致だった。でも、それを指摘したら、ちゃんと直してくれたんだ。プロダクトマネージャーやエンドユーザーの言葉で話してくれたからね。コードの質もすごく良くて、自分が書いたのと同じくらい、いや、もしかしたらそれ以上かも。もちろん、そうならないこともたくさんあるけどね。タイプスクリプトの型がよく分からないコードをいじってて、変なエラーメッセージを与えたら、理解しようと試みたけど、結局うまくいかなかった。1日か2日かけて「ラバーダック」として使ってみたら、何が悪いのか、どう直せばいいのかが分かるようになった。エラーが出ても理解できるし、エージェントも理解できるようになったりする。たまに型チェックに引っかかるコードを書くこともあって、「tscを実行してエラーを直して」と言うと、ちゃんと直してくれることもあるし、誇れる仕事をすることもあれば、つまらない型ガードを追加することもある。例えば、「if (x && typeof x === "object") x.someMethod()」みたいな感じで。基本的に同じ問題を与えても、Javaでテストを書くとなると、全然違うアプローチを取ることもある。ある時は、他のテストで使っている依存性注入フレームワークを使って、プライベートフィールドにモックを注入するけど、別の時は、プライベートフィールドにモックを直接注入するためのヘルパーメソッドを書くこともある。こうしたランダムさをうまくコントロールできるテクニックもあるかもしれないけど、結局はうまくいく時といかない時があるから、良い時だけ話したり、悪い時だけ話したりしたら、全然違う話になっちゃうよね。