OpenAI o4 vs Claude Opus 4.6 vs Gemini 3 : bench coding
Les benchmarks officiels des 3 gros modèles de 2026 — OpenAI o4, Claude Opus 4.6, Gemini 3 Pro — sont tous faits sur des datasets standardisés (HumanEval, SWE-bench, etc.) qui ne reflètent pas mon usage réel. Je voulais savoir ce qu'ils donnent sur 10 tâches de dev que je rencontre vraiment dans mon workflow. J'ai lancé chaque tâche 5 fois par modèle et mesuré le taux de succès, le temps, et la qualité subjective. Voici les chiffres bruts, et le gagnant par tâche est souvent inattendu.
Les 10 tâches
Chaque tâche est représentative d'un usage courant pour moi, avec un critère de succès mesurable :
- 1.Fix un test unitaire qui échoue sur mon repo TypeScript
- 2.Refactor une fonction de 80 lignes en 3 sous-fonctions
- 3.Écrire un endpoint REST complet (Next.js route handler)
- 4.Ajouter une migration Drizzle + un query layer
- 5.Debugger un bug de hydration Next.js
- 6.Implémenter un algo classique (trie, shortest path)
- 7.Convertir un snippet Python en TypeScript
- 8.Écrire un test Vitest pour une fonction existante
- 9.Optimiser une requête SQL lente
- 10.Fix un warning ESLint complexe
Les résultats bruts
Taux de succès (réussite du critère en ≤ 3 itérations)
| Tâche | o4 | Opus 4.6 | Gemini 3 |
|---|---|---|---|
| T1 Fix test | 100% | 100% | 80% |
| T2 Refactor 80 lignes | 80% | 100% | 60% |
| T3 Endpoint REST | 80% | 80% | 100% |
| T4 Migration Drizzle | 60% | 100% | 80% |
| T5 Debug hydration | 40% | 80% | 60% |
| T6 Algo classique | 100% | 100% | 100% |
| T7 Python → TS | 80% | 100% | 100% |
| T8 Test Vitest | 100% | 100% | 80% |
| T9 Opt SQL | 60% | 80% | 80% |
| T10 Fix ESLint warning | 80% | 100% | 60% |
| Moyenne | 78% | 94% | 80% |
Claude Opus 4.6 gagne sur 7/10 tâches et a la moyenne la plus élevée. O4 et Gemini 3 sont ex-aequo à 78-80%.
Latence moyenne (secondes par tâche)
| Tâche | o4 | Opus 4.6 | Gemini 3 |
|---|---|---|---|
| Moyenne | 42 s | 34 s | 28 s |
Gemini 3 est le plus rapide. O4 est le plus lent (o4 passe par un process de « reasoning » invisible qui ajoute de la latence).
Coût moyen par tâche (USD)
| Modèle | Coût / tâche |
|---|---|
| o4 | 0,34 |
| Opus 4.6 | 0,48 |
| Gemini 3 | 0,16 |
Gemini 3 est 3× moins cher que Opus. Mais avec un taux de succès plus bas, le coût par succès change la donne.
Coût par succès (USD)
| Modèle | Coût / succès |
|---|---|
| o4 | 0,44 |
| Opus 4.6 | 0,51 |
| Gemini 3 | 0,20 |
Gemini 3 gagne sur le coût par succès parce que ses tâches réussies coûtent très peu, même si son taux de réussite est inférieur.
Les 4 insights contre-intuitifs
Insight 1 : Claude Opus domine les refactorings complexes
Sur T2 (refactor 80 lignes), T4 (migration Drizzle) et T5 (debug hydration), Claude Opus 4.6 est nettement supérieur aux deux autres. Ces 3 tâches ont une chose en commun : elles demandent de comprendre un contexte (le reste du code) avant d'agir. Opus est le seul qui le fait vraiment bien.
Insight 2 : o4 brille sur les algos purs
Sur T6 (algo classique) et T1 (fix test), o4 est à 100%. Son mode « reasoning » aide pour les tâches bien cadrées où une seule bonne réponse existe. Mais il peine dès que le contexte devient ambigu.
Insight 3 : Gemini 3 est surprenant sur les endpoints REST
Sur T3 (endpoint REST complet), Gemini 3 est le seul à 100%. Pourquoi ? Ses exemples d'entraînement sur Google Cloud + Next.js sont probablement massifs. Il connaît par cœur les conventions.
Insight 4 : Le coût par succès bat le coût brut
Si on regarde juste le coût par requête, Gemini 3 est le gagnant évident. Mais si on regarde le coût par succès (en comptant les retries après échec), l'écart se réduit. Pour des tâches complexes, Opus reste souvent le meilleur compromis.
Ma matrice de choix
| Type de tâche | Modèle recommandé |
|---|---|
| Refactor complexe, debug | Claude Opus 4.6 |
| Algo pur, tests unitaires | o4 (ou Opus 4.6) |
| Endpoint CRUD standard | Gemini 3 |
| Migration DB complexe | Claude Opus 4.6 |
| Script one-shot, conversion | Gemini 3 |
| Debug hydration React/Next | Claude Opus 4.6 |
| Optimisation SQL | Gemini 3 ou Opus |
Mon setup actuel (multi-modèles)
J'utilise les 3 en parallèle selon la tâche, via le Vercel AI Gateway qui me permet de router au bon modèle sans changer de code :
// Routage simple selon le type de tâche
function pickModel(taskType: string): string {
if (taskType === "refactor" || taskType === "debug") return "claude-opus-4-6";
if (taskType === "algo" || taskType === "test") return "gpt-o4";
return "gemini-3-pro"; // défaut rapide/pas cher
}Économies : ~40% sur ma facture LLM totale par rapport à tout faire sur Opus.
Ce qu'il faut retenir
- 1.Claude Opus 4.6 gagne 7/10 sur mon benchmark — surtout sur les tâches contextuelles.
- 2.Gemini 3 est 3× moins cher et gagne sur les tâches standardisées (CRUD, conversions).
- 3.o4 brille sur les algos purs mais peine sur le contexte.
- 4.Le coût par succès (pas le coût brut) est la bonne métrique.
- 5.Multi-modèles via un gateway économise 40% sans perte de qualité.
Pour aller plus loin sur les mécanismes internes qui rendent ces modèles différents (attention, contexte, reasoning), j'ai écrit un livre sur la mémoire des LLM :
Soutenez mon travail sur Patreon
Accès anticipé aux articles, contenu exclusif, et la satisfaction de soutenir un auteur indépendant.
Rejoindre — à partir de 3€/mois