Vibe coding

Cet article vous a plu ? Pourquoi ne pas le partager ?

Il faut vivre avec son temps. Et si j’utilise des LLM pour planifier mes vacances, créer des illustrations (comme les couverture de ceci ou cela) ou m’expliquer des concepts plus ou moins éloignés de mes domaines de compétence, pourquoi ne pas utiliser des LLM pour m’aider à coder ?

Qui c’est le patron ?

En fait, c’est déjà le cas, et depuis quelques mois déjà, je m’appuie sur ChatGPT pour m’assister dans la conception de mon dernier bébé, une plateforme de sensibilisation aux cybermenaces. Mais dans ce travail en collaboration avec l’IA, j’ai adopté une posture de chef d’équipe, qui délègue des tâches au LLM et se charge de tout le reste : l’architecture, l’intégration, les tests, tout ça, c’est mon domaine. L’IA reste un outil d’appoint, bien pratique, toujours disponible et ultra compétent sur pleins de technologies. Et un formidable accélérateur pour concevoir des interfaces sophistiquées. Mais pour le reste, c’est moi le patron.

Hier soir, cependant, j’ai testé une autre approche. De patron, je suis devenu client. Au lieu de déléguer des bouts de code à l’IA, j’ai décidé de commander un logiciel à une IA. En laissant l’IA coder pendant que je sirotais un verre. De fait le test du développement complet par une I,? à partir d’un cahier des charges évolutif, fourni par le biais d’un outil de discussion standard. Bref, je me suis mis au vibe coding. Et je dois avouer que c’est très sympathique.

Vibe, baby vibe

Pour cela, bien évidemment, je n’ai pas fait des tests sur mon code en production, mais sur de petits projets que je garde en veilleuse. Le premier, c’est un projet qui m’accompagne depuis plus de trente ans, dès que je passe sur un nouveau langage ou une nouvelle plateforme : des jeux de stratégie simples, style Reverso ou Tic Tac Toe, ou plus élaboré comme le Scrabble ou les échecs. J’ai toujours rêvé d’une architecture unifiée, permettant de gérer les tours de jeu, les phases de réflexion, la validation des coups, avec des implémentations par jeu. Je ne l’ai jamais complètement fait, par manque de temps et de motivation.

Et bien avec le vibe coding, cela m’a pris à peu près 30 minutes, pour disposer de cette approche unifiée, avec trois jeux (Tic Tac Toe, Scrabble et Reverso), fonctionnant aussi bien en mode console (sur un shell Unix) ou graphique (via la librairie Tk de Python). Et ça marche du tonnerre.

Deuxième test, un petit sujet qui me trotte dans la tête depuis quelques années, la visualisation d’arbres généalogiques avec un outil sur mesure, indépendant de MyHeritage, dont je suis fortement tributaire et qui n’est pas toujours optimal. Je disposais déjà d’un site web capable d’effectuer des recherches à partir d’un fichier GEDCOM (transformé en base MySLQ), de représenter une page par individu, avec ses parents, enfants, conjoints frères et soeurs, ou d’effectuer des recherches multicritères. Mais la visualisation d’un arbre, sur plusieurs niveaux de profondeur, avec ltous es problèmes d’ajustement que cela peut poser, je n’y étais pas encore parvenu.

Cette fois, j’ai branché l’outil que j’ai installé, Codex d’OpenAI, sur mon code déjà existant, en lui demandant d’analyser le code existant, de comprendre la structure de la base de données, le code de représentation, et d’en inférer des modes de représentation graphique différents (arbre vertical, horizontal ou circulaire). Et voilà le résultat (sur Gabriel Attal, un ancien premier ministre bien connu).

Le mode opératoire est assez bluffant. En dialoguant avec la machine, on lui demande d’ajouter des fonctionnalités, d’en modifier d’autres, etc. On peut continuer à utiliser le logiciel produit, entre deux itérations, Codex se chargeant d’effectuer les mises à jour au fil de l’eau. On peut fournir des copies d’écran pour expliquer ce qui ne va pas, ou a mal été interprété, et le logiciel analyse la question pour apporter les bonnes réponses.

Limites, quelles limites ?

Bien sûr, cette approche a ses propres limites. Tout autant qu’une IA qui produit du texte ou des images, le vibe coding est sujet aux hallucinations, et produit parfois des effets éloignés de ceux qui sont demandés. Ce n’est pas grave, ça se corrige. Mais il y a pire : lorsqu’il s’agit de traiter d’important volumes de données, comme l’arbre d’une personne ayant plusieurs centaines de descendants, des problèmes d’architecture ou de performance algorithmique peuvent apparaître, laissant l’utilisateur perplexe sur l’étendue de ses moyens d’action pour corriger le tir.

Néanmoins, cette approche, dans la philosophie actuelle du no code, convient parfaitement pour des ingénieurs ayant des rudiments de connaissance en développement, et capables d’exploiter des idées originales ou désireux de créer rapidement un POC. Je dis ingénieur, mais toute personne suffisamment à l’aise avec un ordinateur peut demander à l’IA, via un prompt bien pesé, de coder le moyen de configurer, lancer ou optimiser son application.

Les possibilités sont donc vertigineuses.

Le résultat immédiat, à mes yeux, c’est qu’une armada de consultants à deux balles va se retrouver sur le carreau. C’est clair, certaines ESN vont souffrir. C’et la vie, on a tous connu un moment où le marché évoluait plus vite que notre capacité d’adaptation, je l’ai connu moi-même en 2016… La seconde idée qui me vient à l’esprit, c’est que le vibe coding rend obsolète la notion de barrière à l’entrée. Tout entreprise peut désormais se lancer dans la conception d’un outil pour des besoins internes ou pour aborder un marché avec un investissement ridicule et des réalisations quasi professionnelles. Certes, on ne crée par un CATIA ou un Microsoft Word en deux heures de vibe coding. Mais on peut développer une grande variété de logiciels vraiment utiles, qu’il aurait fallu acheter ou faire concevoir pour un prix non négligeable, et avec des résultats pas toujours à la hauteur.

Reste le souci de la maintenance de tels logiciels.

Mais je suis certain qu’avec le temps et les progrès réalisés dans ce secteur décidément étonnant, nous aurons rapidement de très sympathiques surprises.

En attendant je vous laisse, je vais rajouter une fonction de calcul de distance entre deux individus à mon petit outil de généalogie. Je suis sûr que ça ne prendra pas plus que dix minutes…

Cet article vous a plu ? Pourquoi ne pas le partager ?