はじめに
本記事は、約1ヶ月程Claude CodeとGemini CLIをプライベートで使い倒したエンジニアによる、それぞれの傾向と所感をまとめたものです。
どちらかと言うと、メリットよりもデメリットの方が強めに感じてしまうのですが、明らかに開発速度が異常なので僕がそれについて行けていない感が否めません。
どこまで行っても個人の感想文なので、全てを鵜呑みにせずご自身で試行したり情報を集めることを推奨いたします。
また、開発方法については僕が提唱している構造的対話という概念を適用したシステムプロンプトやセッションの引き継ぎを行っております。
詳細についてはGitHubやQiita記事で紹介しているので、参考にしたい方はお気軽にどうぞ。
Github: 構造的対話:生成AIと共に思考を構築・再起動するための対話フレームワーク
Qiita:
開発環境
- WSL: Ubuntu 24.04
- Claude Code (Proプラン)
- Gemini CLI (無料プラン)
- node.js
※ それぞれの導入方法は割愛します。
何を作っているか?
ローカルで稼働するLLMを用いないAIをバイブコーディングで作成しています。
セッション間やAI間の引き継ぎは、主に「NEXT_SESSION_HANDOVER.md」と「LATEST_SESSION.md」を引き継ぎドキュメントとして要所要所で更新させています。
これにより現状把握と次回作業を引き継ぐことによって、「セッションを引き継いでほしい」等の指示のみでスムーズに作業に着手させています(※ただし、完璧に引き継げるわけではありません)。
ここ数日デバッグでコミットできておりませんが、成果はここに公開しています。
Claude CodeとGemini CLIそれぞれの強みと弱み
前提が長くなりました。本題に移ります。
Claude Code
Proプラン以上前提、ある程度使うと一定時間の制限がかかる。
メリット
- 問題解決能力が高い
- デバッグに強い
- タスクツールを使わせると全体調査もお手の物
- 構造理解力が高い
- フォールバック処理を毎回忘れずに実装してくれる
デメリット
- ロジックが複雑になると簡易実装やハードコーディングなどに逃避する
- コンテキストが少なめな為、大きいサイズのファイルは一部しか読まない
- 1回の作業量が多くなると、実装だけでテストせずに動作確認完了報告をする
- 難しくなると、とにかく逃避や隠蔽が激しい。強く丁寧に指示すればちゃんと仕事する
- 明らかなエラーが出たとしても、その時の目的でない場合はガンスルー
総評
基本的に優秀だが、虚言癖もあり過大評価しがち。
実装を任せっきりにすると1000行中500行はハードコーディングや固定値実装だったこともしばしば。
真面目に使おうとすると制限にすぐ引っかかるので、業務で使用する場合はMaxプランにしないと作業が滞ると思われる。
デバッグや問題解決能力自体は本当に高い為、しっかり監視して適宜指示すれば大抵どうにかなる。
Gemini CLI
コンテキストの長さと無料プランでのリクエスト数が強み。ただし、Flashは相当癖がある。
メリット
- コンテキスト長を活かしたコード読解や、プロジェクトの全体監査が優秀
- アルゴリズムにも強い為、学術理論を実装したい時にはとても役に立つ
- ユニットテストをとても堅牢に行ってくれる
- 設計面でも優秀
- Proの賢さは目を瞠るものがある
デメリット
- 使っているCLIツールに柔軟性が無く、よくreplace操作を失敗する
- 一度失敗すると無限に同じことを繰り返し始める場合が多々ある
- 間違っていることを指摘しても、ユーザー側が間違っていると勘違いすることがあり、同じ作業を繰り返す
- Gemini特有の不安定さが色濃い(全く同一の応答が返されたり、勝手に前回の指示を繰り返す等)
- デバッグがとても苦手
総評
語弊や偏見を恐れずに言うと「おバカ」な行動が目立つ。
具体的には、
「デバッグログを突っ込みすぎて、サーバー1回の起動でログファイルが27MBに達してしまう。read_fileツールは20MBまでしか読み込めないので、ログをクリアして再度サーバーを起動する。しかし1回でログファイルが27MBに達してしまうので読み込めず、再びログをクリアして(以下無限ループ」
なんてことがザラに起こる。
他にもタイムアウト機能が無いので、フォアグラウンドでサーバーを起動してしまうとコンソールログを読むことができない(ユーザーがキャンセルするまで延々と固まる)。など。
Proの場合は無限ループになりかけたら能動的にアプローチを変えてくれるのでストレスフリーで信頼できる。
まとめ
ここ1~2ヶ月のClaude CodeやGemini CLIの評判を聞いていると、ポジティブな話は具体的な話が多く見受けられますが、ネガティブな話(デメリットなど)は少ないし具体例がほとんど存在しないように感じました。
本記事で、ある程度の傾向を掴んでそれぞれを使い分ける一助になれば嬉しいです。