J'ai demandé à ChatGPT d'écrire un plugin WordPress. Il l'a fait, en moins de 5 minutes

En fait, je suis plus qu'effrayé. À titre expérimental, j'ai demandé à ChatGPT d'écrire un plugin qui pourrait faire gagner du temps à ma femme dans la gestion de son site web. J'ai écrit une courte description et ChatGPT a écrit le tout : interface utilisateur, logique, et tout.

En moins de cinq minutes.

Il y a des implications à tout cela. Nous y reviendrons dans quelques minutes. Mais d'abord, laissez-moi vous parler de l'expérience et de ce qui s'est passé.

publicité

Le besoin

ChatGPT a écrit le plugin qui génère cette interface utilisateur. David Gewirtz/ZDNET

Ma femme gère un site de commerce électronique basé sur WordPress. Elle anime également un groupe Facebook très actif pour les clients de son site. Chaque mois, elle établit une liste de clients aléatoire pour des besoins marketing. Elle a utilisé jusqu'à présent un site Internet qui fait un bon travail de randomisation des lignes. Mais qui demande un peu plus que ce qu'il vaut pour l'exportation de la liste.

Alors que je la regardais lutter pour récupérer les données, j'ai pensé qu'il serait utile d'écrire un plugin WordPress que nous pourrions installer sur son site.

Mais écrire un plugin, même très simple, me prendrait quelques jours, avec les éléments de l'interface utilisateur et le code logique, et j'ai déjà pas mal de projets en ce moment.

Et puis j'ai pensé à ChatGPT. Il y a déjà eu quelques discussions sur ChatGPT comme outil de programmation dans les médias, alors j'ai décidé d'essayer.

Le résultat du code proposé par WordPress est très dépendant de votre demande

Le code de ChatGPT (à partir de mon premier prompt, le plus basique) / David Gewirtz/ZDNET

Le point clé pour que ChatGPT génère correctement du code, est une invite (un prompt) soigneusement écrite. Vous devez décrire clairement ce dont vous avez besoin afin d'obtenir ce que vous voulez. J'ai commencé par une phrase très basique, juste pour voir si cela pouvait fonctionner. Voici ce que j'ai utilisé :

Ecrivez un plugin WordPress compatible PHP 8 qui fournit un champ de saisie de texte dans lequel une liste de lignes peut être collée et un bouton, qui lorsqu'il est pressé, randomise les lignes de la liste et présente les résultats dans un second champ de saisie de texte.

En une minute, il a généré le code que vous voyez ci-dessus. J'ai copié le code généré dans un fichier .php, je l'ai placé dans un dossier ayant le même nom de racine que le fichier .php, je l'ai compressé et je l'ai téléchargé sur son serveur. Cela a fonctionné.

Lorsque je l'ai montré à ma femme, elle a été impressionnée et surprise. Mais ensuite, comme d'habitude, elle a demandé une nouvelle fonctionnalité : s'assurer que les noms en double ne sont pas côte à côte.

Oui parce que pour son travail, elle a parfois besoin d'inclure le nom d'une personne dans une liste à plusieurs reprises. Mais elle ne veut pas que ces doublons soient regroupés.

J'ai donc modifié mon invite initiale en ajoutant les conditions supplémentaires suivantes :

...s'assure que deux entrées identiques ne se trouvent pas l'une à côté de l'autre (sauf s'il n'y a pas d'autre option)... avec le nombre de lignes soumises et le nombre de lignes dans le résultat identiques l'un à l'autre.

J'ai inclus la phrase "sauf s'il n'y a pas d'autre option" et l'exigence d'un nombre identique de lignes parce que je voulais m'assurer que tous les noms étaient inclus, et je craignais que cela ne donne la priorité à la nécessité de ne pas avoir deux noms côte à côte plutôt que de garder tous les noms.

Environ 30 secondes plus tard, j'avais un nouveau plugin. J'ai téléchargé celui-ci sur le serveur et l'ai essayé. Il a fonctionné, mais le résultat final comprenait quelques lignes vides. J'ai donc ajouté cette condition à ma demande précédente :

...sans lignes vides...

À ce stade, je m'étais habitué au délai d'exécution, qui était toujours inférieur à une minute. Encore un téléchargement et un test, et encore une fois, ça a marché.

Je voulais une dernière fonctionnalité, juste pour confirmer le nombre de lignes qui avaient été traitées. Je voulais que le plugin affiche le nombre de lignes pour les champs d'entrée et de sortie. Voici l'ajout de cette invite :

...Sous le premier champ, affichez un texte indiquant "Ligne à randomiser : " avec le nombre de lignes non vides dans le champ source. Sous le deuxième champ, affichez un texte indiquant "Lignes qui ont été randomisées : " avec le nombre de lignes non vides dans le champ de destination.

Cela a presque totalement fonctionné. Avant l'exécution, le champ de sortie affiche une ligne. Mais une fois le processus de randomisation terminé, il affiche le nombre exact de lignes dans les deux champs.

La qualité du code généré par ChatGPT

Globalement, la qualité du code est propre. Le programme a correctement généré le bloc d'en-tête de WordPress et a écrit l'interface utilisateur du tableau de bord pour le plugin, ainsi que la logique de traitement du plugin.

Il a placé mes lignes au-dessus des champs, alors que je l'avais spécifié en dessous, mais ce n'est pas vraiment un gros problème. C'est le même genre d'erreur qu'un client pourrait recevoir d'un développeur et qui nécessiterait un peu de travail pour être corrigée.

Le code a fonctionné, mais il n'a pas intégré toutes les meilleures pratiques de programmation de WordPress, notamment sur la partie sécurisation du code.

Par ailleurs, ChatGPT a également placé l'élément de menu du plugin dans Settings. Je l'aurais probablement placé sous Tools ou j'aurais donné à la fonction son propre élément de menu. Comme je n'ai pas précisé tout cela, je pense que ChatGPT a pris une décision par défaut en plaçant l'élément de menu à cet endroit.

J'ai ajouté une dernière exigence à mon invite, demandant à l'IA de donner un nom au plugin :

Ecrire un plugin WordPress compatible PHP 8 appelé "Robo Randomizer" qui...

Bizarrement, l'IA m'a donné alors produit un plugin entièrement différent, qui fournit un shortcode plutôt qu'une interface de tableau de bord. Laissez-moi expliquer cela aux non-utilisateurs de WordPress, car c'est intéressant.

Lorsque vous écrivez un plugin pour WordPress, vous pouvez le mettre à la disposition des visiteurs sur le site (c'est ce que l'on appelle le frontend) ou à la disposition de ceux qui se connectent au tableau de bord du site (c'est le backend). Dans mes instructions initiales, je n'ai pas spécifié frontend ou backend, mais l'IA a écrit ce que je voulais, c'est-à-dire une interface backend, un tableau de bord pour l'outil.

Mais lors de ce dernier essai, l'IA a décidé d'écrire le plugin comme un outil frontend, en le faisant exécuter par un shortcode. Dans WordPress, vous pouvez intégrer un code court dans un article et il exécutera le code d'un plugin. La dernière version que l'IA a produite me donnait ce shortcode, qui aurait permis de présenter la fonction de lignes aléatoires aux visiteurs du site.

Après cela, ChatGPT a en quelque sorte perdu le fil. Je n'ai pas été en mesure d'obtenir l'ajout de fonctionnalités supplémentaires au plugin original et ChatGPT s'est contenté de générer la version shortcode. Il est donc clair que la maintenance du code n'est pas un point fort de ChatGPT.

Les conséquences que l'on peut tirer de mon expérience de génération de code avec ChatGPT

De toute évidence, il s'agit d'un plugin simple. Il est à peu près du niveau des exercices que je donnais à mes étudiants en première année de programmation lorsque j'enseignais à l'université. Il est loin d'être aussi complexe que d'autres plugins WordPress.

Lorsque j'ai commencé à évoquer la création de plugin par ChatGPT sur les réseaux sociaux, j'ai reçu de nombreuses réactions. Et j'y répond ici.

Une personne craignait que l'IA intègre des informations malveillantes (ou du moins promotionnelles) dans le plugin et qu'un utilisateur non programmeur ne le sache jamais.

Si vous n'êtes pas un développeur et que vous ne pouvez pas lire du code, même si vous passez un contrat avec un autre développeur, vous ne saurez pas vraiment ce qu'il y a à l'intérieur. Il faut soit faire confiance à la réputation, soit demander à quelqu'un en qui vous avez confiance d'auditer le code. Et pour ce qui est du code produit par ChatGPT, sur ce point, il était propre.

Le code de ChatGPT est-il de très bonne qualité ?

Je suis un bon programmeur, mais mon code a des bugs, du moins au début. Et ce qui est bien avec les humains, c'est que le code s'améliore avec le temps. Je ne suis pas sûr qu'une IA puisse prendre un code existant, l'améliorer, le déboguer et le perfectionner. Cependant, parfois, le code doit être simplement fonctionnel. Il n'est pas toujours important qu'ils soient le meilleur. Ce qui est bon est souvent suffisant. Et je dois dire que ChatGPT a généré du code qui était suffisamment bon.

Est-ce que ça va réduire le nombre d'emplois de développeurs ?

Sans aucun doute. Je déteste voir une machine prendre le travail d'une personne. Mais l'IA est clairement une option pour les projets rapides et faciles, qu'il s'agisse d'écriture ou de programmation. Donc des emplois vont sauter, sans aucun doute.

J'étudie l'IA depuis des décennies. J'ai fait une thèse sur l'IA. Mais même avec tout ce bagage, cette montée en puissance de l'IA générative de haute qualité m'a étonné. Cela dit, ce que nous observons actuellement est un niveau de productivité "suffisant". Et c'est malheureusement ce qu'exigent de nombreux clients.

Mais -- du moins pour l'instant -- ChatGPT et ses amis ne peuvent pas écrire des articles d'analyse super approfondis comme celui-ci, car ils reflètent des opinions, des anecdotes et des années d'expérience. Et s'ils pourraient probablement écrire des sous-routines et des fonctions pour des projets de développement plus importants, ils ne sont tout simplement pas en mesure d'écrire du code pour des projets importants.

Par exemple, j'ai dû organiser 20 à 30 réunions l'année dernière avec un important fournisseur d'API pour intégrer son service au mien. La plupart de ces réunions mêlaient les questions commerciales aux exigences techniques et aux politiques de licence. Je défie toute IA de supporter cette torture, de comprendre les nuances et de répondre aux exigences des partenaires. Puis d'être capable de produire des modules de code sur lesquels tout le monde est d'accord.

Donc, oui, je suis un peu effrayé par la qualité du plugin que j'ai "fabriqué". Mais l'IA a encore un long chemin à parcourir avant de prendre le travail de développeurs et de rédacteurs expérimentés. Enfin tant que les clients voudront ce genre de travail. Et ça, mes amis, c'est quelque chose qui m'inquiète autrement plus.

Source : "ZDNet.com"


Football news:

Luc et Theo Hernandez sont tous deux à la base de la France sur la Belgique. Ils ont grandi en Espagne et voulaient jouer pour elle, mais ils ont changé d'avis
Les saoudiens ont quand même acheté Newcastle. Le Rêve des fans de Newcastle est devenu réalité: Mike Ashley, détesté, vend enfin le Club. Il a été acheté Par le fonds d'investissement public du gouvernement saoudien (PIF - Public Investment Fund). C'est le fonds officiellement privé le plus riche au monde. L'accord a déjà été annoncé officiellement, il a été approuvé par l'APL
France-en finale de la Ligue des Nations: 0-2 contre la Belgique, la 90e victoire de Theo Hernandez (sorti en début de rencontre avec son frère)
L'APL croit que le Club n'a pas acheté l'Arabie saoudite, Shearer et les fans sont ravis, dans une réflexion médiatique lourde: le monde après l'enrichissement de Newcastle
Les recherches Тутберидзе dans les doubles de catane: a remplacé le programme Tarasova et Morozov - et Глейхенгауз est triste, que ses idées y pas place
Le footballeur russe est le mème du top 2 de l'endurance dans FIFA 22. La fatigue est une illusion
Un parcours unique pour la construction de la plus rapide piste urbaine de F-1: il est préparé pour un grand prix de 660 millions de dollars, le départ-dans 2 mois

3:15 Dans les transports en commun, la carte bancaire comme coupe-file
3:00 Les écoles françaises ne veulent pas devenir des forteresses
3:00 Quand l’Inde découvre l’amour au-delà du mariage
3:00 La guerre entre Israël et le Hamas bouscule l’ordre mondial, au profit de Moscou et Pékin
2:52 Etats-Unis : Au moins 22 morts dans une triple fusillade de masse dans le Maine, le tireur en fuite
2:39 Au moins 22 morts dans une tuerie de masse aux États-Unis
2:35 Etats-Unis : un tireur fait au moins vingt-deux morts dans une ville du Maine
2:23 Gérald Darmanin : Sans apporter de preuves, le ministre de l’Intérieur persiste et signe sur Benzema
2:10 Etats-Unis : Au moins 22 morts dans une triple fusillade de masse dans le Maine, selon les médias américains
2:07 Etats-Unis : un accord provisoire entre Ford et le syndicat UAW a été trouvé
2:00 Le Liaoning, nouveau symbole du volontarisme industriel de la Chine
1:55 États-Unis : des fusillades font au moins seize victimes dans l'État du Maine, un homme recherché
1:53 Bijou de Mbappé, force de caractère, Zaïre-Emery en Bleu... Les mots de Luis Enrique après PSG-Milan
1:48 Au moins 16 morts dans une tuerie de masse aux États-Unis
0:56 «Pourquoi t’es parti célébrer alors» : quand Mbappé chambre Dembélé (vidéo)
0:30 Evasion de Rédoine Faïd : Le « roi de la belle » condamné à 14 ans de réclusion
0:25 Donald Trump écope d’une nouvelle amende, sa défense « pas crédible », tranche le juge
23:26 Marseille-AEK Athènes : à l'OM, l'attaque cherche encore sa voix
22:45 Procès Rédoine Faïd : le «roi de la belle» condamné à 14 ans de prison ferme
22:30 "La crise environnementale est une urgence de santé mondiale" : 200 revues scientifiques écrivent à l'OMS
22:26 "Le bel indifférent" de Jean Cocteau : indifférent... ou pas. Une chronique à quatre mains et des avis différents
22:25 Le trumpiste Mike Johnson, enfin un nouveau speaker pour la Chambre des représentants
22:25 Etats-Unis : Mike Johnson, l’inconnu trumpiste devenu speaker de la Chambre des représentants
22:20 Bijou de Mbappé, force de caractère, Zaïre-Emery en Bleu, : les mots de Luis Enrique après PSG-AC Milan
22:13 Essayer ensemble, c’est oser réussir
22:12 "Ravenne" de Judith Herrin : quand l’Occident naît des ruines de l’Empire romain. Un éclairage intéressant sur une période mal connue
22:12 Ligue des champions : Evanilson voit triple, Newcastle les pieds dans le tapis… les Tops/Flops de la soirée
22:09 Saint-Estève (66) : à peine sorti de prison, Nordine tente un cambriolage mais le voleur aux 14 arrestations tombe sur… la maison d’un policier
22:02 "Trust" d'Hernan Diaz : le grand roman américain sur le capitalisme ? Des qualités certes, mais il ne faut pas être trop difficile
21:57 Guerre Israël-Hamas. La visite de Macron en Égypte, Netanyahou estime qu'il devra rendre des comptes : l'essentiel de la journée
21:51 "L'effet papillon" de Taha Mansour : et si c'était possible ?
21:46 Sécurisation des JO : pas de décision sur un recours à l’armée avant “début 2024”, selon le ministre des sports, Amélie Oudéa-Castéra
21:34 Le PSG retrouve le sourire face à Milan
21:28 Ligue des champions : Manchester City et Haaland s'imposent sans trembler
21:28 Revenu solidarité jeunes : Lyon continue d’explorer son bon filon
21:27 Les notes du PSG contre l'AC Milan : Zaïre-Emery le délice, Mbappé le poison, Kolo Muani le buteur décevant
21:27 PSG-AC Milan : «On est une équipe, ça se voit sur le terrain», savoure l'homme du match Zaïre-Emery
21:06 Les notes du PSG contre l'AC Milan : Mbappé toujours là, Zaïre-Emery délicieux, Kolo Muani buteur décevant
21:05 Ligue des Champions : avec un bijou signé Mbappé, le PSG s'offre Milan et prend la tête
20:59 Le PSG corrige l'AC Milan et se relance en Ligue des champions
20:56 PSG - AC Milan EN DIRECT : Kang-in Lee se joint à la fête... C'est la piquette pour les Italiens... Suivez le match avec nous...
20:55 Ligue des Champions : le PSG surclasse l’AC Milan et prend la tête de son groupe
20:54 Ligue des champions : le PSG domine logiquement l'AC Milan et reprend la tête de son groupe
20:53 PSG - Milan : Paris lave l'affront de Newcastle en corrigeant les Milanais, le résumé du match
20:45 Seine-Saint-Denis : pour 71% des habitants du “93” il est « facile de vivre en Seine-Saint-Denis lorsqu’on n’est pas blanc », alors que 69% d’entre eux jugent que c’est « difficile » dans le reste de la France (sondage Harris / Toluna)
20:40 "Des nuls" : l'aveu de taille de Michael Goldman sur le casting de la nouvelle promo de la "Star Academy"
20:33 Dinan (22) : “éteignez-le wesh, mets lui des pénalty”. Deux frères frolent la mort après avoir été tabassés car ils étaient roux. 4 accusés, dont un Malgache en OQTF, sortent “l’air victorieux” du tribunal, n’ayant reçu que des peines de prison aménagées
20:33 L’ONU, ce punching-ball mondial [Le point de vue de CL]
20:30 Guerre Hamas-Israël : Le joueur niçois Youcef Atal suspendu sept matchs après sa publication sur le conflit
20:30 Gérald Darmanin maintient sa position sur Karim Benzema qui tweete «de façon sélective»
20:27 Ligue 1. Racing : ces chiffres qui inquiètent
20:27 Sécu alimentaire : la Gironde commande à la carte
20:23 Ligue 1 : Montpellier-Clermont sera rejoué, le club héraultais sanctionné d’un point
20:22 Loi immigration: LR durcit le ton et maintient ses exigences constitutionnelles
20:19 PSG - AC Milan EN DIRECT : Kolo Muani met un Paris transfiguré à l'abri... Suivez le match avec nous...
20:19 Ligue 1 : Youcef Atal suspendu sept matches après sa publication sur le conflit Hamas-Israël
20:15 Nikos Aliagas, Michael Goldman et les nouveaux profs de la "Star Academy" recadrent Yann Barthès en direct
20:11 PSG - Milan - EN DIRECT : cette fois le break est fait ! Suivez le match en live
20:09 Explosion à l’hôpital Al-Ahli Arabi de Gaza : qu’apporte l’enquête du «New York Times» ?
20:08 PSG-AC Milan : les supporters contre «toute forme de terrorisme» et les «crimes de guerre à Gaza»
20:04 "Tapie" de Tristan Séguéla et Olivier Demangel : l’ascension de Nanard, du "Wonderman" au mitard
20:04 PSG - Milan - EN DIRECT : Mbappé et Zaïre-Emery illuminent la rencontre, suivez le match en live
20:04 Arrêt du match MHSC-Clermont : Montpellier connaît sa sanction et elle est lourde
20:01 Mort d'une femme de 62 ans renversée par un bus en traversant un passage piéton avec son conjoint
20:00 La musique émouvante combat aussi bien la douleur que certains analgésiques
20:00 L'acteur Erik Jensen (The Walking Dead ) annonce être atteint d'un cancer à un stade très avancé
19:58 Guerre Hamas – Israël EN DIRECT : L'OMS presse le Hamas de relâcher tous les otages « pour raisons de santé »...
19:58 « L’Iris blanc » : que vaut le dernier Astérix ?
19:57 Ligue des Champions : en vidéo, la spéciale de Kylian Mbappé qui délivre le PSG
19:51 Construire un monde meilleur passe par les actions locales
19:48 Un chêne tombe sur leur voiture et tue le conducteur : un mort et un enfant de 7 ans gravement blessé
19:48 En direct. Guerre Israël-Hamas : Netanyahou dit qu'il devra lui aussi « rendre des comptes » sur les « défaillances » sécuritaires
19:45 Ultragauche : Jusqu’à six ans de prison requis contre les sept militants jugés pour un projet d’action violente
19:45 Guerre Hamas - Israël : Benjamin Netanyahu affirme qu'il devra aussi "rendre des comptes"
19:42 Ligue des Champions : la spéciale de Kylian Mbappé délivre le PSG (vidéo)
19:38 PSG - AC Milan EN DIRECT : Kylian Mbappé libère Paris après un exploit personnel... Suivez le match avec nous...
19:38 Guerre en Ukraine : des débris de drones endommagent des installations essentielles, le point sur la situation
19:37 PSG - Milan - EN DIRECT : un éclair de génie lance le choc, suivez le match en live
19:37 Expérimentations au niveau local : les essais essaiment
19:31 Guerre en Ukraine : Choïgou inspecte des troupes, des débris de drones endommagent des installations... le point sur la situation
19:30 Alerte à la bombe dans des robots livreurs sur un campus américain
19:30 "Agathe la chaudasse", Jean-Michel Maire se lâche complètement sur "TPMP"
19:29 Situation humanitaire critique à Gaza
19:28 Le chômage remonte en France, un retournement de tendance?
19:28 PSG - AC Milan EN DIRECT : Le ballon brûle les pieds des Parisiens, le trio offensif inexistant... Suivez le match avec nous...
19:28 Russie: tirs de missiles balistiques simulant une frappe nucléaire
19:21 PSG-AC Milan : le magnifique hommage à Jean-Paul Belmondo avant le match
19:13 PSG - AC Milan EN DIRECT : Festival dans les tribunes, Donnarumma insulté, le Parc est chaud pour le choc... Suivez le match avec nous...
19:12 États-Unis : un allié de Trump élu président de la Chambre des représentants, après des semaines de chaos
19:08 JO 2024 : pas de décision avant «début 2024» quant à un recours à l’armée pour sécuriser l’événement
19:08 Résultat Loto (FDJ) : le tirage de ce mercredi 25 octobre 2023 [EN LIGNE]
19:08 Au Liban, l’angoisse d’un «conflit dont le pays n’a pas besoin»
19:04 Au synode, l'improvisation choc du pape François en faveur des femmes
19:03 Il n'y a qu'un pays au monde où Snoop Dogg ne peut pas acheter de drogue
19:00 Comment fonctionne une entreprise dont l'actionnaire majoritaire est une fondation ? L'exemple de Pierre-Fabre
19:00 Valérie Benaïm et Géraldine Maillet décrochent chacune une émission : nouvelles grandes annonces de Cyril Hanouna !
18:57 Ligue des champions : le FC Barcelone assure l’essentiel face au Shakhtar
18:53 Le spectacle Bernadette de Lourdes non éligible à l’offre collective du pass Culture. Il est accusé de ne pas respecter la laïcité par le rectorat de Versailles
18:49 PSG - Milan - EN DIRECT : suivez le choc en live
18:47 Guerre Israël-Hamas : l’Iran, agent déstabilisateur du Proche-Orient