Introduction
Le vibe coding, ou génération de code assistée par ordinateur, peut produire du code rapidement, mais il ne remplace pas l'ingénierie. L'ingénierie produit des systèmes, tandis que le vibe coding ne produit que du code. Cette différence est cruciale pour la fiabilité et la sécurité des systèmes.
Contexte Technique
Les modèles de langage (LLMs) peuvent générer du code en quelques secondes, mais ils ne posent pas les questions nécessaires pour garantir la sécurité et la cohérence du système. Par exemple, lors de la création d'un système de connexion, un LLM peut ne pas demander si les adresses e-mail doivent être uniques, ce qui peut entraîner des problèmes de sécurité.
Les ingénieurs, en revanche, prennent des décisions cruciales avant de commencer à écrire du code. Ils résolvent les ambiguïtés, définissent les limites, modélisent les comportements et décident comment le système se comportera en cas de stress. Ces décisions sont essentielles pour maintenir la cohérence et la sécurité du système.
Analyse et Implications
Le vibe coding peut donner l'impression de fonctionner, mais il peut entraîner des problèmes de fragilité et de sécurité. Les systèmes générés par les LLMs peuvent échouer en production en raison de décisions manquantes ou de questions non posées. Les erreurs peuvent se produire lorsque les fonctionnalités se chevauchent, que l'état du système devient imprévisible ou que les déploiements deviennent fragiles.
Il est essentiel de comprendre que le système est plus que son code. Les invariants, les contraintes et les règles de couplage et de séquencement sont essentielles pour maintenir la logique métier et le comportement de l'utilisateur.
Perspective
Il est important de ne pas confondre le vibe coding avec l'ingénierie. Les LLMs peuvent générer du code, mais ils ne remplacent pas les décisions et les jugements des ingénieurs. Avant de générer du code, il est essentiel de définir les invariants, les règles d'identité, les contraintes et les modes de défaillance. Les gains réels de l'IA proviennent de l'utilisation de ces outils en combinaison avec les compétences et les jugements des ingénieurs.