Introduction
Récemment, une équipe a réussi à réécrire Next.js avec l'aide de l'IA en une semaine, ce qui a inspiré l'équipe de Reco à tenter de réécrire leur pipeline de transformation JSON avec l'IA. Cette expérience a abouti à la création de gnata, une implémentation pure-Go de JSONata 2.x, en seulement sept heures et pour un coût de 400$ en tokens.
Contexte Technique
Reco utilise un moteur de politique qui évalue des expressions JSONata contre chaque message dans leur pipeline de données, traitant des milliards d'événements sur des milliers d'expressions distinctes. JSONata est un langage de requête et de transformation pour JSON, idéal pour permettre aux chercheurs d'écrire des règles de détection sans avoir à interagir directement avec le code.
Cependant, l'utilisation de JSONata présentait un problème dû à la frontière linguistique coûteuse entre les langages de programmation utilisés. L'implémentation originale de JSONata était écrite dans un langage qui nécessitait une interaction avec d'autres composants écrits en Go, ce qui entraînait des surcoûts en termes de performances et de maintenance.
Analyse et Implications
La réécriture de JSONata avec l'IA a permis à Reco de réaliser des économies significatives, à hauteur de 500 000$ par an, grâce à une accélération de 1 000 fois sur les expressions courantes. Cette optimisation a également ouvert la voie à d'autres améliorations, démontrant le potentiel de l'IA pour améliorer l'efficacité et réduire les coûts dans le développement logiciel.
Cependant, il est important de noter que cette approche nécessite une compréhension approfondie des spécifications et des tests existants, ainsi qu'une interaction efficace entre les équipes de développement et les outils d'IA. Les risques potentiels incluent la dépendance à l'égard des modèles d'IA et les défis liés à la maintenance et à la mise à jour du code généré.
Perspective
À l'avenir, il sera essentiel de surveiller les limites de l'utilisation de l'IA dans le développement logiciel, notamment en termes de qualité et de fiabilité du code généré, ainsi que les implications en matière de sécurité et de conformité. Les prochaines étapes pourraient inclure l'exploration de nouvelles applications de l'IA dans d'autres domaines du développement logiciel et l'élaboration de meilleures pratiques pour l'intégration de l'IA dans les flux de travail de développement.