J'ai un peu adopté le vibe coding, mais je n'ai aucune idée de comment on est censé faire ça si on ne sait pas programmer de façon classique.
Je préfère largement le code de Claude. Je trouve que Codex a tendance à être trop complexe et qu'il ne respecte pas toujours les consignes de manière aussi précise.
Le plus difficile, c'est que le modèle génère énormément de code, souvent redondant et peu élégant (au sens traditionnel du terme). L'avantage, c'est qu'on peut facilement écrire une multitude de tests unitaires. (J'utilise d'ailleurs toujours des modèles linéaires pour cela, même depuis gpt-3.5.)
C'est un paradigme plutôt intéressant. Par exemple, dans cette petite application que je développe, une quinzaine d'endroits environ déclenchent le défilement vers un élément. À chaque fois, les mêmes sept lignes de code sont exécutées. Voici comment je procéderais :
J'ai écrit une fonction scrollToElement, puis je l'appelle chaque fois que je veux faire défiler jusqu'à un élément. Mais elle écrit toujours les mêmes sept lignes, quel que soit l'élément sur lequel le défilement se fait. Le programme ne semble pas songer à refactoriser ce code. C'est évidemment problématique.
Il semble qu'il modifie sans problème les 15 blocs de code identiques selon les besoins, et son comportement est suffisamment couvert par des tests pour que, lorsqu'il en oublie un, le test échoue, l'erreur est détectée et corrigée. C'est esthétiquement horrible, mais ça fonctionne suffisamment bien pour que
Je ne l'avais même pas remarqué avant de lire attentivement le code. Normalement, il faut éviter les répétitions (principe DRY) car cela fragilise le code et engendre des bugs, mais ici, cela ne semblait pas être le cas. C'est toujours problématique, mais cela soulève des questions intéressantes…
Par exemple, si vous avez quelqu'un qui a une endurance infinie pour écrire du code, n'est-il pas préférable d'être un peu plus verbeux ? Nombre de mes propres pratiques sont dues à une préférence esthétique pour faire le maximum avec le minimum de code possible, mais ce n'est peut-être pas optimal pour le code d'un master en droit.
Bien sûr, ce modèle n'a pas une endurance infinie. Il coûte de l'argent, probablement plus cher que ce que je paie en réalité.