天才の新人と熟練したシニア
CodexとClaude Codeを一緒に使って感じたこと
最近は「AIでコーディングする」という言葉がもはや特別ではない。
私も実際のサービス開発プロセスで複数のモデルを一緒に使っており、その中でもCodex(gpt-5-codex high)とClaude Code(Opus)は性格がはっきり異なる2人の同僚のように感じる。
興味深いのは、これらを単に「どちらがうまくコーディングできるか」で比較すると本質を見逃すことになるということだ。
これは実力の優劣の問題ではなく、開発者に似た性格の違いに近い。
Codex: 天才的な新人開発者
Codexを初めて使ったとき、最も印象的だったのはスピードだった。
問題を投げると、ためらいなくすぐにコードが出てくる。アイデアを構造に変える能力が優れている。
まるでこのような感じだ。
「これはこう解けばいいのではないですか?」
—入社したばかりなのに異様に頭がよく回る新人
特に次のような状況では、Codexは本当に強い。
- 頭の中にあるアイデアを素早くコード形式で見たいとき
- プロトタイプ、POC、実験的な構造を作成したいとき
- 言語やフレームワークの文法の完成度が重要なとき
ただし、実際のRailsサービスを運用する立場からすると、残念な点も明らかにある。
例えば、migrationファイルを作成する際、
up / downメソッドの意図やRailsが推奨する変更方法(例: reversible migration)を正確に理解していないことがある。
また、Kamalのようなデプロイツールについても、「存在は知っているが文脈はわからない」という回答をすることがある。
これはCodexが不足しているわけではなく、
Railsを「使用した経験の時間」がまだ短い開発者に近い印象がある。
Claude Code(Opus): 長くRailsを使ってきたシニア
一方、Claude Code(Opus)は最初から感じが異なる。
問題を投げると、すぐにコードを書き始めない。まず文脈を整理する。
「これはRailsでこのような流れになるのが自然です。」
この言い方自体がすでにシニアだ。
Claude Codeの強みは明確だ。
- Railsプラットフォーム全般に対する理解
- migration → デプロイ → 運用に続く全体の流れ
- 「可能なコード」ではなく「Railsが意図するコード」を選択する判断
同じmigrationを書いても、
単に動作するコードではなく戻せる形式であり、チームがメンテナンスしやすい形を最初に提案する。
そのため、Claude Codeが提供するコードは華やかではない。
しかし、実際のサービスを運用した人の立場からすると、「あ、これは現場で使っていた方法だ」と感じる。
私はこの点が非常に重要だと考えています。
コードは結局 作成 よりも 運用 の時間がはるかに長いためです。
私はこのようにして2つのモデルを使う
したがって、最近は2つのモデルを意図的に分離して使っています。
同じ質問を投げて回答を比較するのではなく、役割を分担して一緒に作業するようにします。
通常、開発を開始するときは次のように設定します。
Warpターミナルを開き、
左右に2つのパネルを作成します。
- 左のパネル: Claude Code(Opus)
- 右のパネル: Codex(gpt-5-codex high)
左側には常にClaude Codeがいます。
ここでは直接コードを書きません。
まずClaude Codeにプランを立てさせます。
- この機能をRailsでどのような構造で進めるのが自然か
- モデル、コントローラー、サービスオブジェクトの境界はどこが良いか
- migrationはどの順序で行うと安全か
- デプロイと運用まで考慮したときに注意すべき点は何か
Claude Codeはこの段階でほぼ技術設計のレビュアーのように振る舞います。
「これがRailsらしいです」という言葉が自然に出てきます。
次に、同じ計画を右側のCodexに投げます。
「このプランに抜け漏れがないか見てくれ。」
「ここでより単純化できる部分があるか?」
Codexはこの時本当に良い役割を果たします。
構造の欠陥を素早く指摘したり、不必要に複雑になった部分を大胆に整理してくれます。
作成はClaude、レビューはCodex
計画が整理されたら、実際のコードは再びClaude Codeで書きます。
理由は単純です。
Railsでは「動くコードを作る」よりも
「長く生き残るコード」が重要なためです。
Claude Codeが書くコードは速度は遅くても、
- migrationのロールバックを考慮し
- Railsの慣習を損なわず
- 後で自分が再度見ても理解できる形で出てきます
コードがある程度完成したら、
その時にCodexをコードレビュアーとして使います。
- このロジック、より単純に書けないか?
- クエリや繰り返し処理で見落とした部分はないか?
- テストしにくい構造はないか?
Codexはこの段階で本当に有能です。
まるで 目の利いた新人が先輩のコードにためらいなく質問を投げる感じです。
2つのAIを同時に使って感じたこと
このように使ってみると、確信が持てました。
CodexとClaude Codeを比較することには大きな意味がない。
重要なのは どのような役割に配置するかです。
- Codexは発散とチェックに強く
- Claude Codeは蓄積と安定に強い
Warpの左右パネルにこれら2つを並べていると、
一人で開発しているにもかかわらず
チーム内に異なる性格の開発者2人がいるような気分になります。
そして私はその間で
決定を下す開発者に過ぎません。