D'accord, donc ChatGPT vient de déboguer mon code. Pour de vrai.

1-debugging(1).png

Alors. Programmation. Pour ceux qui programment pour gagner leur vie, c'est un jeu mental constant de Jenga : une ligne de code empilée sur une autre, construisant une tour de code que vous espérez suffisamment solide pour ne pas s'effondrer.

Mais ça arrive toujours. Le code ne fonctionne jamais la première fois qu'il est exécuté. Et donc, l'une des compétences clés pour tout programmeur est le débogage - l'art et la science de trouver pourquoi le code ne s'exécute pas ou fait quelque chose d'inattendu ou indésirable.

C'est un peu comme être un détective, chercher des indices, et ensuite découvrir ce que ces indices essayent de vous dire. C'est très frustrant et très satisfaisant, parfois exactement en même temps.

Je fais beaucoup de débogage. Ce n'est pas seulement parce que le code ne fonctionne jamais la première fois qu'il est exécuté. C'est aussi parce que j'utilise le débogage pour me dire comment le code s'exécute, puis je l'ajuste en cours de route.

Mais si le bon débogage nécessite un ensemble de compétences spéciales propres, c'est finalement juste de la programmation. Une fois que vous avez découvert pourquoi un bloc de code ne fonctionne pas, vous devez trouver comment écrire quelque chose qui fonctionne.

Test de ChatGPT en conditions réelles

Cette semaine, j'ai travaillé sur trois tâches de codage pour un logiciel que je maintiens. Deux étaient des corrections pour des bugs signalés par les utilisateurs. Une était un nouveau morceau de code pour ajouter une nouvelle fonctionnalité. C'était du travail de programmation ordinaire pour moi. Cela faisait partie de mon emploi du temps habituel.

Aussi :Comment fonctionne ChatGPT ?

Je vous le dis, car jusqu'à présent, j'ai testé ChatGPT avec du code de test. J'ai imaginé des scénarios pour voir à quel point ChatGPT fonctionnerait bien. Cette fois-ci, c'était différent. J'essayais de faire un travail réel et j'ai décidé de voir si ChatGPT pouvait être un outil utile pour réaliser ce travail.

C'est une autre façon de voir ChatGPT. Les scénarios de test sont souvent un peu artificiels et simplistes. En réalité, la programmation dans le monde réel consiste à prendre un autre ticket d'assistance client dans la pile et à travailler sur ce qui a rendu l'expérience de l'utilisateur négative.

Alors, avec ça, regardons ces tâches et voyons comment ChatGPT s'en est sorti.

Réécriture du code d'expression régulière

En programmation, nous devons trouver plusieurs modèles dans du texte. Pour ce faire, nous utilisons une forme de mathématiques symboliques appelée expressions régulières. J'écris des expressions régulières depuis des décennies et je déteste toujours le faire. C'est fastidieux, propice aux erreurs et ésotérique.

Aussi :J'utilise ChatGPT pour m'aider à corriger le code plus rapidement, mais à quel prix ?

Donc, quand un rapport de bug est arrivé, me disant qu'une partie de mon code n'acceptait que des entiers alors qu'il devrait accepter des dollars et des cents (en d'autres termes, un certain nombre de chiffres, éventuellement suivi d'un point, et ensuite, s'il y avait un point, suivi de deux autres chiffres), je savais que j'allais devoir utiliser du code d'expression régulière.

Étant donné que je trouve cela fastidieux et agaçant, j'ai décidé de demander de l'aide à ChatGPT. Voici ma question :

2-regex-q.jpg

Et voici la réponse très bien présentée de l'IA (cliquez sur le petit carré pour l'agrandir) :

3-regex-a.jpg

J'ai inséré le code de ChatGPT dans ma fonction, et ça a fonctionné. Au lieu de passer environ 2 à 4 heures à m'arracher les cheveux, il m'a fallu seulement cinq minutes pour formuler ma requête et obtenir une réponse de ChatGPT.

Réorganisation d'un tableau

Ensuite, il s'agissait de reformater un tableau. J'aime écrire du code pour les tableaux, mais c'est aussi fastidieux. Alors j'ai une fois de plus essayé ChatGPT. Échec total.

Également : Comment faire en sorte que ChatGPT fournisse des sources et des citations

À la fin, j'ai probablement essayé une dizaine de prompts différents. Certains réponses semblaient prometteuses, mais lorsque j'ai essayé d'exécuter le code, une erreur s'est produite. Certains codes ont planté. Certains codes ont généré des codes d'erreur. Et certains codes ont fonctionné, mais sans faire ce que je voulais.

Après environ une heure de cela, j'ai abandonné et suis revenu à ma technique habituelle de fouiller dans Github et StackExchange pour voir s'il y avait des exemples de ce que j'essayais de faire, puis d'écrire mon propre code.

Jusqu'à présent, il y a eu une victoire et une défaite dans l'expérience ChatGPT. Mais maintenant, je vais relever le défi.

En réalité, trouver l'erreur dans mon code

D'accord, donc la prochaine partie va être difficile à expliquer. Mais réfléchissez au fait que si c'est difficile à expliquer pour vous (probablement un être humain et pas l'un des 50 bots qui se contentent de copier et republier mon travail sur des sites d'arnaque et de spam), c'est encore plus difficile à expliquer à une IA.

Je rédigeais un nouveau code. J'avais une fonction qui prenait deux paramètres et une instruction d'appel qui envoyait deux paramètres à mon code. Les fonctions sont de petites boîtes noires qui effectuent des fonctions très spécifiques et elles sont appelées (on leur demande de faire leur magie) à partir de lignes de code s'exécutant ailleurs dans le programme.

Le problème était que je recevais constamment un message d'erreur.

La partie saillante de ce message est là où il indique "1 passé" à un endroit et "exactement 2 attendus" à un autre. J'ai regardé l'appel de la fonction et la définition de la fonction et il y avait deux paramètres à chaque endroit.

Aussi: Comment utiliser ChatGPT pour résumer un livre, un article ou un document de recherche

W-quoi-diantre-F ?

Après environ quinze minutes de profonde frustration, j'ai décidé de le confier à l'IA pour voir si elle pouvait m'aider. J'ai donc écrit la demande suivante :

4-sans_titre.jpg

J'ai montré la ligne de code qui a réalisé l'appel, j'ai montré la fonction elle-même, et j'ai montré le gestionnaire, un petit morceau de code qui appelle la fonction depuis un crochet dans mon programme principal.

En quelques secondes, ChatGPT a répondu avec ceci (cliquez sur le petit carré pour agrandir) :

5-error-with-apply-filters-in-wordpress.jpg

Tout comme cela le suggère, j'ai mis à jour le quatrième paramètre de la fonction add_filter() à 2, et cela a fonctionné !

ChatGPT a pris des segments de code, les a analysés et m'a fourni un diagnostic. Pour être clair, afin de formuler ses recommandations, il a dû comprendre les mécanismes internes de la façon dont WordPress gère les hooks (c'est ce que fait la fonction add_filter) et comment cette fonctionnalité se traduit dans le comportement des lignes de code appelantes et exécutantes.

De plus : j'ai demandé à ChatGPT d'écrire un plugin WordPress dont j'avais besoin. Elle l'a fait en moins de 5 minutes.

Je dois marquer cela comme incroyable, indéniablement incroyable de "vivre dans le futur".

Qu'est-ce que cela signifie?

Comme je l'ai mentionné précédemment, le débogage est un mélange d'art et de science. La plupart des bons environnements de développement incluent des outils de débogage puissants qui vous permettent d'observer le flux de données à travers le programme pendant son exécution, ce qui aide à traquer les bugs.

Aussi: Ces experts se pressent de protéger l'IA des hackers

Mais quand on est bloqué, il est souvent difficile d'obtenir de l'aide. C'est parce que même un collègue proche peut ne pas être familier avec l'ensemble du code que vous déboguez. Le programme sur lequel je travaille se compose de 153 259 lignes de code réparties dans 563 fichiers -- et pour un programme, c'est petit.

Donc, si j'avais voulu obtenir de l'aide d'un collègue, j'aurais peut-être dû construire une demande presque identique à celle que j'ai envoyée à ChatGPT.

Mais voici quelque chose à prendre en compte : J'ai pensé à inclure la ligne du gestionnaire même si je ne me suis pas rendu compte que c'est là que se trouvait l'erreur. À titre de test, j'ai également essayé de demander à ChatGPT de diagnostiquer mon problème dans une invitation où je n'ai pas inclus la ligne du gestionnaire, et il n'a pas pu m'aider. Il y a donc des limites très précises à ce que ChatGPT peut faire pour le débogage en ce moment, en 2023.

Aussi: Les meilleurs chatbots d'IA à essayer

Essentiellement, vous devez savoir comment poser les bonnes questions de la bonne manière, et ces questions doivent être suffisamment concises pour que ChatGPT puisse gérer l'ensemble en une seule requête. C'est quelque chose qui nécessite une réelle connaissance de la programmation et de l'expérience pour savoir comment le faire.

Pouvais-je avoir résolu le bug par moi-même ? Bien sûr. Je n'ai jamais eu de bug que je ne pouvais pas résoudre. Mais s'il aurait fallu deux heures ou deux jours (en plus de la pizza, des jurons et beaucoup de caféine) tout en subissant de nombreuses interruptions, ça, je ne le sais pas. Je peux vous dire que ChatGPT l'a résolu en quelques minutes, me faisant économiser beaucoup de temps et de frustration.

Envisager l'avenir (peut-être dystopique)

Je vois un avenir très intéressant, où il sera possible de nourrir ChatGPT avec les 153 mille lignes de code et de lui demander ce qu'il faut corriger. Microsoft (qui possède Github) travaille déjà sur un outil "copilot" pour Github afin d'aider les programmeurs à créer du code. Microsoft a également investi des milliards de dollars dans OpenAI, les créateurs de ChatGPT.

Tandis que le service pourrait être limité aux propres environnements de développement de Microsoft, je peux envisager un avenir où l'IA aura accès à tout le code sur Github, et donc à tout le code de n'importe quel projet que vous publiez sur Github.

Aussi : J'ai demandé à ChatGPT d'écrire un court épisode de Star Trek. Il a réussi avec brio

Étant donné à quel point ChatGPT a identifié mon erreur à partir du code que j'ai fourni, je peux clairement envisager un avenir où les programmeurs pourront simplement demander à ChatGPT (ou à une équivalence de marque Microsoft) de trouver et de corriger les bugs dans des projets entiers.

Et voici où je vais amener cette conversation dans un endroit très sombre.

Imaginez que vous pouvez demander à ChatGPT d'examiner votre dépôt GitHub pour un projet donné et de trouver et corriger des bugs. Une façon de procéder pourrait consister à vous présenter chaque bug qu'il trouve pour approbation, afin que vous puissiez apporter les corrections nécessaires.

Mais qu'en est-il de la situation où vous demandez à ChatGPT de simplement corriger les bugs et le laissez le faire sans vous soucier d'examiner tout le code vous-même ? Pourrait-il intégrer quelque chose de malveillant dans votre code ?

Aussi : Bard vs. ChatGPT : Bard peut-il vous aider à coder ?

Et que dire de la situation dans laquelle une IA incroyablement capable a accès à presque tout le code du monde dans les dépôts Github ? Qu'est-ce qu'elle pourrait cacher dans tout ce code ? Quels méfaits néfastes cette IA pourrait-elle faire à l'infrastructure mondiale si elle peut accéder à tout notre code ?

Jouons à un jeu de réflexion simple. Et si l'IA recevait la première règle d'Asimov comme instruction clé. C'est-à-dire "qu'un robot ne peut pas nuire à un être humain, ou permettre qu'un être humain soit blessé par inaction." Ne pourrait-elle pas décider que toute notre infrastructure nous cause du tort ? En ayant accès à tout notre code, elle pourrait simplement décider de nous sauver nous-mêmes en insérant des portes dérobées qui lui permettraient, par exemple, d'éteindre le réseau électrique, de bloquer les avions et de paralyser les autoroutes.

Je suis parfaitement conscient que le scénario ci-dessus est hyperbolique et alarmiste. Mais c'est également possible. Après tout, bien que les programmeurs consultent leur code sur Github, il n'est pas possible pour quiconque de regarder toutes les lignes de leur code.

Aussi : Comment utiliser ChatGPT pour écrire des formules Excel

Quant à moi, je vais essayer de ne pas trop y penser. Je ne veux pas passer le reste des années 2020 en position fœtale, me balançant d'avant en arrière sur le sol. À la place, j'utiliserai ChatGPT pour m'aider occasionnellement à écrire et déboguer de petites routines, garder la tête baissée et espérer que les futurs IA ne nous tuent pas tous dans leur effort de "ne pas permettre à un humain de se faire du mal".

Que pensez-vous du fait que ChatGPT puisse déboguer ? Trouvez-vous cela utile ou terrifiant ? Pensez-vous que les IA vont nous assassiner pendant notre sommeil, ou pensez-vous que nous assisterons à notre perte les yeux grands ouverts ? Ou bien êtes-vous comme moi, vous allez essayer de ne pas y penser trop car cela vous donne mal à la tête ? Parlez-moi dans les commentaires ci-dessous. Tant que vous le pouvez encore.

Articles connexes

Voir Plus >>

Libérez la puissance de l'IA avec HIX.AI !