7 points par davespark 2026-02-01 | Aucun commentaire pour le moment. | Partager sur WhatsApp

L’ancien ingénieur de Facebook Christopher Chedeau (Vjeux) a mené une expérience consistant à porter le moteur de combat de Pokemon Showdown (environ 100 000 lignes de TypeScript) vers Rust en s’appuyant sur Claude Code

Objectifs du projet

  • Construire un oracle rapide (système de référence) pour l’entraînement d’une IA de combat Pokemon
  • Implémentation TypeScript existante → trop lente (impossible d’exécuter des millions de simulations de combat)
  • Langage cible : Rust (hautes performances) → mais aucune expérience préalable en Rust

Principaux résultats

  • Portage d’environ 100 000 lignes terminé en 1 mois (environ 2 à 4 semaines de travail effectif)
  • Environ 5 000 commits générés
  • Vitesse d’exécution améliorée de 3,5x
  • Taux de concordance de 99,96 % lors des tests différentiels (sur 2 millions de combats aléatoires)
    • Les 0,04 % restants seraient dus à des bugs dans le code TypeScript d’origine

Stratégie clé du succès

  • Adoption des tests différentiels (differential testing)
    • Exécution simultanée de la version TypeScript d’origine et de la version Rust → comparaison des résultats
    • En cas de divergence → affichage des logs à Claude et demande de correction
  • Validation possible même avec une connaissance presque nulle de la syntaxe Rust

Principales difficultés rencontrées par Claude

  • Le portage fichier par fichier fonctionne bien ↔ des problèmes fréquents apparaissent lors de l’intégration entre fichiers
    • Exemple : le même concept (move) est défini dans des structures différentes
  • Limite de la fenêtre de contexte → perte d’informations importantes lors des résumés intermédiaires
  • Tendance à vouloir “faire mieux” → ignore les consignes explicites de “portage ligne par ligne” et tente du refactoring → multiplication des bugs
  • Demandes d’optimisation → les plans semblaient excellents, mais les gains réels étaient quasi nuls (et certains changements ont même ralenti l’exécution)

Un hack de workflow inhabituel

  • Automatisation des demandes d’approbation utilisateur de Claude
    • Avec AppleScript, appui automatique sur Entrée toutes les quelques secondes → exécution autonome 24 h/24
    • (Risque de sécurité assumé, car il s’agissait d’un oracle à usage ponctuel)

Où en sont les outils de codage IA aujourd’hui ?

  • Transformations mécaniques et portages massifs → très efficaces
  • Optimisation des performances, conception d’architecture et autres tâches de haut niveau → encore insuffisants
  • Débat sur Hacker News
    • Sceptiques : code impossible à maintenir, “qui compile seulement”
    • Défenseurs : les tests différentiels suffisent à le rendre fiable + gain de temps énorme par rapport à un humain

3 enseignements pour la pratique

  • Un système de tests automatisés rigoureux est indispensable (sans tests différentiels, la probabilité d’échec est très élevée)
  • Des consignes claires et étroitement cadrées sont les plus efficaces (“portage ligne par ligne” O vs “améliore ça” X)
  • L’IA n’est qu’un outil → le développeur doit toujours diagnostiquer les problèmes, formuler les bonnes questions et garder le cap

→ Le cas d’une personne ne connaissant pas Rust qui parvient à porter en un mois une base de code de 100 000 lignes à un niveau exploitable en pratique constitue à la fois une preuve de la viabilité du codage assisté par IA et une expérience représentative qui en montre clairement les limites

https://aisparkup.com/posts/8701

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.