Maintenance sémantique – principales leçons à retenir de la conférence sur les logiciels synthétiques de Tower

Par : Neel Baronia

Le mois dernier, Tower Research Ventures a tenu sa première conférence sur les logiciels synthétiques (CSS), dont le but principal était de réunir des chercheurs, des développeurs et des entrepreneurs de premier plan travaillant dans le vaste domaine de la génération de code. Les conférenciers ont fait des présentations sur une vaste gamme de sujets, allant des types d’infrastructure dont les agents de génie logiciel ont besoin pour pousser du code, à la manière dont les grands modèles de langage (GML) peuvent être utilisés pour optimiser les noyaux CUDA de bas niveau.

Au fur et à mesure que les chercheurs et les entrepreneurs parlaient de leurs domaines d’intérêt respectifs, un thème dominant s’est dégagé :

À l’heure actuelle, la génération de code est déjà l’un des cas d’utilisation de GML les plus importants dans les environnements de production. L’indice économique récent d’Anthropic montre que la génération de code est un cas d’utilisation manifestement aberrant de ses modèles de fondation :

Parallèlement, des entreprises comme Google indiquent que près de 25 % du nouveau code publié pour leurs produits est écrit par l’IA, et Cursor, environnement de développement logiciel intégré natif de l’IA, serait l’entreprise la plus rapide à générer un chiffre d’affaires annuel de 100 millions de dollars.. Quelles sont les conséquences de cette tendance à l’écriture du code par des modèles, des outils et des agents de plus en plus performants?

« Les programmes doivent être écrits pour que les gens les lisent et, accessoirement, pour que les machines les exécutent ». – Hal Abelson, auteur de Structure and Interpretation of Computer Programs (Structure et interprétation des programmes informatiques)

Lors de notre conférence, Henry Zhu, mainteneur de Babel JS a souligné le besoin croissant d’outils et d’expériences utilisateur (EU) pour aider les humains à analyser et à suivre les modifications apportées au code, en particulier pour les projets à code source libre. Actuellement, pour la plupart des projets à code source libre, le nombre de mainteneurs (membres de la communauté activement responsables de la gestion du projet) est inférieur au nombre de contributeurs : de nombreux projets populaires ont un ou deux mainteneurs, et ces personnes doivent filtrer, trier et gérer les bogues et les propositions soulevés par les membres de la communauté. Il s’agit là d’une tâche très difficile. M. Zhu a évoqué le risque que les mainteneurs soient submergés par les agents de génération de code en tant que contributeurs.

Bien que cela soit quelque peu contre-intuitif, il ne suffit pas de vérifier que le nouveau code fait ce que l’on attend de lui. Il est tout aussi important d’évaluer dans quelle mesure le nouveau code s’assimile au code existant. Respecte-t-il les guides de style? Introduit-il des changements cassants? Complique-t-il la documentation ou détériore-t-il la conception d’interface de protocole d’application? Hunter Brooks, cofondateur de Ellipsis.dev, a expliqué lors de la conférence sur les logiciels synthétiques comment les groupements d’ingénieurs utilisent la Révision de code IA pour imposer un niveau élevé de qualité du code et le guide de style de l’entreprise à grande échelle. Ces outils pourraient aider les humains à mieux gérer le code proposé par les modèles de génération de code, car il ne suffit pas de s’appuyer sur le code pour gérer d’autres codes.

Une approche possible consiste à s’appuyer de plus en plus sur les « différences sémantiques », c’est-à-dire à examiner les modifications de code pour y déceler des changements conceptuels plutôt que la pure modification de jetons (par exemple, est-il vraiment important de supprimer des lignes vides ou de renommer une variable?). Bien que les GML soient généralement capables de synthétiser et de résumer l’information, l’utilisation d’un code pour résumer les différences sémantiques n’est peut-être pas aussi facile que prévu. Comme SemanticDiff le mentionne sur son récent blogue, les différents langages (et même les différents compilateurs) n’analysent pas le texte de la même manière. Il est donc difficile de déterminer le bon niveau d’abstraction pour démontrer les changements. Les spécificités des cas d’utilisation peuvent compliquer davantage la situation. Deux mises en œuvre de multiplication de matrices en C peuvent être suffisamment similaires pour une personne créant une application destinée aux consommateurs, mais elles peuvent contenir des différences d’une importance capitale pour des cas d’utilisation à haute performance tels que les transactions à haute fréquence ou la formation sur les modèles de fondation. En revanche, Saurabh Misra (fondateur de CodeFlash) a mentionné lors de sa présentation à la conférence que la performance et la lisibilité peuvent ne pas être opposées dans le contexte de l’amélioration de Python; la simplification de la logique ou l’optimisation de l’utilisation de la bibliothèque peuvent en fait se traduire par une meilleure lisibilité et une meilleure qualité.

Bien que nous ne sachions pas encore quelle forme prendra la gestion sémantique des bases de code et des pipelines d’intégration et de déploiement continus (CI/CD) trop compliqués dans un monde de plus en plus synthétique, il semble que ce soit la prochaine étape logique pour permettre l’introduction de produits et d’entreprises de grande qualité dans l’espace de génération de code (après avoir établi les modèles de fondation eux-mêmes, les environnements de développement logiciel intégré natifs de l’IA et les agents pour les utiliser). S’il s’agit d’un domaine auquel vous pensez ou contribuez activement, nous serions ravis de vous entendre. Vous pouvez nous joindre à ventures@tower-research.com.


Les opinions exprimées dans ce document sont uniquement celles de l’auteur (ou des auteurs), telles qu’elles étaient au moment de leur publication initiale, et ne reflètent pas nécessairement les opinions de Tower Research Ventures LLC ou de ses affiliés. Elles ne sont pas destinées à fournir, et ne doivent pas être considérées comme, des conseils en investissement, et aucune information contenue ici ne constitue une offre d’achat ou de vente de titres, ni ne doit être utilisée comme base pour l’achat ou la vente d’un investissement. Les informations contenues ici n’ont pas été et ne seront pas mises à jour ou révisées pour refléter les informations qui pourraient devenir disponibles ultérieurement, ni pour tenir compte des circonstances existantes ou des changements survenus après la date de préparation. Certaines informations contenues dans le présent document sont basées sur des sources publiées et non publiées. L’information n’a pas été vérifiée de façon indépendante par TRV ou ses représentants, et l’exactitude ou l’exhaustivité de ces renseignements n’est pas garantie. Votre lien vers ou utilisation de tout site Web tiers se fait à vos propres risques. Tower Research Ventures décline toute responsabilité quant aux produits ou services offerts ou aux renseignements contenus sur tout site Web tiers.