
Vous avez probablement déjà entendu parler du "Vibe Coding". Ce terme a été récemment inventé par Andrej Karpathy dans un tweet. Andrej définit le Vibe Coding comme "un nouveau type de codage, où l'on s'abandonne totalement aux vibrations, où l'on embrasse les exponentielles et où l'on oublie l'existence même du code". La principale différence entre le Vibe Coding et le codage normal est que l'ingénieur n'interagit pas directement avec la base de code, mais converse avec l'agent et inspecte le résultat final.
L'expression a fait son chemin et Twitter a rapidement été inondé de messages expliquant que l'IA avait radicalement transformé le codage et qu'elle remplacerait bientôt tous les ingénieurs en informatique. Si l'IA a indéniablement un impact sur la manière dont nous écrivons le code, elle n'a pas fondamentalement changé notre rôle en tant qu'ingénieurs. Permettez-moi de m'expliquer.

Commençons par définir clairement le rôle d'un ingénieur logiciel. À la surprise de certains, l'ingénierie logicielle ne consiste pas à écrire du code. Pourtant, même les personnes très techniques font souvent l'amalgame entre le codage et l'ingénierie. La définition la plus concise et la plus précise du génie logiciel que j'ai rencontrée est la suivante :

Toutefois, à l'instar du codage normal, le vibe coding ne couvre que le codage à un moment donné. Si un agent est utilisé pour générer un prototype rapide et le valider par des tests, il s'agit de codage et non d'ingénierie. L'ingénierie consiste à concevoir des systèmes capables de résister aux conditions du monde réel, de supporter des charges de travail, de résister aux menaces de sécurité, de migrer et de prendre en charge les données des utilisateurs dans le système, et de s'adapter à de nouvelles exigences, souvent sur plusieurs années.
Le vibe coding consiste à interagir avec la base de code par le biais d'invites. Comme la mise en œuvre est cachée au "Vide codeur", toutes les préoccupations techniques seront inévitablement ignorées. Nombre de ces préoccupations sont difficiles à exprimer dans une invite, et nombre d'entre elles sont difficiles à vérifier en inspectant uniquement l'artefact final. Historiquement, toutes les pratiques d'ingénierie ont essayé de déplacer toutes ces préoccupations vers la gauche - vers les premières étapes du développement, lorsqu'elles sont moins coûteuses à traiter. Pourtant, avec le vibe coding, elles sont déplacées très loin vers la droite - lorsque leur prise en compte est coûteuse.
La question de savoir si un système d'IA peut réaliser le cycle d'ingénierie complet et construire et faire évoluer un logiciel de la même manière qu'un humain reste ouverte. Cependant, rien n'indique qu'il en soit capable à ce stade, et si cela se produit un jour, cela n'aura rien à voir avec le vibe coding - du moins tel qu'il est défini aujourd'hui.
La véritable "Vibe Engineering"
À titre d'expérience de pensée, nous pouvons nous demander s'il est possible de concevoir des systèmes fiables entièrement composés d'éléments "vibe-codes". Après tout, il fut un temps où le matériel grand public moins fiable remplaçait les ordinateurs centraux, et nous avons appris à construire des systèmes fiables à partir de pièces intrinsèquement peu fiables.
Ces systèmes pourraient encapsuler étroitement les composants "boîte noire" générés par l'IA, avec des tests rigoureux, un profilage détaillé des performances, un traçage, des déploiements canaris et des contrôles stricts de la compatibilité des protocoles. En d'autres termes, les systèmes utiliseraient les mêmes pratiques d'ingénierie rigoureuses que celles qui sous-tendent les logiciels d'aujourd'hui, mais probablement beaucoup, beaucoup plus strictes.
Dans un tel avenir, chaque ingénieur deviendrait essentiellement un mélange d'architecte et d'ingénieur de plateforme. Nous pourrions même inventer le terme "Vibe Engineering" pour ce nouveau rôle, mais sa définition serait en fin de compte la même que celle de l'ingénierie logicielle traditionnelle. Il n'y a donc pas de "Vibe Engineering" à proprement parler - il s'agit simplement d'ingénierie logicielle, avec peut-être moins de typage de code qu'auparavant.
Quand cet avenir arrivera-t-il ? C'est une question incertaine. Un bon indicateur, cependant, pourrait être le moment où les ingénieurs répondront en toute confiance « oui » à la question suivante : "Seriez-vous heureux d'être de garde pour un système de services entièrement générés par l'IA ?". Jusqu'à présent, la réponse semble être une majorité de "non".
Conclusion
Le Vibe Coding en tant que pratique est là pour rester. Il fonctionne et résout des problèmes concrets, vous permettant de passer de zéro à un prototype fonctionnel en quelques heures. Pourtant, pour l'instant, il n'est pas adapté à la création de logiciels de qualité.
Il est possible qu'à l'avenir les logiciels soient construits à partir de blocs de vibe-codes, mais le travail de conception de logiciels capables d'évoluer et de s'adapter ne disparaît pas pour autant. Ce n'est pas du "vibe engineering", c'est de l'ingénierie tout court, même si la partie codage sera un peu différente.
Merci de votre lecture.
Source : There is no Vibe Engineering
Et vous ?


Voir aussi :




Vous avez lu gratuitement 18 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.