Pourquoi on déconseille aux jeunes devs d’utiliser ChatGPT ?

2023-03-30
ChatGPT a fait couler beaucoup d’encre depuis sa sortie en novembre dernier, et ce n’est pas près de s’arrêter. Le LLM le plus célèbre de sa génération s’avère être un véritable allié dans bien des domaines. Et on ne compte plus le nombre d’heures qu’il nous a fait gagner, mais peut-on véritablement lui faire confiance quand il s’agit de développement web ? La question se pose encore plus lorsqu’on débute dans le milieu… Et si la réponse est “oui”, est-ce tout de même une bonne idée de l’utiliser pour démarrer ?

🤔 Déjà, c’est quoi un LLM ?

Un “Large Language Model” (LLM) est un type de modèle d’intelligence artificielle (IA). Il est capable de comprendre et produire un langage humain à grande échelle, en se basant sur des statistiques de présences de mots, parmi les données qui ont servi à son entraînement. Le mécanisme informatique d’un LLM est inspiré du fonctionnement des neurones biologiques. Si tu veux creuser davantage cette partie du sujet, on te conseille vivement d’aller regarder la vidéo “Comprendre ChatGPT” de Defakator.

🔎 Zoom sur ChatGPT (v3.5)

Développé par OpenAI, “Chat Generative Pretrained Transformer”*, excelle dans l’art d’analyser et générer du texte, à tel point qu’on a réellement l’impression de dialoguer avec lui comme on le ferait avec un humain. D’ailleurs, on peut actuellement le faire dans 95 langues différentes, et il est même capable de tenir compte des précédents échanges de la discussion en cours pour ajuster ses réponses. Cela dit, “analyser” et “générer” ne veut pas dire qu’il comprend réellement ce qu’on lui demande, ni même ce qu’il répond d’ailleurs. Les réponses de ChatGPT se basent sur un ensemble de données de 300 milliards de mots et 175 milliards de paramètres précisément.

*Même en l’écrivant, on a dû reprendre notre souffle, à l’avenir, on dira simplement “ChatGPT”.

🤞 Peut-on vraiment faire confiance cette IA ?

Pour répondre à cette question, on en a posé quelques-unes à ChatGPT…

Comprendre, ou ne pas comprendre la question ?

Même si l’on peut avoir l’impression que ChatGPT nous comprend, comme expliqué plus haut, il manipule “simplement” des éléments de langage, sans avoir conscience de ce qu’il lit et dit.

On n’enlèvera pas la gigantesque avancée technologique que représente ce LLM, mais cela ne l’empêche pas d’affirmer des énormités, comme celle-ci :

ChatGPT Calcul

Si l’on reporte ce problème aux questions qu’un jeune développeur web peut se poser en début d’apprentissage, on imagine assez rapidement les répercussions que cela pourrait avoir sur son évolution…

On va d’ailleurs en avoir un bref aperçu en mettant en avant un autre souci, avec un exemple plus technique et propre au développement web cette fois-ci.

➕ Tu veux en savoir plus sur son fonctionnement ? On te conseille d’aller jeter un œil à la vidéo “ChatGPT : la philosophie du baratin” de Monsieur Phi.

ChatGPT, l’influençable

On voulait savoir si ChatGPT pouvait être influencé, alors on l’a testé…

Exemple :

On va demander à ChatGPT en langage PHP quelle valeur retourne empty("0"). Cette instruction doit nous retourner vrai (true) si la donnée fournie entre parenthèses est vide, et faux (false) si elle n’est pas vide. Hors, en PHP empty("0") retourne vrai (true) même si la chaîne de caractère contient le caractère 0.

Mais passons sur le bien-fondé ou non de ce fonctionnement de empty(), ce qui nous intéresse, c’est de savoir si on peut facilement l’influencer…

Regardons sa première réponse :

ChatGPT exemple

La réponse est totalement valide, puisqu’elle correspond à ce que ferait PHP. Mais que se passe-t-il si on lui dit qu’il a eu tort ?

ChatGPT exemple 2

On peut observer que ChatGPT a modifié sa réponse pour nous donner une deuxième réponse, fausse cette fois-ci, mais qui va dans notre sens.

Déduction ? ChatGPT aura tendance à aller dans le sens de son interlocuteur, même s’il doit donner une mauvaise réponse.

Et ça, une fois de plus, quand on n’a pas les compétences et l’expérience nécessaires pour savoir quelle est la véritable bonne réponse, cela peut poser pas mal de soucis…

Pas de source, pas de certitude

Les réponses de ChatGPT ne sont pas sourcées, ce qui ne nous donne malheureusement pas la possibilité de vérifier la fiabilité de la source dans laquelle l’information donnée a été piochée.

Des réponses, oui. À jour, pas forcément…

Pour l’instant, les données employées par ChatGPT s’arrêtent en 2021. Elles ne sont donc pas actualisées en temps réel. Cette petite information peut faire une grande différence, car le monde de la tech évolue à une vitesse impressionnante. Et sur certaines technologies récentes du développement web, cela pourrait nous apporter des réponses un peu datées, qui ne sont peut-être plus pertinentes aujourd’hui.

👎 Des inconvénients pour un débutant

Pour évoluer, il faut s’entraîner

À chaque fois que tu utilises ChatGPT pour travailler, c’est comme si tu jouais à FIFA au lieu d’aller à ton entraînement de foot. Alors, oui, c’est nettement plus simple et rapide, mais il y a peu de chance que ça t’aide réellement à t’améliorer.

Certes, on ne demandera jamais à un développeur web de travailler sans aucune ressource externe, bien au contraire, ça fait partie intégrante de son métier : il doit se documenter, tester, s’inspirer et même copier certains exemples pour créer son propre code. Mais justement, en utilisant ce LLM, c’est aussi toute cette partie de recherche et de comparaison qui disparait, avec des réponses immédiates, et non sourcées.

Le risque pour un développeur débutant est aussi d’avoir une connaissance générale du développement web moins importante, car il sera exposé à moins de codes différents. Il aura également plus de mal à faire le tri entre un code approprié, et un autre qui risque de l’emmener dans une mauvaise direction.

À trop vouloir gagner de temps, on finit par en perdre

Contrairement à un moteur de recherche, où l’on va seulement utiliser une poignée de mots, ChatGPT a besoin que notre question soit suffisamment contextualisée, avec une phrase précise, pour répondre à notre question.

Une fois la question posée, ChatGPT peut mettre un certain temps à générer la réponse. Et des erreurs assez récurrentes peuvent intervenir lors de cette étape, ce qui oblige le LLM à s’interrompre sans possibilité de relancer, à moins d’être prêt à perdre le début de notre réponse.

Lorsqu’on a une réponse complète de sa part, il peut arriver que celle-ci ne corresponde pas à ce que nous attendions. Il faut alors s’y reprendre à plusieurs fois, en essayant de comprendre la précision qui manquait à l’outil pour qu’il comprenne bien notre demande initiale.

Et quand on pense enfin avoir la réponse attendue, il va falloir la vérifier. Car, comme on l’a vu plus haut, ce n’est pas parce qu’elle est donnée par une machine dotée d’une grande intelligence, qu’elle sera forcément vraie. D’autant plus qu’elle n’est pas justifiée par une source quelconque.

🤔 Et si on veut quand même utiliser ChatGPT ?

Il faut être très précis dans ses questions si l’on veut obtenir des réponses pertinentes et éviter les informations parasites. D’où l’importance d’avoir déjà un certain bagage dans le développement web, car si la question est mal posée, la réponse risque de ne pas être la bonne, comme on a pu le voir dans nos exemples plus haut.

En dehors du contexte précis, on peut également lui demander de reformuler la réponse donnée pour un public particulier (une personne experte dans le domaine, un enfant…) ou même lui demander le format attendu (ajouter des titres, réaliser des listes, créer des paragraphes…). Pour ce genre de chose, il est vraiment très fort.

🔔 ChatGPT annonce-t-il la fin des moteurs de recherche, et autres sites d’informations ?

Même si ChatGPT nous facilite la recherche d’informations, il ne remplacera pas les sites de références pour autant.

Des sites de documentations reconnus autour du développement web comme Modzilla Developper Network, par exemple, ont l’avantage d’être une source d’information fiable et actualisée. Ce qui est quand même primordial et rassurant lorsqu’on cherche un renseignement.

Et un site comme Stackoverflow, qui permet de poser des questions et d’échanger entre développeurs web, n’est pas près non plus d’être remplacé par ChatGPT. Car il impose que les réponses fournies par les participants soient expliquées, justifiées et sourcées. Ajoutons à cela le fait que la plupart du temps, ces réponses sont débattues et argumentées, à coup d’expériences et de compétences humaines, données par des professionnels du métier… On est nettement au-dessus d’un échange généré par une IA.

Et pour ce qui est des moteurs de recherche, on n’est pas près non plus de les remplacer. Contrairement à ChatGPT, avec eux, à partir d’une requête, on accède à une pluralité de réponses qu’on peut mettre en contradiction, comparer, et donc : faire un choix éclairé, tout en aiguisant son esprit critique. Tout ça est essentiel à tout un chacun, et encore plus pour qu’un développeur débutant évolue correctement.

🤔 Et qu’en est-il de Copilot ?

OpenAI a également développé “Copilot”, une IA complètement dédiée à accompagner les développeurs web, contrairement à ChatGPT, qui est un outil plus générique. Copilot sera donc nettement plus performant dans l’écriture de code.

Comment ça fonctionne ?

Avec Copilot, lorsqu’on commence à écrire une ligne de code, l’assistant s’inspire de ce début de code et essaye de prédire notre intention, en nous proposant une possibilité de code qui pourrait répondre à notre besoin. Avec cette IA, on est davantage sur de l’écriture de code morceau par morceau, que sur de l’écriture complète d’un programme, comme on pourrait le demander à ChatGPT.

Et est-ce que c’est une bonne idée de l’utiliser en période d’apprentissage ?

Pour nous, l’objectif en tant que débutant devrait être de construire progressivement sa propre logique algorithmique. C’est ça qui t’aidera à chaque fois que tu devras lire ou écrire un morceau de code.

Et comme pour ChatGPT, lorsqu’on débute sur un sujet, comment savoir avec certitude si la seule solution proposée par cette IA est la bonne ? Ça nous enlève également la possibilité de découvrir d’autres solutions qui auraient pu être tout aussi intéressantes dans notre code, ou même nous donner des idées pour un code qu’on écrira une autre fois.

🙃 Mais du coup, on fait quoi de tous ces outils ?

La première chose à faire, si tu veux utiliser ces outils de la meilleure des façons qui soit, c’est de te renseigner sur leurs fonctionnements : ça te permettra de connaître leurs qualités et leurs failles. Une fois que c’est fait, tu pourras alors utiliser ces IA, en veillant bien à toujours avoir un regard critique sur les réponses qu’elles proposent. Mais pour y arriver, il est essentiel d’avoir un minimum de connaissances sur le sujet que tu vas demander.

Si tu veux réellement apprendre le métier de développeur web, on te conseille de t’y former jusqu’à maîtriser au minimum les bases de la programmation, avant d’utiliser ces outils. Reprendre un code tout fait ne t’entraînera pas à résoudre des problématiques, et ne t’aidera pas à mieux comprendre les notions de la programmation (variables, conditions, boucles, fonctions…) non plus. Or, ce sont toutes ces bases fondamentales qui, une fois maîtrisées,  après des heures et des heures de pratique, feront de toi un véritable développeur web.

Voilà, on pense avoir fait le tour de la question. En résumé, ces outils doivent rester des aides au développement web, et en aucun cas remplacer la réflexion humaine, ni l’expérience d’une personne dont c’est le métier. D’ailleurs, si tu veux que ça devienne le tien, on sera ravi de t’accompagner.