Claude Codeを2日間使ってみた結果に驚愕!AIによるコード生成の実力とは
引用元:https://news.ycombinator.com/item?id=43307809
自分が一番ダメなプロンプトエンジニアだと思う。AIに修正や作成を頼むと、ほとんど正しい答えが返ってこないから。Twitterの成功談は魅力的だけど、AIに全て任せるってのは現実的じゃない気がする。
多分“コード”と“プログラミング”の違いだと思う。LLMはコードを生成できるけど、プログラミングにこだわるとLLMは期待に応えられない。大多数は“コーダー”であって“プログラマー”じゃないから、LLMにいい印象を持つんだ。
最終的な結果が大事で、今のところLLMはコード補完には便利だけど、他にはほとんど役に立たない。書きたいコードは書けるけど、バグだらけで自分で書くのと同じくらい直すのが大変。リリースするソフトがこんなに酷いのは意味がない。
文字列に入る微妙なミスが面白い。結局その修正に時間がかかって、結局は得た時間を失っている。
その例があるの?
アカウントを忘れたので新しく作成して返信。Claudeを使って“Ruby on Rails 8、Hotwire、stimulus、turboでページリフレッシュなしのクライアントサイドのバリデーションを見せて”ってプロンプトを試した。生成されたcontroller名が“validations”じゃなくて“validation”だったので、修正が面倒だったけど、最後的には求めていた通りになった。
Cursorのルールを試したことある?標準ライブラリを作り、ルールを追加・修正していくのがAIコーディングのベストプラクティスの一つだよ。
>…何千ものルールを使って、追加・修正を繰り返すのが特に効率的なアプリ/システムを作る道なのか?10倍の成果を追求するのに10倍の努力が必要なんて懐疑的だ。
その時点で通常のプログラミングをルールを作る作業に置き換えているだけじゃないか?ルールは再利用可能で、メタプログラミングの一種かもしれないけど。
その通り。フレームワークを使うかどうかの判断にも同じ原則が適用される。コーダーはフレームワークをよく理解しなくても早く何かを構築できることに驚くけど、プログラマーは内部で何が起こっているかを理解しようとする。
フレームワークを使うのと、詳細を掘り下げることには違いがあると思うけど、あなたの言ってることはNo True Scotsman的な気がする。プログラマーの大半はそんな定義には当てはまらないと思う。私の業界はストリーミングメディアだから、そういうバイアスがあるかも。
アーティザンプログラミングが注目されるのを待ってるよ。
アーティザナルコードはとっくに存在してるよ。私たちがルダイトの職人だとしたら、LLMは彼らの質の高い作品を安くて質の悪い商品に置き換えた織機のようなものだね。この歴史的な韻を感じる。
プログラマーとコーダーを分けるのは面白いけど、同じ意味だと思う。機械にロジックを書く人のことだし。
困ってる人のためのヒントをいくつか: Aiderを使ってみるといいよ。コードに比べて安いし、LLMリーダーボードを見てどのLLMを使うか決めると良い。設計モードが役立つけど、私はそれがなくても早いし、段階的に進めるのが大事。3つのブランチを使うべきだね。デバッグ用に切り替えると、バグを直すのにいろいろ試してくれるよ。
三つのブランチを使うのは本当に賢いアイデアだ。
それに気づくのに時間がかかったし、すぐに思いつかなかったのは恥ずかしい。多くの人が手動開発でやってることだから、LLMを使うときにいつもの良いプラクティスを無視するのはおかしいよね。
LLMは途中でコミットするの?バグ修正のためにブランチを使う理由が分からないんだけど、git reset –hardでいいんじゃない?
僕も同じ経験があるよ。AIのいいところは、セマンティックサーチエンジンや家庭教師のような役割かな。複雑に質問しても、時々はしっかりした要約と次のステップを教えてくれる。正しい用語もくれるから、興味があれば他の検索エンジンで詳しく調べるけど、確認は絶対必要だよ。
僕のワークフローはこんな感じだ(Sonnet 3.7 Thinking in Cursorを使用): 1. まず、作りたいものを説明して要件を整理。2. 要件を細かく詰める。3. 仕様書を基に実装を頼む。4. Cursor Rulesを実装して、今後も一貫した実装を確保。これで80%は良い結果が出るけど、問題領域を理解して、生成されたものを検証するのが必要だね。
仕様のアイデアを盗みたくなった。Claudeは問題を解決せずに話が逸れる癖があって、変更を却下したり過去のバージョンに戻さなきゃいけないんだ。ちゃんとした仕様をガイドラインにすれば、もう少し軌道を外れずに済むかも。 最近、何百人もの候補者とコーディング面接をしたけど、LLMをうまく使ってる人とそうでない人の差が明らか。OPのように考えるエンジニアは置いてかれると思うよ。週末に個人プロジェクトを作るか新しい言語を学んでみて。あ、Claude webのプロジェクト機能を使うと、出力がかなり変わるから、古いファイルは削除して新しいのに入れ替えてね。 何百人?それは相当だね。どんな違いを感じたの?候補者がLLMをどう使ったか聞いた? はい。面接プロセスの第1ラウンドで非同期ビデオ面接をやって、候補者の絞り込みを行っている。面接の開始時に質問を提示し、候補者は自分のIDEで作業しながら画面を共有する。すべての録画を見返してるけど、進捗があまり無いと早送りする。候補者が普段使うツールを使うように促す質問をしていて、LLMを使う人はステップを4~5個進める。 つまり、彼らをインタビューするんじゃなくて、高額な作業サンプルテストをやらせてるんだね。そして評価基準は“短時間で多くのステップをこなすこと”なのか。 LLMをうまく使える人を見つけようとしてるみたいに感じる。面接をしたことはないけど、LLMを使ってないからといって候補者を落とすのはちょっと厳しいと思うな。各自のやり方があるけど、ちょっとおかしいように思える。 質問は本当に難しいのか?スタンダードなタスクを聞くなら、LLMに頼ってる人が有利になるのは当然。候補者の能力は、LLMが助けられないシチュエーションでどうなるかが重要だ。日常業務の90%はスタンダードなタスクだけど、優秀なプログラマーがLLMを使わないことで生産性が大幅に下がるのはどうなのか。コードをたくさん生産することがプログラマーの有用性に繋がるとは思えない。 いいえ、LeetCodeやアルゴリズムの質問はしていない。実質的には「仕様に基づいた小さなプロダクトを作る」という形で進めてる。候補者のプロセス、効果的さ、コミュニケーションを評価していて、コードも後で見直すよ。これは第1ラウンドだけで、通過した人とはさらに深く話して、全体的な力量を理解する。実際、LLMのせいでテストが無駄になっているし、コーディング面接は時間がかかる。 >基本的には”仕様に基づいた小さなプロダクトを作る”、一連のステップで進めているってこと?それは、返信している人が言っていることに近いと思う。標準的なプロダクトエンジニアリングが簡単になったものだよね。LLMが得意な問題に合わせているだけで、LLMを使える人が有利になる。そういう人を探しているのなら、素晴らしいと思うけど、より良い選択肢を持つ人は大体すっ飛ばしちゃうようなプロセスに思える。 もし本当に去年の候補者を毎日一人ずつ面接していたのなら、その職場のエンジニアの役割はどんな感じなの? Claude Codeを使ってみたんだけど、最初のプロンプトで簡単な実装をお願いしたら、あっさり結果を出してくれた。自分で修正しながら、ツールが自動でバージョンを作れることに気づいて、最終的には自分の手を借りずにいくつかのツールを作らせた。結局、20ドルでClaude Codeを再現することができたんだ。 200行のJavaScriptと75行のPythonのコードを作成するのに20ドルと1日かけて、これがClaude Codeの再現っていうこと?期待値がズレてると思う。 その出力は多くのプロエンジニアが1日に書くコードと似た量で、彼らはもっと高い。初めての試みだから驚いた。ただ、私ならAiderやSonnetで2ドル未満で100行以上書くことができる。バグを見つけるのに時間がかかるけど、コードの質も良いし、同僚よりマシ。 コードの行数は重要じゃない。元の投稿者がClaudeにClaude Codeを再現するようお願いして、成功したと言ってるのが大袈裟だと思う。出力されたのは単純なユーティリティで、驚く人もいるけど、これに何の意味があるのか疑問。 コーディング時、LLMがGoogleの役割を果たしてる。Javaの特定のクライアントライブラリでRESTリクエストを実装するのに、今はLLMに例を聞く方が早い。GoogleよりLLMの方が使いやすいし、例の修正も楽。 Claude Codeはコードの二次的な結果を考えられないみたい。GrokやGPT4.5、Sonnetを使ってプロンプトを作ると、Claude Codeも上手く動くようになる。私のやり方は問題の文脈を与えて実装計画を作 成させて、それをClaude Codeに渡すこと。 これらの投稿を見ても、もうエンジニアリングじゃない気がする。私たちは完全に自分たちを排除する一歩手前だと思う。 バイナリやアセンブリ、Cを書く必要はないと思ってる。要件や設計、受入基準を書く必要があるし、インフラのプロビジョニングやテストもある。99%を自動化したら、要件が膨れ上がるんじゃない? プログラミングが不得意な私は、LLMが素晴らしいと思ってる。具体的な例ややり取りを共有してくれたら嬉しい。自分とあなたの違いを知りたいんだ。 Claude Codeを使うにはプロンプトを工夫する必要がある。ある時は素晴らしい結果が出るけど、別の時は失敗する。結果に大きな影響を与えるプロンプトのコツがあるんだ。 ここでの話を見て、Claude Codeを試してみることにしたんだ。以前はClaude.aiプランが必要だと思ってたけど、実際はAPIキーだけで使えることがわかった。既存のアプリにちょっとした機能を追加してもらったら、60秒で$0.73かかって、51行の変更があったんだけど、その結果にかなり感動したよ。俺がやるのと同じ変更をしてくれた。Aiderも同じことを頼んだら、最初は必要なファイルを見逃して、数回やり直してなんとか同じ変更を出せたけど、Aiderは15秒、$0.07で済んだから10%のコスト。結局、自律性が高いツールはコストも高くなるみたいだね。 その変更をコーディングするのにどれくらい時間がかかった? 多分3分くらい?こういうコーディングツールは、だいたい何をやりたいかは知ってるし、LLMが正しい方向に進んでるか確認するのが簡単だから。Claude Codeが俺を300%も効果的にしてるわけじゃないけど、今回のシンプルなタスクでは役立ったと思うよ。 生成時間だけを比較してるの?生成コードをチェックする必要な時間も含めるとどうなる?複雑な環境での時間はどう変わる? そのタスクを選んだ理由は、AIを使う方が自分でコーディングするより速いだろうと思ったから。生成コードの確認は簡単だったよ。複雑な環境での時間の変化がわからないけど、Claudeの自律性が無駄なアイディアに時間とお金を使わせるんじゃないかと心配してる。 AIが生成したコードを繰り返しデバッグするのにどれくらい時間がかかるだろう? 俺も少しClaude Codeを使ってみたけど、料金が高すぎるな。20行のスクリプト変更が10セント、READMEの簡単な編集が7セント。エンジニアはもっと稼いでるが、大きなタスクではコストが暴騰しそうだ。月に$10-$20使うのは簡単に超えそう。CodyやCopilotを使う理由は月$10だから。制限がかかることはあるけど、出費が増えすぎないのがいい。 フリーランスのコンサルタントとして、こういうツールが収入を大幅に増やす可能性があるのは興味深い。ただ、その結果、見慣れないコードを持っていることや、高度なバグや制約に悩まされることが心配だ。 現在、CursorとAnthropicのAPIで$200-$300かかってるが、両方のフルタイムの仕事に加えフリーランスでも収益を上げている。自動化のためのコードレビューが増えて、通常のコーディングよりもその効果を感じてる。これでやった仕事は、普通の仕事よりも賞賛されてるよ。 Cursorの月500検索を超えた?APIキーを接続して従量制課金を使ってるの?500回近くも使ってないから、$200-$300にどうやって達したのか気になる。たぶんCursor以外にもAnthropicに支払ってるんだろうね。 ちょっと不安だなぁ、やったことないコードが出てきちゃうのがね。新機能を実装するたびに他の人のコードを扱わなきゃいけなくなるのは大きなデメリットだと思う。AIに完全に依存することになりそうだし、これって避けられない未来なの? AIがちゃんと仕事してくれるなら大丈夫なんじゃない?でも、今のAIはそこまで信用できるものじゃないと思うよ。50%も信用できるとは言えないし、80%まで良くなったとしても、その後の改善はめっちゃ難しいと思う。私たちの人生中に100%の信頼できるAIにはならないんじゃないかな。 昔の開発者たちが『自分より優れたコードは書けない』って言い続ける一方で、仕事が見つからないのを不思議に思う時代が来ると思う。今のAIは、もう50%以上は信用できるかもね。 Grok使ってるけど、無料だし制限もほとんどないよ。全体のコードベースは送らない方がいいけど、一つのファイルだけなら大丈夫。依存ファイルのソースがなくてもちゃんと理解してくれるのがすごいと思う。OpenAIのツールは毎日ログアウトされて面倒だけど、こっちは問題なし。 確かにエンジニアの多くはもっと速く高く費用がかさむから、AIに頼らざるを得ない時代も来るだろうね。それに、ほとんどのエンジニアはハルシネートしないけど、Claudeは結構しちゃうんだ。コストがかかる場合、それはあんまり面白くないよね。 エンジニアもバグを作ることあるよ。バグの発生率は今のAIより低いだけでさ。 エンジニアのバグは様々な原因があるし、LLMのハルシネーションとは違うよね。普通にありえないAPIのPRとか見ることはないし、それを合理化するための皮肉も通じないんじゃないかな。 PRはすでにテスト済みで精査されたコードだから、LLMの出力とは比較できないよ。LLMの出力は、未テストの曖昧な記憶に基づく最初のコードと同じ。APIの詳細を忘れることもよくあるしね。 APIの詳細が曖昧だと気づいて、ドキュメントを確認しないのは珍しいよね。その自己認識が今のツールにはまだ欠けてると思う。 人間のプログラマは、オートコンプリートや構文ハイライト、最終的にはコンパイルやビルドの手助けを受けるからね。LLMに近い体験をするには、notepad.exeを開いて大きく変更してからビルドして、コンパイラが関数名を想像する確率を教えてくれるのを待つことになるよ。 こういうツールはCursorみたいにサブスクリプションモデルで運営するのが多くのユーザーにとって合理的だと思う。従量課金制だと、エージェントが引き出すコンテキストや実行する回数で余計なコストが増えるから、開発者は効率を考えない理由があるかも。Cursorのモデルだと、効率が良いエージェントほど利益が増えるから、サブスクリプション制の方が全体的に良いよ。 いや、これはお得だよね。エンジニアはもっと少ない仕事で高い給料もらってるから。 俺はもっと多くの仕事をしてるから、簡単なタスクでやったのとは比べられない。Claudeは変更のテストすらしないし、機能を実装する必要を決めることもしないんだ。でも、俺の比較は“Claude Codeとどう違うか”じゃなくて“Claude CodeとAiderの比較”だからね。上司はAiderやClaude Codeなんて使わないし、俺の代わりにそれを使ったら不満が出るだろう。 要点を見逃してるよ。その主張は、Claude CodeやAiderがやったことに対して人を雇う方がコストがかかるってことじゃない? そのポイントには直接答えてると思うよ。確かに、Claude CodeやAiderがやったことを俺がやると高くつくだろうけど、Claude CodeやAiderが止まったところで俺の仕事に誰も満足しない。 彼らは必ずしも代わりになると言ってるわけではないと思う。高くても君の時間よりは安くて、他のタスクにもっと集中できるようになるってことだよ。 前半は正しいけど、結論は“今日Claudeでエンジニアを再現している”じゃなく、“経験豊富なエンジニアが生産性を10倍にしたから、インターンを雇わなくて済む”になるべきだよ。 つまり“経験豊富なエンジニアが生産性を10倍にしたから、90%は解雇できる”ってことか。 生産性の向上は数週間後には減少するってみんな忘れがちだよ。エンジニアリングスキルが急に鈍るのは確かで、LLMに考えさせるようになるとコードが質が落ちていく。使わないと失うから、早めに気づくのが重要だね。 最近の「AI自動プログラミング」ってどこに向かってるんだろう?30年前はFX取引が人間トレーダーでやってたけど、今はほとんどがアルゴリズムによる自動化。2025年のソフトウェア開発は2000年代のFXのようになるのかな? 僕がコードを学び始めた理由は、安上がりでアート系の音楽を作りたかったから。最初にPure Dataをダウンロードした時の感動は忘れられない。今の時代は、お金を払わなきゃいけない感が強いのが残念だけど、それでも学ぶ楽しさを感じている人もいるはず。 今の子供たちがコードを学ぶのが難しい理由ってあるの?むしろLLMがあって、個別の質問に答えてくれる無料のチューターがいるんだから、昔より学びやすいと思うけど。 中年になったけどずっとプログラミングを学びたかった。1年前からLLMを指導役にして、楽しく学べてる。今の学びやすさは素晴らしいと思う。 今の「やり方はクレジットカード必須だ」との意見は経験者に当てはまるけど、ただコードを作るだけの人には当てはまらないと思う。やはり学ぶ情熱が求められてるし、2027年にはどうなるか心配。 2027年にはプログラミングは資金力が鍵になるだろうね。オープンソースにとってはどうなるんだろう。 開発者向けのスタートアップって本当に大変だよね。どんなにお得でも、開発者は結局自分で作るかオープンソースに頼る傾向がある。 開発者が購入決定権を持たない理由はここにあると思う。大企業のIT部門が買ったツールを使わされることが多いから。開発者向けの製品は、実はIT担当者向けに売られてるのかも。 自分が大事に思っているのはロックインのコストや、頼るツールを修正する楽しみ。これを無視すると物足りない。 僕は「ロックインのコスト」以上に「ハッカー精神」が大事だと思う。ツールを使うだけではなく、その背後にあるものを理解したい。 投稿者はCursorやWindsurfみたいなAIコーディングアシスタントをあまり試してないみたいだね。最近エージェント型AIを使った感想だけど、90パーセントは快適で効率的だけど、残りの10パーセントはすごい痛いデバッグにつながることがあるんだ。個人的には、LLMコーディングアシスタントの最適な使い方は、戦略的なアーキテクチャの議論や、単一ファイル内の小さな明確なタスクに使うべきだと思う。エージェントはこの2つの間にうまく収まらないことが多いから、複数のつながったファイルを管理させるのは危険で生産的じゃないと感じてる。もっとコメントを表示(1)
もっとコメントを表示(2)
もっとコメントを表示(3)