Le paysage de développement logiciel change rapidement, tiré par la prolifération de Outils d’intelligence artificielle. Ces outils de code d’IA se répartissent dans deux catégories principales: les générateurs, qui visent à produire des bases de code entières à partir d’invites et d’assistants, qui s’intègrent directement dans le flux de travail du développeur. Les différences architecturales et philosophiques fondamentales entre ces approches remodèlent le fonctionnement des développeurs.
Ivan Liagushkin, un développeur de logiciels avec plus de 10 ans d’expérience dans la création d’applications Web à grande échelle, offre un aperçu de ce domaine en évolution. Il est en charge de l’ingénierie à Twainune startup de rédacteur AI soutenu par Sequoia Capital.
Définir des générateurs de code et des assistants
« Des outils comme V0.Dev et Github Copilot peuvent sembler similaires, mais ils sont fondamentalement différents philosophiquement », a déclaré Liagushkin. «Les générateurs rivalisent principalement avec les plates-formes sans code et à faible code, ciblant les professionnels non développeurs. Les assistants de codage, en revanche, visent à transformer les flux de travail de codage quotidien.»
Des générateurs comme V0.Dev de Vercel et Bolt.New de Stackblitz sont conçus pour permettre un prototypage rapide et un lancement MVP. Ils sont souvent opinionnés sur les technologies qu’ils utilisent, favorisant des outils et des plateformes spécifiques.
« Ces générateurs sont très opinicoles sur les technologies qu’ils utilisent et favorisent souvent des outils spécifiques auxquels les utilisateurs peuvent s’abonner », a déclaré Liagushkin. «Par exemple, Bolt.New et Lovable font la promotion de la plate-forme de développement Supabase, tandis que V0.dev favorise naturellement l’hébergement de Vercel.»
Les assistants de codage, en revanche, se concentrent sur l’intégration transparente dans les flux de travail existants, la compréhension des bases de code et la fourniture d’outils universels entre les technologies. Ils sont conçus pour être utiles pour les développeurs et les équipes individuels.
« Les assistants de codage visent à transformer le codage quotidien », a déclaré Liagushkin. «Il est essentiel pour eux de avoir du sens pour les développeurs et les équipes uniques en particulier. Éditeur de curseur semble particulièrement prometteur, offrant un moyen pratique de partager et d’échelle des instructions LLM avec des «règles de curseur».
L’architecture sous-jacente de ces outils est similaire, avec la principale différence dans l’interface utilisateur et les approches d’augmentation de contexte. Le composant central est le modèle grand langage (LLM).
« Le composant clé est le LLM lui-même », a déclaré Liagushkin. «Tous les générateurs mentionnés reposent sur le sonnet Claude 3.5 d’Anthropic, le modèle de codage de pointe pendant longtemps, dépassé uniquement par son successeur Claude 3.7 Sonnet. Les assistants de codage, cependant, permettent de basculer entre les modèles.»
À l’intérieur de l’architecture: comment fonctionnent les outils de codage AI
Ces outils ne diminuent généralement pas les modèles mais comptent sur des techniques d’incitation avancées. Des outils open source comme Bolt.NEAL fournissent un aperçu de l’architecture.
« Grâce à Bolt.New Is Open-source, nous pouvons examiner ce qui est utilisé », a déclaré Liagushkin. «L’invite de système de base explique à la LLM son environnement d’exécution et ses actions disponibles: créer et modifier des fichiers, exécuter des commandes de shell, rechercher des bases de code et utiliser des outils externes. Les invites sont bien structurées avec le formatage de style XML et utilisent un apprentissage unique pour réduire les hallucinations et les inventes.»
La gestion du contexte, en particulier pour les grandes bases de code, est un défi important. Les assistants indexent les bases de code et utilisent des bases de données vectorielles pour la recherche en texte intégral.
« Le plus grand défi consiste à fournir aux LLM un contexte approprié », a déclaré Liagushkin. « Il est essentiel de nourrir les bonnes parties des bons fichiers ainsi que des modules, de la documentation et des exigences correspondants. Les assistants indexent la base de code, créant des structures de données en forme d’arbre pour surveiller les modifications des fichiers, puis en sélectionnant et en intégrant des fichiers dans des bases de données vectorielles pour la recherche de texte complet. »
Les 30% finaux
Malgré leur pouvoir, les outils de codage de l’IA ont des limites. Le «problème de 70%», articulé par Addy Osmani, met en évidence leur lutte avec les 30% finaux du code nécessitant une robustesse et une maintenabilité.
« Le problème de 70% » décrit parfaitement la limitation fondamentale des outils de codage de l’IA: ils peuvent rapidement générer du code qui vous permet de 70% de la voie là-bas mais qui luttent avec les 30% cruciaux qui rendent la production logicielle, maintenable et robuste « , a déclaré LiaGushkin.
S’attaquer à ces limitations consiste à améliorer la précision du modèle, à faire progresser les architectures agentiques et à améliorer les techniques d’incitation.
« Ce problème sera résolu de trois manières différentes », a déclaré Liagushkin. «Premièrement, les modèles deviendront plus précis. Deuxièmement, l’architecture des assistants codante progressera à travers des approches agentiques. Enfin, nous changerons. Tout le monde apprendra des techniques d’incitation efficaces.»
Chez Twain, Liagushkin a connu des limitations similaires dans le développement de rédacteurs d’IA. Des stratégies pour atténuer celles-ci incluent la mise en cache de demande LLM, le jonglage du modèle et le prétraitement rapide.
« La seule différence entre les assistants de codage et le TWAIN est que les assistants de codage produisent du code, tandis que Twain produit des messages personnalisés de qualité écrite par l’homme », a déclaré Liagushkin. «Les défis restent les mêmes – pour être précieux, nous devons générer des copies rapidement, rentables et les garder exemptes d’hallucinations.»
Anticiper l’avenir
Pour l’avenir, Liagushkin prévoit des progrès importants de la qualité du modèle et de l’évolution du flux de travail. Cependant, il souligne que l’adoption de la technologie reste un facteur critique.
« Les progrès de la qualité du modèle d’IA sont étonnants, et nous devons nous attendre à ce que les modèles deviennent encore plus précis, stables et rentables », a déclaré Liagushkin. «Cependant, je crois que des changements vraiment transformateurs dans les processus de codage ne proviendront pas principalement de l’ingénierie et des percées de l’IA, mais de l’évolution du flux de travail et de la mentalité.»
Les considérations éthiques, en particulier la sécurité des données, sont également primordiales. Liagushkin suggère de déployer des LLM à codage dans les réseaux locaux et d’utiliser des outils de restriction de visibilité.
«Les considérations éthiques concernent principalement la sécurité des données – un problème significatif mais techniquement résoluble», a déclaré Liagushkin. «Les LLM de codage peuvent être déployés dans les réseaux locaux des organisations, avec des outils de restriction de visibilité conçus pour isoler les sections de code sensibles.»
L’avenir des outils de codage de l’IA repose sur les progrès technologiques et un changement de mentalité au sein de la communauté du développement.