L'utilisation de code généré par l'IA fera de vous un mauvais programmeur, par Rudis Muiznieks
C'est probablement une bonne chose, sauf si vous vous souciez de vous améliorer ou d'être fier de votre travail.
Pour être clair, lorsque j'écris "utiliser du code généré par l'IA" dans cet avis, je fais référence au fait de laisser une IA écrire du code à votre place - je ne parle pas de l'utilisation de l'IA comme outil d'apprentissage pour mieux comprendre les langages de programmation et les bibliothèques afin d'améliorer le code que vous écrivez vous-même. (Mais si vous utilisez ces outils en écrivant des noms de méthode descriptifs ou des commentaires indiquant une fonctionnalité vague, puis en laissant une IA remplir le code, ou si vous comptez sur une IA pour apprendre et comprendre votre propre base de code afin que vous n'ayez pas à le faire, alors j'écris cet article pour vous.
Raisons de ne pas utiliser le code généré par l'IA
Vous vous privez d'opportunités d'apprentissage
Dans les premiers jours d'Internet, le terme péjoratif "script kiddie" a été inventé pour désigner les personnes qui "piratent" les systèmes informatiques sans comprendre ce qu'elles font ni comment elles y parviennent. Il s'agit d'une personne qui télécharge un outil ou un script promettant de déchiffrer un mot de passe, d'accéder à l'ordinateur de quelqu'un d'autre, de défigurer un site web ou d'atteindre un autre objectif néfaste. En supposant que les scripts fonctionnent comme annoncé, les enfants qui les exécutent se considèrent comme de véritables pirates informatiques.
Vous pensez peut-être qu'il est exagéré de comparer les développeurs qui utilisent du code généré par l'IA aux enfants qui utilisent des outils de piratage pré-écrits. Ce n'est pas le cas.
Les script kiddies en série veulent devenir de grands hackers, mais ils n'y parviendront jamais en exécutant des scripts. Les vrais grands hackers sont ceux qui écrivent ces scripts, ceux qui explorent, sondent et comprennent vraiment les vulnérabilités exploitées. Les codeurs d'IA en série peuvent vouloir devenir de grands développeurs, mais en laissant les moteurs de texte prédictif écrire le code à leur place, ils réduisent les chances que cela se produise un jour. Au moins pour l'instant, les vrais développeurs sont ceux qui écrivent le code sur lequel ces moteurs de texte prédictif s'entraînent.
Il semble évident que l'on ne peut pas s'améliorer dans un domaine sans le pratiquer. Vous ne vous améliorerez pas aux échecs si vous ne jouez pas. Vous ne deviendrez pas un meilleur joueur de hockey en restant sur le banc de touche. Vous ne pouvez pas apprendre à jouer du piano en écoutant les albums de Yanni de votre mère - à un moment donné, vous devez jouer vous-même. Il est évident que vos compétences en tant que développeur ne progresseront jamais si vous n'écrivez pas de code.
Les compétences que vous possédez déjà peuvent s'atrophier
Mais qu'en est-il si vous êtes déjà à l'aise avec vos compétences de programmeur ? Et si vous voulez que l'IA se contente de faire les choses ennuyeuses - échafauder un nouveau projet, écrire une fonction factorielle ou mergeSort (pourquoi les gens aiment-ils tant demander à l'IA d'écrire des fonctions factorielles et mergeSort ?
Vous pensez peut-être que c'est bien. Après tout, les développeurs seniors ont délégué des tâches fastidieuses à des juniors bien avant que les LLM ne soient un clin d'œil à Sam Altman. Quelle est la différence ?
Tout d'abord, les programmeurs juniors ont besoin de plus d'indications qu'un outil d'intelligence artificielle et peuvent également venir vous voir pour obtenir des réponses ou des conseils. En les aidant, vous avez l'occasion de renforcer vos propres compétences et d'en développer de nouvelles (mentorat, communication, comment faire la grimace et être agréable malgré votre irritation et votre impatience croissantes).
Deuxièmement, c'est un fait fondamental dans le développement de logiciels (et dans la vie en général) que si vous ne faites pas quelque chose pendant suffisamment longtemps, vous finirez par oublier comment le faire. Si vous êtes dans le secteur depuis un certain temps, rappelez-vous le premier langage de programmation que vous avez appris. Pour moi, c'était le Pascal. Aujourd'hui, je ne pense pas pouvoir écrire une seule ligne en Pascal qui soit syntaxiquement valide, et encore moins accomplir quoi que ce soit de significatif. Autre exercice : Essayez de programmer pendant une journée sans coloration syntaxique ni autocomplétion, et constatez à quel point vous vous sentez pathétique sans ces outils. Si vous êtes comme moi, vous découvrirez que ces "assistants" ont sapé une grande partie de vos connaissances en éliminant la nécessité de mémoriser même des tâches d'une simplicité embarrassante. Imaginez à quel point vous seriez pathétique si l'IA vous dispensait entièrement d'écrire du code. Si vous arrêtez d'écrire votre propre code - même les parties ennuyeuses - vous allez devenir rouillé. Vous oublierez des choses. Il vous sera plus difficile de coder les éléments intéressants, car vous perdrez les bases sur lesquelles reposent les compétences plus avancées.
Imaginez qu'un fabricant d'appareils d'entraînement sorte demain un nouveau produit "Artificial Strenght", promettant que vous pouvez "améliorer" votre capacité à soulever des poids et "écraser votre prochaine séance d'entraînement" grâce à son incroyable nouvel assistant d'entraînement - un robot qui soulève les poids à votre place. Si vous commencez à vous fier à ce produit, que pensez-vous qu'il arrivera à votre banc de musculation maximum au fil du temps ? Quel sera l'effet des assistants de codage sur votre capacité à écrire et à raisonner sur le code au fil du temps ?
Vous risquez de devenir dépendant de votre propre remplacement éventuel
De nombreux assistants de codage IA sur le marché (au moment où j'écris ces lignes) proposent leurs produits gratuitement aux étudiants. Vous pourriez penser que c'est gentil de leur part, qu'ils ont le cœur bien accroché et qu'ils ménagent ces pauvres enfants qui ont des difficultés financières. C'est faux. S'il y a un moment dans la vie d'un développeur de logiciels où il ne devrait absolument pas prendre de raccourcis, c'est bien lorsqu'il commence à apprendre les ficelles du métier.
Il s'agit là d'un véritable comportement de prédateur. À l'instar des cultes religieux qui endoctrinent les enfants dès la naissance pour s'assurer un afflux constant de nouveaux membres, les entreprises d'IA savent que rendre les développeurs accros avant même qu'ils n'aient ouvert leur premier éditeur de texte garantit une vie entière de revenus récurrents par le biais d'abonnements. Je suis sûr qu'elles voient l'écriture sur le mur lorsqu'il s'agit de barbus comme moi, qui écrivent de longues tirades absurdes et dessinent des bandes dessinées stupides pour expliquer à quel point nous détestons l'IA et les entreprises qui la vantent. Elles se tournent donc vers les futures générations de développeurs, imaginant probablement une armée d'enfants codés dépendants de l'IA qui ne pourraient pas dire "Hello World" sans une longue session de chat au cours de laquelle ils demanderaient à un robot de le faire à leur place.
Plus haut dans cet article, j'ai laissé entendre que beaucoup d'entre nous sont déjà dépendants de leurs environnements de développement fantaisistes - surlignage syntaxique, autocomplétion, analyse de code, refactorisation automatique. Vous vous demandez peut-être en quoi l'IA diffère de ces environnements. La réponse est assez simple : les premiers sont des outils dont le but ultime est de vous aider à être plus efficace et à écrire un meilleur code ; les seconds sont des outils dont le but ultime est de vous remplacer complètement. Les outils d'IA ne font pas l'objet d'un marketing agressif et ne sont pas accueillis avec empressement par nos dirigeants d'entreprise parce qu'ils pensent qu'ils transformeront leurs employés en développeurs de haut niveau qui gagneront beaucoup d'argent. Non, ils bavent d'impatience parce qu'ils entrevoient un avenir dans lequel leurs développeurs de haut niveau, qui gagnent beaucoup d'argent, auront tous été remplacés par des débutants moins chers, dont le code est alimenté par l'IA. Ou, mieux encore, remplacés par l'IA, une fois qu'un nombre suffisant d'entre nous aura payé un abonnement pour avoir le privilège de former ces IA jusqu'à ce qu'on n'ait plus besoin de nous.
Petit aparté : Le code généré par l'IA vous appartient-il au moins ?
Je ne suis pas juriste et je ne joue pas non plus les avocats à la télévision, mais je suis abonné à Hello Future Me sur Nebula et j'ai la nette impression qu'il existe, pour le moins, une certaine ambiguïté juridique en ce qui concerne la propriété des œuvres générées par l'IA. Pour l'instant, la conversation porte principalement sur les œuvres artistiques, mais il n'y a aucune raison de penser que cela ne s'applique pas aussi au code. (De plus, si vous êtes bizarre comme moi, vous appréciez de toute façon la programmation comme une forme d'expression artistique).
Si vous générez une fonction avec une IA dont les données d'apprentissage contiennent du code sous licence LGPL, cette fonction générée doit-elle également tomber sous le coup de la LGPL ? Peut-être que vous ne vous souciez pas de la LGPL parce qu'elle n'a pas de mordant, mais que se passerait-il si les données d'entraînement comprenaient une version non libre d'une société obscènement riche et procédurière avec sa propre armée privée d'avocats très bien payés ? Et s'ils pouvaient prouver que vous avez utilisé cette IA lors de la construction de votre produit concurrent qui est devenu un peu trop performant pour son propre bien ?
Honnêtement, je ne connais pas les réponses à ces questions, mais je ne veux pas non plus être celui qui paiera les frais juridiques lorsque les tribunaux devront y répondre. Et vous ?
Votre code ne sera pas respecté
Il n'est pas exact de dire que le code généré par l'IA sera nécessairement mauvais. Bien que cela puisse être vrai à des degrés divers compte tenu des outils disponibles aujourd'hui, il est clair que cette technologie est là pour durer et qu'elle ne fera que s'améliorer.
Ce que je peux dire avec une certaine certitude, c'est que si vous utilisez ces outils, personne, en dehors des autres enfants du code généré par l'IA, ne sera probablement impressionné par votre qualité de programmeur. Le développement de logiciels est un art - construire une base de code cohérente et solide, trouver des solutions élégantes à des problèmes difficiles et gagner le respect de ses pairs devraient être des sources de fierté et de joie pour chaque programmeur. Préférez-vous célébrer vos propres réalisations ou celles du moteur de texte prédictif qui génère le code à votre place ? Peut-être suis-je stupide ; peut-être cette façon de vivre le processus de programmation me place-t-elle dans la minorité, comme un vieux schnock qui se plaint que Batman ne danse plus, mais c'est honnêtement la principale raison pour laquelle je n'intégrerai jamais d'IA génératrice de code dans mon environnement de développement - même si cela doit me rendre inemployable.
Je ne veux pas commander une œuvre d'art et prétendre être l'artiste. Je veux être l'artiste.
Je comprends que l'application de planification du linge que vous écrivez pour l'industrie hôtelière, ou quel que soit votre travail quotidien, ne figurera jamais sur la liste restreinte de Fabien Sanglard pour une plongée en profondeur dans l'élégance de votre code, mais est-ce vraiment une mauvaise chose à laquelle il faut aspirer ? Le fait d'être fier de son travail ne le rend-il pas plus agréable ? Comment pouvez-vous respecter votre propre code ou vous attendre à ce que quelqu'un d'autre le respecte si vous ne l'avez même pas écrit ?
Raisons d'utiliser du code généré par l'IA
Vous êtes un masochiste qui préfère les revues de code au codage
J'avais tort tout à l'heure. C'est la raison principale pour laquelle je n'intégrerai jamais l'IA dans mon environnement de développement. J'adore écrire du code. Je n'aime pas du tout lire, réviser et générer des commentaires sur le code des autres. Je comprends que c'est une bonne compétence à développer et qu'elle peut contribuer à faire de collègues moins expérimentés des collaborateurs plus productifs, mais je déteste toujours cela.
Plus vous laissez l'IA générer du code pour vous, plus vous passez du statut de codeur à celui de réviseur de code. Je ne sais pas, c'est peut-être votre truc. Certaines personnes aiment les trucs pervers, je ne jugerai pas.
Vous ne voulez pas vraiment être programmeur
Si vous n'avez aucune envie d'apprendre à coder, et que vous considérez plutôt l'IA comme un travailleur indépendant - en lui disant des trucs comme "fais un jeu de kart racer" et "c'est nul, améliore-le" - alors rien de tout cela ne s'applique vraiment à vous.
En vérité, je crois que c'est l'avenir que les entreprises géantes appellent de leurs vœux. Un monde dans lequel leurs écosystèmes contrôlent non seulement les moyens de distribution des applications, mais aussi les moyens de production des applications. Vous avez une idée pour une nouvelle application ? Il suffit de dire à l'IA de l'App Store ce que vous voulez et elle l'excrétera directement sur votre appareil, ce qui permettra à Big Corpo d'empocher la coquette somme de 100 % des frais d'abonnement que vous et tout le monde payez pour leur nouvelle application - ce qui est de loin préférable aux 30 % qui constituaient leur part dans le passé, lorsque ces satanés intermédiaires développeurs d'applications insistaient pour apporter une certaine valeur ajoutée au processus.
Ce qui m'amène à la dernière raison pour laquelle vous pourriez vouloir utiliser du code généré par l'IA.
Vous pensez que nous sommes entrés dans une nouvelle ère post-travail et vous faites confiance aux entreprises pour nous y guider
Dans le cas improbable où vous êtes déjà plongé dans le Kool-Aid et que vous n'avez pas abandonné cet article après les deux premiers paragraphes, alors je n'ai pas grand-chose d'autre à vous dire. Je vous recommande de lire Nineteen-Eighty-Four, Farenheit 451, ou Snow Crash - vous apprécierez probablement leurs visions de l'avenir et en tirerez quelque chose à attendre avec impatience.
À tous les autres, merci de m'avoir lu. J'aurai sans aucun doute de nouvelles opinions et de nouveaux gribouillis sur l'IA à partager ici (c'est pour cela que j'ai enregistré le domaine), mais pour l'instant, il n'y a pas de calendrier, alors ne retenez pas votre souffle - au lieu de cela, demandez peut-être à une IA de retenir son souffle pour vous.
SlopWatch © 2024 is licensed under CC BY-SA 4.0.
Source : "Using AI Generated Code Will Make You a Bad Programmer"
Et vous ?
Pensez-vous que ces affirmations sont crédibles ou pertinentes ?
Quel est votre avis sur le sujet ?
Voir aussi :
Les assistants d'IA de codage font-ils vraiment gagner du temps aux développeurs ? Une étude suggère que ces outils n'augmentent pas la vitesse de codage, mais augmentent significativement le taux de bogues
Au-delà du battage médiatique : Mes réflexions honnêtes sur l'IA générative, par Mensur Durakovic
« Apprendre à programmer sera inutile à l'avenir », d'après le PDG de Nvidia, selon lequel l'intelligence artificielle fera de tous des programmeurs au travers du langage naturel
Partager