Je me suis longtemps demandé si je devais faire une telle vidéo. Et puis j’ai regardé ce qui avait déjà été dit, tout en continuant à utiliser ChatGPT et GitHub Copilot dans mon code au quotidien. Et là je me suis dit que oui, il fallait que je fasse ma vidéo.
Du coup, la voici : ce que pense un développeur qui a 15 années d’expérience de l’arrivée de l’intelligence artificielle. Suis-je terrifié pour notre métier, votre vie va-t-elle changer ? C’est parti !
Commençons par se poser la question au sens large, c’est à dire : est-ce que l’on va pouvoir demander à une IA de coder une application de ToDoList par exemple et qu’elle va nous sortir le code tout entier de l’application, sans qu’on ait besoin de lever le petit doigt ? Eh bien certainement qu’un jour elle va y parvenir. Du moins même si c’est pas dans un avenir proche, je pense qu’il est important de déjà s’y préparer.
Mais est-ce que je suis inquiet pour mon travail à ce niveau ? Et bien pas du tout ! Parce qu’une intelligence artificielle se base sur des millions de données pour en faire une synthèse, un agrégat qui est généraliste.
Alors certes, la réponse donnée sera peut-être fonctionnelle, mais elle sera toujours de qualité moyenne dans son ensemble. Au début, certaines personnes vont peut-être certainement en profiter et arriver à publier très rapidement quelque chose qui aurait dû leur prendre beaucoup de temps à produire. Mais je pense que très vite, face à cette arrivée rapide de produits et de contenu de qualité moyenne, le marché, c’est-à-dire nous les humains, on va très vite avoir une réaction de défense et de rejet de ce type de contenu peu qualitatif, créé par une intelligence artificielle.
Par simple définition et au sens biologique du terme, l’intelligence artificielle, à ce stade n’est pas humaine. Elle n’a ni sensibilité, ni émotion. Et ce que l’on recherche, nous les êtres humains, à travers nos échanges, nos relations, que ce soit même avec des objets comme un téléphone, ou même à travers cette vidéo, c’est justement de ressentir des émotions.
On aura donc toujours besoin de la touche humaine du développeur, de l’équipe graphique, marketing pour arriver à proposer un produit, un site, une application intéressante, performante et quelque peu humaine auprès du public. Sans quoi, ça sera juste un produit moyen, sans âme, insipide et donc inintéressant. Alors est-ce que j’ai peur de perdre mon travail parce qu’on pourra simplement copier coller le résultat d’un prompt qui a été donné à une IA, en mode bras-croisé, j’ai plus rien à faire ?
Pas un instant. Maintenant là où l’intelligence artificielle peut être performante et utile c’est comme première aide et ressource. Puisqu’elle génère une réponse qui est une compilation de millions de sources, elle fait gagner un temps précieux au niveau de la recherche et documentation.
Si je lui demande quels sont les points essentiels à inclure et à développer dans une application de TodoList par exemple, elle va sûrement nous sortir une liste des 10 points intéressants qui va pouvoir nous servir de base de réflexion sans avoir à passer des heures à comparer ces différentes fonctionnalités dans les différentes applications. I Et au lieu de rester les bras croisés et de se servir bêtement du résultat d’une intelligence artificielle, une fois que cette liste a été autogénérée, c’est à nous, humain de faire le tri et se dire oui, cette fonctionnalité, elle est basique, non pas celle-là, ah oui tiens, ça je n’y aurais pas pensé, je vais donc l’inclure. Donc avoir une IA qui prémâche le travail initial et qui vous sert de base sur laquelle travailler, ça c’est à mon sens l’utilisation réaliste qui va se généraliser : l’intelligence artificielle comme outil de départ.
Et pour le cas du développeur, on peut très bien imaginer que vous repreniez la liste des 10 fonctionnalités à inclure dans une Todo List et que demandiez à l’IA de générer le code boilerplate dans un langage de votre choix, sur lequel vous pourriez vous baser si vous ne savez pas par où commencer. Et le fait de dire « si vous ne savez pas par où commencer » m’amène aux points que je vois personnellement comme problématique dans l’usage de l’intelligence artificielle par les développeurs pour leur code. Je m’explique.
Mais juste avant, je vous invite à vous abonner à ma chaîne si vous trouvez mes conseils et mes explications pertinents. Ça vous permettra d’avoir accès à la partie communauté de la chaîne dans laquelle je vous partage tout une série d’autres conseils utiles pour les développeurs. Ma première réticence actuelle est due à l’exactitude de l’information et du code qui nous est actuellement retourné.
Même si l’on sait très bien que l’intelligence artificielle, à ce stade, n’a encore aucun moyen de vérifier l’exactitude de ce qu’elle pond et qu’elle y arrivera sûrement un jour. Sauf que pour le moment en tout cas, on n’y est pas. Ce qui fait qu’un outil qui est censé vous aider peut très vite arriver à avoir l'effet inverse.
Si vous voulez vous servir de l’IA pour écrire certaines parties de votre code et donc de vous en servir comme un assistant virtuel, c’est franchement pas encore tout à fait au point. Je ne compte plus le nombre de bouts de code que j’ai demandé à ChatGPT ou GitHub Copilot, pour écrire par exemple une requête SQL, que j’ai entré dans ma console pour me retrouver avec une erreur de syntaxe. Pourtant aux premiers abords, le code donné semblait totalement correct.
Sauf qu’encore trop souvent, dans les détails, ça n’était pas le cas. Et l’on sait très bien que dans la programmation, ça se joue au point-virgule près. Et restez avec moi, vous allez voir où je veux en venir… Vous vous direz : OK, il suffit juste de voir là où l’intelligence artificielle s’est planté, de changer peut-être un mot-clé et le tour est joué.
C’est tout à fait vrai mais c’est aussi là mon problème. Au lieu de réfléchir à comment je vais écrire et agencer mon code, ce qui est un processus d’apprentissage positif et qui me permet de devenir, à chaque fois, un petit peu meilleur, je me mets à éteindre mon cerveau, voir ce qu’une machine me sort et corriger ses erreurs. C’est le processus tout à fait l’inverse et il n’est absolument pas bénéfique pour le développeur.
Et pire que cela, quand vous savez très bien où vous voulez aller, que vous avez une vision très claire de votre code et que vous n’avez plus qu’à le taper. En plein milieu d’une phrase, vous avez une autosuggestion qui apparaît et qui vous propose quelque chose de correct à 99 %. C’est-à-dire que tout semble correct, sauf peut-être le nom de la dernière variable n’est pas tout à fait juste.
Vous devez alors stopper votre cerveau qui est en mode production, qui sait très bien où il va, pour analyser ce que l’intelligence artificielle a produit et vérifier s'il n’y a pas d’erreur et au quel cas, éventuellement la corriger. Je savais très bien où j’allais, puis la machine est venu ajouter une erreur que je n’aurais pas faite et je me retrouve à interrompre mon flux de pensée pour corriger une erreur qui n’aurait jamais existé. Alors je sais très bien qu’on peut désactiver l’autosuggestion mais le principe reste le même : au lieu d’utiliser mon cerveau pour me demander comment je ferais et ainsi progresser, je me retrouve à corriger un résultat moyen et générique produit par une machine.
Alors je ne sais pas si d’autres développeurs sont dans le même cas et je vous invite à me le faire savoir en commentaire, mais personnellement, c’est la raison pour laquelle j’ai arrêté d’utiliser Github Copilot. Cet outil, au lieu de m’aider, me ralentit et me distrait. Alors, sans prétention, c’est peut-être parce que je sais généralement où je vais avec mon code.
Il n’en reste pas moins que l'intelligence artificielle peut être magique pour nous donner la réponse directe, si elle est correcte bien évidemment, à un problème de code que l’on ne sait pas résoudre. Dans ces cas-là, l’IA est magique parce qu’elle fait les recherches sur Stackoverflow pour vous. Et c’est là mon deuxième grief actuel.
Si l’on reste sur l’exemple de stackoverlow, on va dire que l’intelligence artificielle va vous sortir une version, adaptée pour votre code, de la solution acceptée sur stackoverlow. Et d'une certaine manière, on va l’avouer, c’est déjà super impressionnant. Sauf que ce qu’il y a de tout aussi intéressant que la solution en elle-même, sur stackoverflow, ce sont les commentaires qu’il accompagne.
Très souvent vous trouvez des réflexions et des avis très intéressants à propos de la réponse qui a été donnée. Une réponse de code s’inscrit très souvent dans un contexte particulier et qu’une réponse ne pourrait pas convenir à un autre contexte par exemple. Le cas le plus courant c’est la génération d’un nombre aléatoire.
En programmation, il y a plein de manières de procéder, mais il faut savoir que certaines méthodes ne produisent pas un nombre qui est réellement aléatoire. . Et en fonction du contexte de votre application cela peut avoir de l’importance.
Pour générer un ID dans une page, la solution plus ou moins aléatoire pourrait convenir, mais pas dans le secteur bancaire. Et cette subtilité de code, de contexte et d’application, ce n’est pas certain qu’une intelligence artificielle arrive à la détecter. À nouveau, il y a des jugements, des analyses et des perceptions qui nous sont propres, à nous les humains et qu’une intelligence artificielle aura toujours du mal à cerner pour être aussi performant que nous.
Au mieux, l’intelligence artificielle pourra toujours nous proposer plusieurs solutions valables, mais cela restera toujours à vous développeurs expérimentés de choisir et d’implémenter la bonne. Évidemment, loin de moi l’idée de dire que les humains n’ont jamais tort, puisque dans cette vidéo, je parle des erreurs trop souvent commises lorsque vous voulez commencer à gagner de l’argent grâce à votre code. Je vous invite à la regarder dès maintenant.
À tout de suite.