なぜClaude Codeはこれほどまでに優れているのか?その理由に迫る
引用元:https://news.ycombinator.com/item?id=44998295
ちょっと意味が分かんないんだけどさ。タイトルは”Claude Codeはなんでこんなに優れてるの?”って言ってるのに、他のツールより優れてるとか、単にすごいって話じゃなくて、Claude Codeのドキュメントを違う言葉で繰り返してるだけじゃん?何か見落としてる?それともこれ、Anthropicの宣伝?
この記事はさ、Claude Codeが最高だって主観的に思ってる読者向けに書かれてるんだと思うよ。
(ブログ記事の著者だけど)
ハハ、全くもってその通り!俺もさ、Claude Codeと他のツールを比較したり、アーキテクチャをダンプしたりする記事は山ほど読んだんだ。この記事は主にClaude Codeを使い込んでて、それがマジで最高だと知ってて、そういう体験を自分のアプリでどう提供できるか考えてる人向けに書いたんだよ。
俺はClaude Code、Cursor、それにVS CodeのCopilotも使ったことあるけど、Claude Codeが他のより優れてるとは”知ら”ないな。ターミナルで動くから少し速いのはあるけど、エディタ内で動くツールよりは操作性が悪い。コンテキストの工夫だってCopilotの指示でもできるし、Claude Codeがどう優れてるのか、正直全く理解できないんだ。
Claude Codeにハマりすぎて、しばらくCursorやVS CodeのCopilotは使ってないんだ。それらのツールも、思考プロセスや計画を見れて、間違った方向に進んでる時にESCキーで修正できるのかな?
俺、Claude Codeでその機能が一番気に入ってるんだよ。例えば、「実装が未完了だから、テストをモック使うように更新しなきゃ」って言われたら、中断して「いや、実装が終わるまではテストが失敗してもいいからモックは使わないで」って言えるしね。ひょっとしたら移行後に発見しただけかもしれないけど、CursorやCopilotでそういうインタラクションパターンがあった記憶がないんだ。いつも後からリバートするしかなかったんだよ(単に俺が見落としてただけかもだけど)。
Cursorもさ、小さい灰色の文字で”思考”を表示してくれるよ。そのあと、”30秒考えた”って小さな灰色のメモの裏に隠れるんだけどね。もし、間違った方向に進んでたら、ストップボタンを押してエージェントを修正するか、スクロールして前のやり取りからやり直せるよ(Claude CodeのダブルESCと同じ感じ)。
VS Codeでも、もう1ヶ月くらい前からできるようになったよ。
コード生成に関しては、今のところOpusに勝るものはないね。Gemini 2.5 proやGemini Code Assistでは解けなかったバグを、Opusは動くコードを生成して直してくれることが多いよ。Gemini Code Assistは2.5 proよりは良いけど、プロンプトごとの制限が多いし、出力が途中で切れちゃうこともよくあるんだ。
AnthropicのモデルはSQLだと信用できないって分かったよ(例えば、ANDとORの演算子優先順位を間違えたり、単純にカッコを何度も付け忘れたりするんだ)。Gemini 2.5 proにはそういう問題はないし、Claudeの間違いも正確に指摘してくれたね。
Codex-CLIとgpt-5は結構良いぞ。Codex-CLIの足場はCCに劣るけど、gpt-5のコードはかなりしっかりしてると思う。(/modelで思考レベルを調整できるしね。)
この記事はモデルの比較じゃなくて、Claude Codeみたいなツールでモデルがどう使われてるかの話だよね。単なるAPIのラッパーじゃないんだよ。
個人的には、Gemini 2.5 Proに思考トークンを有効にすると、”難しい問題”に関してはOpusより断然すごいと思うな。
仮にそれが正しいとしても、CursorとかでOpusを使えばいいだけじゃない?
タイトルには他のツールと比較するって書いてないよね?ただ”すごく良い”ってだけじゃん。
”すごく良い”って表現は、比較できるツールの平均をベンチマークにしてるって意味だよね。前提がないなら1996年のYugoだって”すごく良い”って言える。だって、馬よりはマシだったし。
確かにね。でもYugoは馬45頭分のパワーがあって、街の通りに糞を残さなかったからね。))
タイトルにはないけど、記事の冒頭で「Claude CodeはCursorやGitHub Copilotのエージェントと比べて煩わしくないって客観的に感じるんだ。同じ基盤モデルを使ってもね!何でそんなに良いんだろう?」って書いてあるよ。
Claude CodeとCursorの違いは、片方がコマンドラインツール、もう片方がIDEってことだよ。両方でClaudeモデルを使えるし、記事のテクニックはCursorでも適用できる。CokeとPepsiみたいなもんだね。
全然違うよ。エージェントツールは完全に自律的になれるけど、CursorみたいなIDEは「ただの」エディターだよ。真逆だね。Cursorも負荷の高い作業はするけど、コードを書くのはユーザーだよ。完全なエージェントツールやモデルを実装し始めてるけど、Claude Codeほどはまだ機能しないね。
Cursor Agent CLIもあるよ。CCと全く同じTUIだね。GUIのAIアシスタントが好きじゃないし、CCの過負荷やバグにもうんざりしてたから乗り換えたんだ。今はGPT5とCursor Agent CLIを使ってて、CCの代替があって嬉しいよ。
Cursor AgentとGPT5の調子はどう?俺はClaude Codeをしばらく使ってるんだけど、最近タイムアウトや速度低下が増えてきてるんだ。
個人的なプロジェクトでは、CAがCCとAnthropicモデルの必要性を完全に置き換えてくれたよ。仕事ではネイティブWindowsサポートを待ってる。WSL経由のAIアシスタントは好きじゃないんだ。CAもCCもNodeアプリだし、CCがもうネイティブWindows対応したから、CAもすぐにだろうね。今日からハックして動かす方法も試してるよ: github.com/TomasHubelbauer/cursor-agent-windows
いい情報だね。今度のグリーンフィールドプロジェクトで試してみるよ。ありがとう。
Claude Codeって純粋なClaudeモデルじゃないよ。各社が独自プロンプトを加えてるから、全然体験が違うんだ。Kiroみたいな他のClaudeモデルと比べてみたら分かるよ。
残念だけど、Claude Codeはオープンソースじゃないんだ。でも、どう動いてるか知るにはツールがあるよ。Claude Trace: https://github.com/badlogic/lemmy/tree/main/apps/claude-trac…を強く勧めるよ。セッションで使われた全てのツールとプロンプトをJSONや見やすいHTMLファイルで吐き出してくれるからね。
もしOSSの代替を探してるなら、OpenHands CLIをチェックしてみてね: https://github.com/All-Hands-AI/OpenHands?tab=readme-ov-file
https://github.com/anthropics/claude-codeを見ればシステムプロンプトも分かるよ。ベースモデルがタスクを細かいステップに分解して、忍耐強く、失敗にも強いように訓練されてるのがポイントなんだ。
そのリポジトリにはコードは含まれてないよ。課題トラッカーと一部の例示フックだけなんだ。
それ、投稿されてからDMCAテイクダウンされたんだね。フォークはどこにあるか知らない?
DMCAされたのは知ってるよ、だからあの:trollface:なんだ。フォークはもう見つからないだろうし、仮に見つかっても古いバージョンだろうね。最新のClaude Codeは、minified JavaScriptとかをリバースエンジニアリングする方が多分マシだよ。
もっとコメントを表示(1)
dnakov/claude-code mirrorって検索すれば、ソースコードへのパスがあるよ。2分で見つかったもん。
JavaScriptアプリで、ローカルシステムにインストールされるよ。
Claudeの内部構造を2ヶ月もいじってるから、仕組みは知ってるよ。トランスパイルされてて、ミニファイされてて、マジでごちゃごちゃで解読するのめちゃ大変。だからclaude-traceとかclaude-bridge [1] があって本当に助かってる。自分でデコンパイルするより、ずっとClaudeの内部をいじりやすいんだ。[1]: https://github.com/badlogic/lemmy/tree/main/apps/claude-brid…
で、このすごいコーディングAIエージェントたちは、これまでにどんな素晴らしい新製品やスタートアップを生み出したの?(AI供給側じゃなくてね)。どこかで確認できる?
それ、調べない方がいいよ…。Redditで誰かがSaaSを20日で開発・ローンチ・販売できるって言ってたけど、いくつか見てみたら、Claude Codeなら数時間でできちゃう。僕もAIなしでできるよ、全部揃ったフレームワークがあるから。でもClaudeは数時間でゼロからできるんだ。僕ならテストと修正入れても1日。それは製品やスタートアップじゃなくて、詐欺まがいだよ。でも、とにかく完成させたのはすごいけどね。ローンチして実際にお金稼ぐ人ってそんなにいないから。
ローンチや販売はAIには絶対にできないよね。僕も自分のフレームワークを使えば数時間でSaaSを書けるし、AIが書いたものよりずっと安全だって自信がある。ローンチの仕方も知ってるよ(“販売”は苦手だけど)。もし全部できる人がいたら、RedditやYouTubeで自分を売り込んだりはしないはず。簡単に金持ちになる方法を教えてくれる人を見たら、その人は失敗したか、そうでなければこんなことに時間を使わないって考えるべき。だから、彼らのアドバイスは聞かない方が賢明だよ。
AIはローンチや販売はできないって話だけど、彼は技術的な側面を言ってたんだよ。“販売”は対面なら得意だけど、新しいインフルエンサー販売とかはまだ理解できないし、できないな(50代だけど、まだ学べるよ)。全部できるならRedditやYouTubeで自分を売り込んだりしないって言うけど、彼の場合は実際に製品のURLを公開してるから、そこは違うね。
過去1年間のスタートアップは文字通り全部、これらのAIに助けられてるよ。もちろん、まだ1年目のスタートアップだから、君が聞いたことないのも当然だよね。
シェアしてくれてありがとう。マルチエージェントシステムへの需要が高まる中で、LLMファーストの組織がどう取り組んでいるかを見るのは参考になるね。ここで挙げられてる設計の多くは僕も日々試してることだから、他の人も使ってるって知れて嬉しいよ。
(1)長いプロンプトは良いね。ツールが何か、どうユーザーを助けるか、みたいな基本をプロンプトで説明するのを忘れずに。
(2)ツール呼び出しは超基本だから、もっとコンテキスト(いつ使うか、使わないか、など)が必要だよ。
(3)システムメモリの状態でメッセージを使うのはOK。データフレームの永続化とか、ステップ間の変数解析とか、もっと凝った方法も考えたけど、コンテキストウィンドウが大きくなればメッセージで大丈夫そう。
長いプロンプトが良いのは、モデルがそれに最適化されている場合だけだよって言いたい。Claude Codeの基盤モデルを入れ替えようとしたんだけど、多くのローカルモデルは、長文コンテキストやツール利用に対応してると言われてても、指示が長すぎるとうまく機能しないんだ。これはツール利用で問題になってる。小さなChatBotみたいなデモではうまくいくのに、Claudeのコードレベルのプロンプト長が長くなると、ツールを忘れたり、使わなかったり、間違った形式で返したりして失敗するんだよね。OpenAIのモデルやGoogleのGeminiは、一応動くけど、Anthropic自身のモデルほどじゃないし、ずっと遅く感じるよ。
ブログ記事の著者だよ。基本的なことで多くのパフォーマンスが出せるし、99%のユースケースでは複雑な設定はいらないんだ。ループはシンプルに、ツールは明確にしよう(機能が重複しててもOK)。明瞭さとシンプルさが何よりも大切だよ。
Vercel’s AI SDKみたいなフレームワークって役立つのかな?それとも、ループとツール呼び出しが簡単すぎて、フレームワークは逆に複雑にしちゃう?WYSIWYG markdownアプリでClaude Codeみたいなエージェントを作りたいから、この記事を見つけたんだよ。
関数/ツール呼び出しって、実はすごくシンプルなんだ。最初はOpenAIとかGeminiみたいな単一のLLMプロバイダーで、フレームワークなしで試すのがおすすめ。必要なら、LangChainみたいなシンプルなフレームワークに移行すればいい。LangGraphとかはすぐ複雑になっちゃうから気をつけてね。
OpenAI REST APIのリファレンスを見てみて。ほとんどのエンジンがこれを実装してるから、ツール呼び出しの仕組みがわかるはずだよ。あとは、LLMからのレスポンスを理解して、それをメッセージ履歴に入れて、LLMがツールを要求したときに呼び出す方法を覚えればOKさ。
AI SDKを使う理由は他にもあるだろうけど、まずはシンプルなループとClaude Codeの関連ツールを移植するところから始めるのを強く勧めるよ。エージェントができたら、ぜひリンクを教えてね!見てみたいからさ!
今、Claude Codeを使うのが大変な時期なんだ。Security OnionでElasticのデバッグを試してるんだけど、数分で難読化されたJSとError: kill EPERM
っていうエラーを吐き出すんだよね。
たぶん、実行するスクリプトのせいでNode.jsプロセスがkillされて、Claude自身も巻き添えになってるんだろうな。問題を解決できなくて、自殺しちゃったのかも(笑)。
とにかく、生きてて助けてほしいよ。
ClaudeとLocalstackの一部は相性が良くないみたい。でもRustは結構得意で驚いたよ。
LLMが「一番よく知ってる」言語やプラットフォームが主流になって、技術が均質化されていくんじゃないかな。だって、Node.jsで10倍うまくいくなら、ElixirやGoを新規プロジェクトで選ぶ意味ないでしょ?特にテック企業じゃない場合、ジュニア開発者をミッドレベルやシニアみたいに使えるんだからね。
最近変なこと考えてるんだ。LLMが苦手な言語や技術スタックだからって、「AIに仕事は奪われない」って言う人いるけど、それって他のスタックが有利ってことなのかな?Claude Codeを使うシニアエンジニアがPythonやTypeScriptで爆速で解決できるなら、俺たちって本当に安全?
LLMの生成コードは手書きコードと全然違うのが嫌だけど、コーディングエージェントで5倍速く動ける世界で、手書きコードってどれだけ意味があるんだろう?あの「ダサい」LLM生成コードが、実はエージェントにとって分かりやすいのかもって思うと、ちょっと不安になるね。
特定の技術スタックの欠点はそのまま残るよ。GC問題回避とか、堅牢な型安全が必要な業界では、LLMに「ウケの良い」ツールに安易に乗り換えると、金銭的な負担が増えるか、顧客が許容できない失敗が増えるだろうね。
そのせいで「難しい」仕事と「簡単な」仕事のギャップが広がりそう。FAANG企業で難しい仕事すると見せかけて簡単なCRUD作業させられるような状況も、将来は変わるかも。COBOLエンジニア探すみたいに、元FAANGの人材も採用が難しくなるかもね。
LLMが生成したコードの細かい部分を気にしないってのが、なかなか難しいんだよね。正しくても、自分の「好み」に合わせてほとんど手直ししちゃう。でも、エージェント駆動型プログラミングにおいて、これって長期的に見れば時間の最適な使い方じゃないって感じるんだ。いつかモデルが俺の書き方を完璧に理解してくれるくらい賢くなることを願ってるよ。
AIが作ったコードベースがデカくなると、メンテしにくくなるのが問題になると思うんだ。でも、このやり方ならコードのメンテが長期的には楽になるはずだよ。
解決策はね、こういうのはプロンプトとかツール、リンターみたいなゲートウェイにルール化して任せることだよ。もう手放すしかないんだから…。
「手放せ」ってどういうこと?俺はAIツールも使うけど、一生AIに全部任せる気はないね。別に怖いわけじゃなくて、趣味としてもゼロからものを作ったり問題を解決するのが好きなんだ。なんでそれを手放さなきゃいけないんだよ?
まあさ、趣味じゃないなら、手作業で出力に手を入れるんじゃなくて、リンターとかフォーマッターに自分の好みを覚えさせるしかないってことだよ。「リンターとフォーマッターが引っかからなきゃ気にしない」って思えるとマジで楽。PRの細かいフィードバックを元に、いつもリンターの設定を更新してるから、コードベースはどんどんレビューしやすくなるよ。機械に得意なことをやらせるって、開発の基本だろ?
俺もそうしてるんだけど、ある程度はうまくいくよ。でもね、確定的なリンターにできないようなことについては、プロンプトだけじゃ100%は信頼できないんだ。LLMの学習データとちょっとでも違うことをさせようとすると、すぐに忘れちゃう可能性が高いんだよね。
パフォーマンスやセキュリティを考えると、特定の言語や技術スタックが必要なこともあるよね。今のLLMはまだハルシネーションを起こすし、汎用性も足りない。大量に生成されたコードは、時にメリットじゃなくて技術的負債になるんだ。LLMはオープンで速いプロトタイプ的なWebアプリにはいいけど、安定してて、一貫性があって、メンテもできて安全なフレームワークとか、科学計算には純粋なLLMだけじゃダメだよ。細部を確認せずに雰囲気だけで全部やるわけにはいかないんだ。
LLMは学習データにたくさん例があるからPythonとかTypeScriptは得意だよね。でもさ、LLMが生成するのに最適な新しいプログラミング言語を作ったらどうなる?アセンブリ言語に近くなるのかな?もし未来が「雰囲気コード」で、出力されたコードはほとんど見ないで、入力と出力が正しく一致するかだけテストするようになったら、そんな言語ってどんな形になるんだろうね?
多分もっとひどくなるだろうね。LLMにはプログラミングロジックに対する本質的な感覚なんてないんだ。ただ大量の学習データからパターンマッチングしてるだけだからさ。もし、いろんなコーディングタスクに十分な学習例がなくて、既存の言語と構文が全然違う新しい言語を作っても、LLMは十分な学習データがないから、全然うまくできないだろうね。
LLMにとって、Python以外の特定の言語が「最適」になるってどういうことだと思う?なんかLLMに本質的に優しい言語パターンってあるのかな?それとも、「膨大な学習例」と「堅牢な標準ライブラリ」(後者はトークンやアテンションを節約するためで、超冗長なアセンブリを一日中吐き出すよりはマシ)が「最適性」の全てってこと?
俺も同じことを考えてたよ。それってどうやって作られるんだろう?LLMが言語を作るってアイデアなの?それとも開発者がLLM向けに言語を作るの?例がない新しい言語について、どうやってLLMに知識をつけさせるんだ?
もっとコメントを表示(2)
厳密な型チェックと、依存型や帰納型もあるのが良いってことだよね。
Elasticsearch関連では、どのLLMも全然役に立たないよ。ネット上に完全な例が少ないから、全部ハルシネーションばっかり吐き出すんだ。
今のインストールをアップグレードするか、全部消して再インストールしてみるといいよ。どこかに状態が悪いキャッシュファイルがあるかも。僕の場合、似たようなことでこれで直ったからさ。
別のLLMに切り替えたら、何が起きたか見つけるのに役立ったよ。(これは公式のアドバイスじゃないけどね :))
GoogleのGemini(Pro?)って、コードに関してClaudeと比べてどう思う?Googleの出すものは好きなんだけど、すぐに製品を終わらせちゃうし、Chromeとかの企業統制や検閲も結構強引だからなぁ。
Geminiはリポジトリ全体を理解する能力が半端なくて、アーキテクチャ計画の支援もすごいよ。Claudeには全然無理。僕のやり方は、Geminiでプロジェクトの概要と高レベルな計画を立てて、それをGPT-5に渡して改善させ、詳細なワークフローXMLに変換。そのXMLをClaudeに渡して実装させてるんだ。これでClaudeの予定外の失敗はほとんど避けられるよ。
Web UIのチャットならGemini 2.5 Proが結構好きかな。コマンドラインツールだと(Claude CodeとGemini Codeの比較では)話にならないね。Gemini Codeは使い物にならなかったし、Claude Codeはただ遅いだけだったよ。
これを詳しく書いてくれないかな?僕も基本的なGPT → Claudeのワークフローを使ってるからさ。
俺の研究/統計ワークフロー用に作ったGist(https://gist.github.com/githubcustomerserviceistrash/c716e76…)だよ。これは特定の用途向けだけど、ChatGPTに一般化させて使えるはず。
Gemini CLIツールは最悪だね。ファイル修正で無限ループに陥るし、ツール利用も90%は失敗する。おまけに『性格』も鬱っぽくて自己卑下ばっか、マジで変だよ。ひょっとして俺のこと嫌いなのかな?俺は嫌いだけどね。
Geminiはよくコードを書かずに、仮説的な解決策を話すだけなんだよね。ツール側の問題っぽいけど。
『executable oracles』とか『hermetic boots』って言葉、君の専門分野と関係あるの?それともAIエージェントの専門用語として使ってる?Oracleが真実の源で、hermeticが外部依存なしって意味なら、簡潔な言葉を求める君の意図に合ってるね。もっと詳しく知りたいよ。
Gemini CLIのことだよね?うん、ややこしいもんね。
個人的にはGeminiの方がいい結果を出してるよ。ClaudeはSvelteの文脈でもReactコードを生成しようとしてばかりで、ちゃんと動くものを作ってくれない。でもGeminiはスタイリングやビジネスロジックで結構使える。Claudeがこんなに騒がれてる理由がわからないな。
Claudeが詰まったり堂々巡りになったら、俺はGemini PROでコードやデータを分析して、その結果をClaudeにフィードバックしてるよ。大規模なSQL変換スクリプトなんかはGeminiの方が成功するね。どちらも大規模タスクだと60%くらいまでしかできなくて、残り40%を終わらせるのに何日もかかっちゃう。LLMに合わないタスクを選んじゃうと、本当に時間の無駄だよ。