Ce développeur est ChatGPT, et j'ai une relation amour-haine avec lui.
Il y a tellement d'articles sur l'IA de nos jours, alors je vais essayer de garder celui-ci court.
Utiliser ChatGPT pour coder, c'est comme avoir un développeur junior sous vos ordres. Ils peuvent y obtenir le code à 80 %, mais vous devrez revoir pratiquement chaque ligne.
Je dois admettre qu'il existe de nombreuses façons d'utiliser ChatGPT pour aider à écrire du code. C'est probablement mieux pour certains d'entre eux et pire pour d'autres.
Par exemple, j'ai entendu beaucoup de gens l'utiliser comme moteur de recherche. Personnellement, je trouve cela un peu discutable. Il n'est pas si difficile de trouver de la documentation ou même des réponses grâce à une recherche. J'utilise Kagi qui aide à réduire les peluches.
Au contraire, en utilisant ChatGPT, comment êtes-vous censé savoir si la réponse est vraie ?
De l'autre côté du spectre, il y a beaucoup de gens qui l'utilisent comme une auto-complétion glorifiée. Quelque chose comme Github Copilot . Je vois que c'est utile.
Le scénario que j'ai choisi est :
Conversion de mon code de chakra-ui en tailwindcss .
Pourquoi?
En regardant autour du terrain, il semblait que bien inciter était la différence entre obtenir de bons résultats ou des résultats médiocres. Je ne suis pas le meilleur dans ce domaine, mais j'ai fait quelques recherches et j'ai fait de mon mieux.
Je me suis assuré d'utiliser plusieurs invites pour le mettre dans un bon état. Ne coller mon code que lorsqu'il semble qu'il sait qu'il ne doit convertir que mon code.
Honnêtement, cette partie pourrait être améliorée. Entre l'interface utilisateur et l'interaction, c'est une corvée à utiliser :
Cela peut prendre un certain temps pour qu'il atteigne l'état souhaité
Entre le fait que je réfléchisse à ce qu'il faut écrire, puis que j'attende qu'il réponde et qu'il finisse d'écrire, cela devient assez ennuyeux de faire ce travail.
C'est incohérent
Cela n'aide pas que vous ne puissiez pas toujours réutiliser les mêmes invites. ChatGPT a un certain caractère aléatoire, j'ai donc dû modifier l'invite à chaque fois. Copier-coller une invite qui fonctionnait auparavant n'a pas aidé.
Il est très facile de sortir de l'état souhaité
Ce qui précède est bien si c'est une chose unique. Mais j'ai trouvé qu'il est très facile pour l'IA de tout oublier après la première conversion de code. Le succès le plus répété que j'ai eu était 3 fois je crois. Au-delà de cela, il a renvoyé des choses complètement indépendantes, comme expliquer ce que fait mon code.
Le jeton est un facteur assez limitant
Il n'y a qu'une quantité de code qu'il peut produire en raison de sa limite de jetons. Vous pouvez vérifier le tokenizer ici pour voir comment il calcule les jetons . Ce n'est pas très convivial pour le code. Vous trouverez ci-dessous un exemple de l'une de ses sorties. Chaque couleur différente représente un jeton.
Pour cette raison, je dois diviser la conversion en plusieurs étapes. Sinon, la génération s'arrêtera au milieu. Lui dire de continuer ne fonctionne pas la plupart du temps. Combiné avec les points ci-dessus, cela devient rapidement une corvée à faire.
Dans l'ensemble, j'ai l'impression que je n'ai pas envie d'écrire en anglais. Si je dois déjà écrire quelque chose, je préfère écrire directement du code qui fonctionne.
Je peux voir que l'ingénierie rapide est une compétence clé à avoir à l'avenir. Semblable à la façon dont savoir comment rechercher est une compétence clé dans le monde d'aujourd'hui.
Malgré tout le travail qu'il a fallu, ChatGPT a produit un code assez impressionnant. Voici une comparaison entre l'original et le résultat :
Comme vous pouvez le voir, il a bien fait le travail.
Le bon
La structure est assez bien amenée
Mis à part les détails, la structure HTML est assez similaire à l'original. Les espacements sont désactivés, mais la disposition générale demeure.
Le contenu du texte ne change pas
Le contenu lui-même a été bien géré. Même si j'ai dû tous les revérifier, rien n'a été changé. La seule exception est ceux dérivés de JS.
Le mauvais
Il avait des classes aléatoires
Il y a plein de classes qui ne font rien. Certaines ont été modifiées et d'autres étaient des classes de vent arrière invalides.
Il y a plein de petites différences
L'interface utilisateur donnait l'impression qu'une bibliothèque venait d'être mise à niveau et que quelqu'un avait oublié de migrer le code. Dans ce cas, c'est parce que ChatGPT a modifié de manière aléatoire les valeurs des classes. Par exemple, un padding
de 3 à 4, ou changer le font-weight
de gras à normal. Les détails étaient tous faux.
ça marche pas la moitié du temps
Les captures d'écran ci-dessus sont celles que je peux directement comparer. En réalité, les résultats étaient soit incomplets, soit juste assez erronés pour que j'aie dû apporter de nombreuses modifications pour que cela fonctionne. Et à cause de cela, je ne peux pas le comparer côte à côte. Je ne peux tout simplement rien comparer puisque le code ne s'exécute pas.
Ce qui est génial, c'est que j'ai quelque chose à partir de quoi travailler. Heureusement, le travail lui-même est très simple. Il est facile de repérer les erreurs. La correspondance entre les classes de chakra-ui et tailwind est presque univoque. C'est seulement fastidieux car la syntaxe est différente.
Mais cette approche s'apparente davantage à l'examen des PR. J'ai dû parcourir tout le code pour m'assurer que tout est fait correctement.
Ça a l'air bien à première vue. Mais il y a beaucoup de pièges une fois que vous travaillez avec et faites très attention. Cela apporte ce faux sentiment de sécurité qui m'a un peu frustré une fois que j'ai découvert tous les défauts.
Une grande partie est du code qui est interpolé à partir d'autres bases de code. Ça n'a pas l'air terrible, mais ce n'est pas ce que je voulais.
Il y a même des changements alarmants comme changer le cap de h2 à h1. Je ne peux que supposer qu'il l'a fait à cause du contenu.
C'était comme si un développeur junior avait assemblé quelque chose et n'avait pas testé son code . Et maintenant, je dois l'examiner et le réparer sans pouvoir leur dire de le réparer eux-mêmes.
Et c'est horrible. J'ai déjà ma dose d'examen des relations publiques au travail. Maintenant je dois le faire aussi pour mes propres projets ? Non merci!
Bien que je ne pense pas que ce soit encore proche, je pense que l'IA sera utile à un moment donné pour le développement à l'avenir. Si la réponse est LLMs, qui sait?
Les limites de jetons augmentent constamment
J'ai assez tardé à terminer cet article. Pendant ce temps, il y a beaucoup d'annonces d'augmentation de la limite de jetons. Bien que je ne sache pas si c'est public, payant ou autre, c'est formidable à voir.
Inviter UX devrait devenir plus facile avec le temps
Avec les plugins ChatGPT et une meilleure intégration, des problèmes tels que la mémorisation de l'état et la cohérence devraient être améliorés. Espérons que cela réduira l'effort nécessaire pour obtenir une sortie utile de ChatGPT.
En attendant, j'ai terminé l'autre moitié de la migration manuellement. C'était plus rapide ? Eh bien, qui sait. C'était à peu près la même chose. Mais l'écrire manuellement me semblait beaucoup mieux.