Alors, comment cela s’est-il passé ? Premièrement, il faut savoir que je n’utilise que la version gratuite de ChatGPT. Là n’est pas le problème, mais tout se faisait en texte et avec des copier-coller. ChatGPT me générait du code, je le copiais-collais dans mon éditeur et je faisais les tests.
D’ailleurs, au début, je lui demandais toujours de refaire le code complet, tout le plugin. À chaque fois, il me mettait ce qu’il avait compris, le code et des explications.
Étant dans le monde informatique, j’entends beaucoup parler de ChatGPT, Copilot, etc. Ces grosses machines vont-elles bientôt remplacer les programmeurs ? Mais est-ce vrai ?
Bien sûr, comme tout le monde, j’utilise des IA aujourd’hui, principalement sans le savoir (tous les algorithmes de YouTube sont remplis d’IA), mais aussi en toute conscience lorsque je veux faire corriger mes textes (je suis nul en orthographe) ou créer des images d’illustration (comme celle de ce blog). Et oui, c’est impressionnant, mais cela ne me dit pas à quel point, car je suis un piètre dessinateur, et l’orthographe est un test assez limité, vu que des programmes y arrivent tout aussi facilement (comme Antidote, par exemple).
Alors, comment tester ? Eh bien… le japonais. Alors, pas le japonais japonais, mais le japonais. Je m’explique. J’apprends le japonais (du moins, j’essaie), et comme beaucoup, je cherche plein de façons qui m’évitent de mettre mon cul sur ma chaise et d’étudier (d’où mon faible niveau). Et en discutant avec quelqu’un, on parlait justement de méthodes d’apprentissage et d’outils internet. C’est là qu’est arrivé Duolingo (vous savez, l’application de langue qui, après 6 mois, vous aura appris à dire « pizza » en italien). Comme je connaissais très peu, je me demandais si c’était une bonne application. Et on m’a répondu : « Écoute, c’est simple, essaie avec le français, tu verras si c’est bon ou non. »
Et il a raison. Si on veut tester la qualité/performance de quelque chose, il n’y a pas 36 solutions : il faut un minimum s’y connaître. C’est seulement par comparaison qu’on pourra savoir. Si je m’y connais dans un domaine et que l’IA me dépasse dans ce domaine, alors effectivement, elle est de qualité. Si elle ne me dépasse pas, alors elle est seulement prometteuse. Et c’est pour cela que certains trouvent des trucs ultra avancés et de qualité, alors que moi, bof bof (qui a dit Apple de merde…).
Et donc la question est : qu’est-ce que je connais ? Dans quel domaine je me sens à l’aise pour juger ChatGPT ? Eh bien, je connais l’informatique. J’en ai fait mes études (spécialisation algos, refacto, etc.), j’ai été assistant (et donc j’ai fait des questions d’examen, fait passer des oraux), et aujourd’hui encore, bien que je code moins (quelques scripts), je travaille toujours dans l’informatique et je suis au courant des dernières mises à jour des langages les plus importants (à peu près).
Donc, est-ce que oui ou non ChatGPT est bon dans le code, me permettra de savoir ce que ça vaut.
Le projet.
Alors, c’est bien de lui demander de coder, mais coder quoi ? Il se trouve qu’il y a quelque temps, je cherchais un logiciel de base de connaissances et j’avais repassé en revue pas mal de logiciels (pour en arriver à la conclusion que bof, mais là n’est pas la question). Il se trouve qu’il y en avait un qui, bien que présentant beaucoup de défauts, avait l’avantage d’être grandement amélioré par des plugins (ce qui en fait une force et une faiblesse, autre sujet). Ce logiciel, c’est Obsidian.md. Et fun fact, il se trouve que ChatGPT connaît les API de programmation.
Alors, ne me fais pas dire ce que je n’ai pas dit : Obsidian est aujourd’hui beaucoup trop incomplet pour être utilisé, même comme bible d’écriture (l’endroit où tu mets tout sur tes persos, etc.), mais il n’en est pas loin. Et lorsque je l’utilisais pour le tester, vraiment, avec quelques bons plugins et quelques bons changements, cela passerait crème (dont l’amélioration de ces putains de tableaux de merde…).
Et donc, le projet a été de demander à ChatGPT de créer un plugin Obsidian. Le plugin (le premier) a pour fonctionnalité de filtrer en temps réel les fichiers du vault basés sur les propriétés/valeurs.
Pour ceux qui ne savent pas, dans Obsidian, il y a des métadonnées (qui ne sont pas, mais alors pas du tout exploitées, mais de nouveau, là n’est pas la question). Ce sont des clés/valeurs (genre type:homme) dans un format qu’on peut exploiter. Et donc, quand vous avez une grande liste de fichiers avec plein de trucs dedans, c’est un peu embêtant de rechercher ce qu’on veut à la main. Je préférerais avoir une liste de tout ce qui existe et choisir.
Et donc voilà le but : demander à l’IA ce qu’elle peut faire avec le moins d’aide possible de ma part.
Alors, comment cela s’est passé ? Premièrement, il faut savoir que je n’utilise que la version gratuite de ChatGPT. La n’est pas le problème, mais tout se faisait en texte et avec des copier-coller. ChatGPT me génerait du code, je le copiais-collais dans mon éditeur et je faisais les tests.
D’ailleurs, au début, je lui demandais toujours de refaire le code complet, de tout le plugin. A chaque fois, il me mettait ce qu’il avait compris, le code et des explications.

Cette méthode a fonctionné jusqu’à ce que je tombe sur… des bugs qu’il ne savait pas résoudre (il me mettait toujours la même solution incorrecte). Et donc, je devais faire des changements dans le code moi-même, ce qui faisait que son référentiel n’était plus en accord. Là, pas le choix, je lui donnais du code (une fonction) et je lui demandais de l’améliorer pour qu’elle fasse cela ou cela (par exemple, la fonction truc renvoie des entiers, comment faire pour qu’elle renvoie uniquement des entiers pairs, etc…).
Mais bon, il ne faut pas en tenir rigueur. Si on travaillait sur le même fichier, cela serait différent (si ChatGPT avait accès à mon PC, etc…).
Et donc, cela vaut quoi ?
Après quelques jours, je suis arrivé à un résultat correct qu’on peut retrouver ici. Sinon pour le travail, eh ben… c’est nuancé. Oui, c’est très impressionnant… au début mais après…pffff. Il faut dire qu’il est très doué pour concevoir l’architecture du code, savoir quelles méthodes appeler, comment créer le plugin, comment interagir avec les interfaces. Bordel, que c’est bien fait. Car bien que je connaisse la programmation JavaScript (ici, c’est du TS, mais c’est pareil), les API d’Obsidian, pas vraiment. Et ce n’est pas la documentation « bof bof » (bon, au moins, il y en a une, c’est déjà ça) qui aide.
Mais dès qu’il faut programmer, faire du code, c’est déjà un peu moins drôle. D’abord, il y a parfois des bugs d’interprétation (manque une variable non déclarée, etc.). Mais ça, il les trouve assez vite. Par contre, les bugs logiques, j’en ai eu plusieurs et pas moyen de lui faire comprendre. En fait, il n’y a pas le choix, il faut aller soi-même dans le code et trouver l’erreur. Heureusement, il nous dit toujours qu’on a raison :-D.

Puis, il y a les erreurs de débutant. Alors, c’est un peu compliqué, mais à un moment, je déboguais et je me rendais compte que j’avais un comportement disparate en fonction de l’état du plugin. En clair, le plugin ne réagissait pas de la même façon juste après avoir été activé ou après 2 minutes d’utilisation. Et ça, c’est un problème de duplication de code.
ChatGPT avait écrit deux fois le même code : une fois pour quand le plugin s’active et une fois pour après. Et cela venait d’où ? Simplement de la méthode. Comme je lui disais à chaque itération de rajouter une fonctionnalité (rajoute un bouton là, puis rajoute un champ ici, etc.), je ne m’étais pas rendu compte qu’il ne révisait jamais le code en entier, mais rajoutait sans se poser de questions.
Alors sur un code de 250 lignes, ca va, pas trop grave, mais sur un programme de millions de lignes de code, ca peut être plus problématique. Surtout que c’est un cas d’école.
Mais bref, à la fin je suis arrivé à un truc pas trop merdique, retrouvable ici.
Conclusion
Il m’aura fallu à peu près 5 jours de travail pour faire ce plugin complètement en partant de rien (pas même les connaissances Obsidian). Est-ce que j’aurais pris plus de temps sans lui ? Oh oui. J’aurais même dû aller sur Internet demander (Discord, etc.). Par contre, avec le recul, 5 jours, c’est énorme. Je m’attendais vraiment à en prendre moins. Le truc, c’est que le temps que j’ai gagné à ne pas chercher des solutions sur Internet, je l’ai perdu à lui expliquer ce que je voulais. Et c’est là le problème. Il ne comprend rien. Si jamais je voulais faire un autre plugin, cela me prendrait autant de temps car son incompréhension est incompressible.
Le job de programmeur, on va pas se le cacher, c’est une grosse partie du temps à faire des copiers-collers de solutions trouvées sur Internet. Il y a un bug, je vais sur Internet chercher si quelqu’un n’a pas eu la même chose et… je copy-colle. C’est classique, tout le monde le fait. Et je pense que c’est ça que remplace ChatGPT. En fait, ChatGPT, c’est d’abord un générateur de doc à mes yeux. Mais lui demander des lignes et des lignes de code propres, compilables directement, j’y crois pas… encore.
De plus, la relation (je dois lui dire ce qu’il doit faire, il doit la comprendre, il l’a fait, je vérifie, etc…) m’a tout simplement fait penser à un… indien (déso, mais c’est vrai).
En informatique, les boites ont délocalisé les dvlp en inde. Pourquoi ? ben parce qu’ils sont meileurs que l’ensemble de l’humanité en informatique. parce qu’ils sont moins chers.
Et ne me fait pas dire ce que je n’ai pas dit, il existe de très bons programmeurs en inde, mais ils sont plus chers. Et je vous jure que quand vous devez, à chaque meeting réexpliquer 20 fois ce que vous voulez à une bande de décérébrés qui ne comprennent pas des choses simples en informatique (comme ne pas savoir ce que c’est qu’une classe, pour l’avoir vécu), d’écrire des specs qui sont tellement précises que j’aurais plus vite fait de le coder moi-même, ca m’a fait penser à ChatGPT.
Mais bref, je ne pense pas que GPT va remplacer les développeurs. Je ne crois même pas qu’il va créer des programmes tout seul. Par contre, comme outil, comme aide à la programmation pour se souvenir de ce que fait ce code ou cette fonction, ça oui. C’est un peu comme la mode du nocode, celle qui prétendait qu’il était possible de faire des programmes sans savoir programmer. Qui a le plus utilisé cela ? Les développeurs :-D.
Alors après, ce qui est vrai pour l’informatique n’est pas forcément vrai pour le reste. En informatique, une erreur et c’est le plantage de l’application. Il n’y a pas beaucoup de domaines où c’est comme ça. Par exemple, si je me souviens bien, Amazon avait essayé de faire des sous-titres automatiques. Ça a été très mauvais. Et donc, la question est : est-ce que les gens s’attendent à de la qualité ? Quand je vois certaines personnes qui regardent sur leurs GSM des films enregistrés dans un cinéma avec un GSM, pas sûr que tous les domaines soient aussi tolérants que l’informatique.
Après, je connais des traductrices Japonais->français (de manga) qui ne sont pas inquiètes, donc…









