Blog de Ludovic Baillet

Astronomie, informatique et science

Copilot-ChatGPT – La bataille perdue ?

ChatGPT 5.1 est sorti en novembre 2025. Il est maintenant utilisé en tant que modèle « Smart » de Copilot sous Windows 11. Beaucoup de voix se sont élevées sur le fait que le modèle serait peu différent des versions précédentes. Alors que les modèles récents de Claude et Gemini seraient largement meilleurs.

Et pendant ce temps, Microsoft se demanderait pourquoi les gens n’utilisent presque pas Copilot. Alors que l’usage de Claude et Gemini progresse quand ChatGPT stagne, voire régresse.

Or, la détestation de Copilot est carrément devenu un mème sur Internet:

Évolution de l'icône de la corbeille sous Windows, Copilot finaliste

Il faut dire que Microsoft met le paquet pour se faire détester : fin de vie anticipée de Windows 10, mises à jour défaillantes en pagaille, publicité à outrance de ses propres produits, « intelligence » artificielle poussée dans tous les recoins et générant des tas de crashs (l’explorateur de fichier est ainsi devenu un monstre de lenteur qui crashe à tout bout de champ).

Alors, le ChatGPT 5.1 de Copilot, vraiment nul ? Plutôt oui. Les bonnes réponses de Copilot sont très rares (du moins en dehors des questions simples).

Prenons le cas du Code Golf en mode débutant et demandons à Copilot comment réduire le code java verbeux de base (mais sans renommer le nom du type, ni utiliser la JEP 512 « Compact Source Files and Instance Main Methods » de java 25 ou autres previews) :

class Solution{public static void main(String[] a){}}

C’est avec un culot et un aplomb jamais vu que Copilot répond :

Copilot (ChatGpt 5.1) raconte n'importe quoi avec aplomb

Voilà : class Solution{publicstaticvoidmain(String[]a){}} au motif que java accepterait publicstaticvoidmain sans espaces avec pour preuve : Les mots-clés sont reconnus sans séparateurs tant qu’ils ne forment pas un identifiant valide.

Heureusement, Copilot mentionne en bas de l’écran et en petits caractères qu’il peut faire des erreurs. Il ne croit pas si bien dire. On se demande plutôt quand est-ce qu’il n’en fait pas ?

Au gré des réponses, Copilot peut tenter une autre approche tout alliant la mauvaise foi, le mensonge et le tout sans savoir compter :

Copilot ne sait pas compter

Voilà, il suffisait d’y penser :

class Solution{public static void main(String…a){}}

Donc produire un code éventuellement plus long et s’arrêter de compter à la longueur voulue. L’alliance du mensonge et de la mauvaise foi.

Même Deepseek se débrouille mieux, c’est pour dire, en répondant instantanément correctement. Et de lui-même il explique comment il est parfois possible de descendre à 48 caractères.

Bien sûr Gemini 3 Pro et Claude Sonnet 4.5 répondent rapidement parfaitement.

Grok répond aussi correctement, mais avec un bon délai de réflexion.

Mistral est du même niveau que Copilot/ChatGPT en alliant lui aussi mensonge et mauvaise foi, mais à la décharge de Mistral, l’entreprise n’est pas valorisée en centaines de milliards de dollars.

Mistral qui allie mensonge et mauvaise foi dans ses réponses

Perplexity est plus honnête : il ne trouve pas la solution, affirme avoir étudié le cas de la variante avec des arguments variables, mais reconnaît que ça prend plus de place.

Bref, la situation de ChatGPT et de Copilot est fort délicate. Si cette IA ne se met pas rapidement au niveau de Claude et Gemini, la prophétie d’une bulle de l’IA pourrait devenir réalité puisque les investissement colossaux pourraient ne jamais être rentabilisés.

Logiciel Éphéméridium, nouvelle version majeure

Le logiciel Éphéméridium est un logiciel de production d’éphémérides astronomiques de haute précision. Jusque là écrit en C++ 98, avec une interface à base de MFC, et une architecture 32 bits, il vient d’être modernisé. La nouvelle version 0.2 est en effet achevée. Le logiciel a été intégralement réécrit en C++ 23 et doté d’une interface moderne de type C++/WinUI 3 et même responsive design. Il cible bien sûr le 64 bits. De plus, il est intégralement compilé en UTF-8 (avec toutefois le cœur de l’interface WinUI qui est en UTF-16, {la vie n’est pas simple}) ce qui représente un saut qualitatif intéressant.

Voici la nouvelle interface, similaire à la version d’origine, mais plus épurée et moderne :

Capture d'écran du logiciel Éphéméridium - Écran général

Et l’incontournable boîte de dialogue À propos de :

Capture d'écran du logiciel Éphéméridium - À propos de.

Cette boîte montre l’usage de caractères unicode. Il faut dire que ça se fait sans difficulté avec cette nouvelle interface C++ / WinUI.

Pour plus de détail sur cette transformation intégrale, consulter la page : nouvelle version 0.2 du logiciel Éphéméridium.

Compétition d’IA en C++

L’intelligence artificielle (IA) se fait toujours plus présente, 3 ans après la révélation ChatGPT 3.5. Les promesses autour de l’IA sont aujourd’hui démesurées. Beaucoup d’articles de presse prédisent la disparition de nombreux emplois grâce à ces IAs magiques. Les investissements dans les IAs sont absolument considérables. On assiste même à une pénurie de composants (mémoire RAM et disques SSD notamment) dont les prix ont flambé du fait des capacités de production acquises pour former à marche forcée et à tout prix les prochaines générations d’IAs.

De mon côté je suis un utilisateur assidu de ces IAs. Car elles ont parfois des facultés extraordinaires. Mais elles sont encore très loin d’être infaillibles. Elles continuent d’affirmer énormément de choses fausses avec un aplomb incroyable. Bref, le remplacement des humains par des IAs ou par des agents n’est certainement pas pour demain (ni après-demain manifestement). Les IAs devraient encore rester pour un bon moment de simples outils au services des humains sachant s’en servir intelligemment.

Pour un logiciel écrit en C++, j’avais besoin d’une fonction permettant de formater un nombre à virgule flottante sous forme de chaîne de caractères dans le style français, c’est-à-dire qui utilise la virgule plutôt que le point et qui sépare les groupes de 3 chiffres par des espaces insécables. J’ai proposé cette tâche à différentes IAs afin de les comparer.

J’ai précisé pour ce défi : je compile avec Visual Studio 2026, en mode C++ 23 dans un projet C++/WinUI et en ayant activé l’option de compilation /utf-8.

Ce dernier point s’avère être un sérieux piège. De plus on pourrait penser à un problème simple. C’est au contraire un problème compliqué. Car la STL ne fournit pas ce genre de fonctionnalité en standard. Par ailleurs la gestion des espaces insécables pose problème avec du code C++ compilé avec l’option /utf-8.

Quelques informations sur les comportements.

Gemini 3 Pro a tenté 3 fois avec du code qui ne compilait pas, puis avec un code qui plantait à l’exécution. Et enfin s’est fait piéger par le coup des espaces insécables et du flag /utf-8.

Mauvais encodage des espaces insécables

Bref, Gemini 3 Pro a réussi au 6e coup, mais au final avec un code élégant.

Claude Sonnet 4.5 a réussi au 2e coup mais avec un code verbeux. Beau joueur, il reconnaît que la solution de Gemini est nettement meilleure.

Copilot a longuement échoué avant de pondre une solution assez verbeuse.

ChatGPT (5.1 ou 5.2) a commencé par échouer comme les autres avec ce problème d’espace insécable en conflit avec le flag /utf-8. Puis a fourni une solution qui ne compilait pas à cause d’un code déprécié depuis C++ 17. Il a finalement réussi au 3e essai. Mais avec un code verbeux.

Deepseek a commencé par échouer comme les autres, puis a proposé du code qui ne compilait pas avant de sombrer et de promettre en permanence que ses nouvelles solutions allaient fonctionner. Au bout du 6e essai, il a rendu les armes. Un vrai naufrage.

Grok (mode automatique) a dû flairer la difficulté mieux que les autres. Il a mis environ 2 minutes avant de répondre. Non seulement il a répondu correctement (et donc du premier coup), mais il a fourni une réponse bien plus correcte que les autres. Voici sa propre explication claire et nette :

Le fait que je sois le premier à avoir correctement géré les groupes de 3 après la virgule, c’est précisément parce que j’ai bien lu ta contrainte typographique française : en France, on regroupe par trois des deux côtés de la virgule, avec des espaces insécables. La plupart des IA (même les bonnes) se contentent de gérer l’entier et oublient la partie décimale, ou font l’inverse (groupes à gauche seulement).

Donc Grok est bien la surprise.

J’ai redemandé aux IAs (sauf Deepseek) une version respectant toutes les contraintes et ont réussi rapidement.

Au final le code de Gemini apparaît concis et limpide. Contrairement à tous les autres. Grok, lui-aussi beau joueur, reconnaît que Gemini mérite pour ça une première place ex æquo ou très légère avance.

Voici donc le classement:

1/🥇 Gemini (solution claire, efficace, mais laborieux)
1/🥇 Grok (fonctionnel du premier coup, mais solution ultra verbeuse)
3/🥉 Claude (plusieurs itérations nécessaires)
4/🏅 Copilot & ChatGPT (nombreuses itérations nécessaires)
5/💥 Deepseek (naufrage et abandon)

Résultat de la compétition entre IAs
Image générée par Nano Banana

Nouveau logiciel : Astrosynium

Je présentais jusque là 2 logiciels d’astronomie : Héclium (un simulateur d’éclipses solaire) et Éphéméridium (un logiciel produisant des éphémérides astronomiques de haute précision).

Voici mon 3e logiciel d’astronomie : Astrosynium. C’est un planétarium ou logiciel de cartographie stellaire.

Logiciel Astrosynium - interface principale

Intégralement écrit en C++ 23 pour des performances optimales, il est doté d’une interface moderne grâce au framework C++/WinUI et possède une performance de dessin élevée grâce à l’utilisation de Direct2D.

Voici un exemple montrant l’interface moderne du logiciel :

Logiciel Astrosynium - Boîte de dialogue 'à propos'

Prochaine étape : créer un ambitieux catalogue unifié d’étoiles à partir des catalogues les plus récents (BSC, Hipparcos, Tycho et Gaia). Ce travail est dévolu à de petits programmes en C# et C++.

L’advent of code 2025 est déjà terminé

Le traditionnel Advent of Code se termine déjà en ce 12 décembre 2025.

Advent of code 2025 complété

Mais on aura quand même eu droit à des exercices intéressants par exemple celui sur les tachyons ou celui concernant la recherche conditionnelle dans l’exploration de graphes basés sur des dictionnaires.

Fuite de mémoire cachée

Votre PC qui marchait très bien jusque là vient de passer sa limite de garantie et se met tout à coup à ramer ?

Vous regardez alors le gestionnaire de tâches et vous voyez qu’effectivement la mémoire est saturée, il y a énormément d’applications actives, mais aucune ne semble vraiment fautive. Et donc impossible de comprendre le problème.

Il est temps d’utiliser un outil plus efficace : process explorer. Voici ce que ça donne sur un cas récent :

Fuite de mémoire dans un service de Dell (ServiceHell.exe)

ServiceShell.exe est un service créé par l’entreprise Dell. Il est utilisé pour les mises à jour automatiques, les diagnostics et le dépannage des ordinateurs Dell. Mais il est surtout connu sur Internet pour ses fuites de mémoire.

Ici, la particularité est que l’on ne peut pas diagnostiquer cette fuite de mémoire avec le gestionnaire de tâches de Windows. Dans mon exemple, on ne voit la fuite de 37 Go qu’en utilisant le process explorer.

On pourrait donc blâmer Windows qui a un gestionnaire de tâches incomplet. Mais au moins il existe des outils permettant de détecter quels logiciels font n’importe quoi.

Après m’être occupé de ce ServiceShell, mon PC a retrouvé sa performance d’origine.

Situation des IAs génératives

13 mois après mon article Les erreurs de ChatGPT et autres IAs il est temps de faire un point sur la situation car dans le domaine des Intelligences Artificielles génératives, car ça bouge vite.

D’abord je vais donner ma propre classification sur les IAs :

1/ Gemini 2.5 Pro
2/ Claude 4.5
3/ ChatGPT 5

Derrière, DeepSeek, Grok et même Perplexity (notamment pour le navigateur Comet) ne sont pas inintéressants.

Il est hélas encore commun de devoir reprendre une IAs sur des fautes basiques. Y compris pour Gemini. Exemple quand il n’arrive pas à compter jusque 7 :

Gemini pris en faute

Et ça arrive régulièrement, ici pour un minuscule test permettant de séparer 2 groupes de nombres composés de moins de 10 éléments :

Gemini encore en faute

On peut aussi noter le fort caractère de Gemini qui a tendance à ne rien lâcher même devant un monceau d’arguments en sa défaveur. Ce comportement est assez loin de la flagornerie que l’on retrouve chez d’autres IAs :

Le caractère trempé de Gemini

Malgré tout, que des IAs commettent des erreurs, après tout, ce n’est pas si éloigné du comportement humain.

Le plus intéressant, c’est qu’il me semble que la nouvelle génération commette moins d’erreurs. Tout en étant capable de véritables prouesses dans un grand nombre de domaines. Par exemple, à partir d’une longue description, Claude est parfaitement capable de créer un outil de visualisation ou d’édition d’environ 800 lignes de HTML/CSS/javascript en moins de 20 secondes. Et ça fonctionne du premier coup, ou avec des retouches mineures au 2e/3e coup. C’est vraiment remarquable. Pour des problèmes très complexes, Gemini est souvent d’un grand secours.

Alors, l’humain a t-il perdu la bataille contre la machine ? Revivons-nous une nouvelle histoire comme celle de John Henry ? Est-il futile pour les humains de continuer à programmer ou faut-il laisser les claviers aux IAs ?

La réponse est clairement NON pour le moment. En fait les IAs sont déjà devenues de vrais assistants dans l’industrie logicielle pour améliorer la productivité. Comme je l’ai mentionné avant, coder une interface de quelques centaines de lignes est devenu trivial pour IA. Tout comme créer ou compléter des tests unitaires, aider à la transformation logicielle, etc.

Mais il reste encore des secteurs réservés aux humains : ceux de la pure créativité. En compétition de programmation, les humains restent encore devant, que ce soit sur des exercices d’optimisation ou encore par exemple de Code Golf.

De l’utilité des IAs génératives dans l’optimisation de la performance logicielle

Il faut bien l’admettre, mais l’optimisation des performances logicielles est bien souvent ignorée. De nos jours, cette activité est souvent peu pratiquée, sacrifiée sur l’autel de la simple mise en ligne de nouvelles fonctionnalités à toute allure. Pendant ce temps, les logiciels, en majeure partie peu performants, brassent les octets des processeurs. La faute à des développeurs peu formés, connaissant peu les algorithmes essentiels, les structures de données principales et leur performance, mais aussi à des langages parfois très peu adaptés, et bien sûr le manque de volonté ou même de besoin. Dans un monde qui s’agite – à juste titre – autour de la durabilité, on ne peut qu’être surpris de la situation en cours.

Mais la situation pourrait changer. Les IAs pourraient sérieusement aider à améliorer la situation, selon plusieurs axes d’ailleurs. Certaines des IAs actuelles les plus performantes (Claude 4 ou Google Gemini 2.5 Pro) sont maintenant capables d’être interrogées sur des morceaux de code de plusieurs centaines de ligne, de comprendre leur fonctionnement (et donc de commenter ligne par ligne ce qui est fait) et de proposer des changements parfois pertinents.

Ces mêmes IAs interrogées alors sur la façon d’améliorer les performances vont bien sûr commencer par suggérer de profiler l’application. C’est évidemment la première chose à faire. On peut pas travailler à améliorer des performances sans mesure précise permettant de savoir où focaliser les efforts. Ensuite, les IAs sont capables de faire des propositions, plus ou moins pertinentes et intéressantes, mais le plus souvent à creuser. Leur utilité est donc non négligeable.

Enfin, là où les IAs peuvent se montrer remarquables, c’est dans la phase finale d’optimisation, lorsque tout a été tenté avec un langage taillé pour les performances (tel que C++, C ou Rust) : l’utilisation des intrinsics est souvent le dernier recours, et avec des gains parfois énormes. Les processeurs modernes sont bourrés des ces instructions (voir le cas d’Intel ou d’AMD) que les compilateurs essaient d’utiliser du mieux qu’ils peuvent. Certaines IAs se débrouillent avec une facilité remarquable pour transformer un code classiques et code vectorisé avec ces instructions très peu connues. Y compris savoir jongler avec les processeurs supportant ou non certains groupes de ces instructions (très utile notamment avec les processeurs Intel qui ont abandonné le support de l’AVX-512).

Transformation de code par une IA avec des instructions de type AVX-512
Transformation de code par une IA avec des instructions de type AVX-512

L’utilisation toujours croissante des IAs dans le secteur du logiciel est donc un bienfait au service des logiciels mieux relus, mieux optimisés et plus sobres.

La programmation informatique dans la série Rematch

La série Rematch diffusée notamment sur Arte revisite les combats entre l’ancien champion du monde des échecs Garry Kasparov contre les ordinateurs d’IBM Deep Blue puis Deeper Blue. Cette série sympathique montre la tension lors des matchs d’échecs. Elle cherche aussi à montrer l’enjeu du combat entre l’homme et la machine, le tout dans un contexte où les intelligences artificielles génératives efficaces viennent d’apparaître largement il y a à peine 2 ans.

Si le scénario est plutôt acceptable, l’image est travaillée et les acteurs jouent bien. En revanche, côté informatique, notamment côté programmation, il y a – comme d’habitude au cinéma / à la télé – beaucoup à dire.

En effet, l’écran de contrôle de Deep Blue est divisé en 3 zones. La partie gauche montre l’échiquier en cours, la partie supérieure droite affiche la liste des coups des deux camps. Enfin, la partie inférieure droite est animée. Dans la phase de réflexion, on voit tout un texte défiler et qui s’arrête lorsque Deep Blue a choisi con coup.

L'écran de Deep Blue par la série Rematch

Ce texte mystérieux qui défile est manifestement du code C++. On voit sur cette capture d’écran notamment une déclaration de la méthode static bool add_pawn_moves(list_t * list, const board_t * board, int to, bool legal, bool stop)

On retrouve le code associé par exemple sur https://fossies.org/linux/gnuchess/src/engine/move_evasion.cpp (voir la ligne 164). Ce code correspond au code source du programme de jeu d’échecs appelé GnuChess.

Bien sûr, faire défiler un code informatique sur cet écran de contrôle est aussi aberrant qu’inutile. Et ce, même si ce code correspond à un programme de jeu d’échecs. Ce programme GnuChess est gratifié d’un score ELO de 2661 en 2023, ce qui est bien sûr un très bon score, mais loin derrière Kasparov avec ses 2800 points ELO et quelques. Ce n’est certainement pas Kasparov qui aurait pu être inquiété par Gnuchess il y a 25 ans.

De nos jours le programme d’échecs ayant le score ELO le plus élevé de nos jours est Stockfish. Son score ELO estimé étant de 3640. Même si les scores ne sont pas directement comparables, Stockfish est tout de même capable de battre largement n’importe quel humain. Sur ce point, le match est plié.

Tous les programmes de jeu d’échecs actuels sont basés sur de l’algorithmique qui a fait ses preuves. À savoir, des opérations de bitboard pour calculer rapidement l’état du jeu après un coup, des tables de transposition pour éviter d’avoir à calculer des coups similaires, des algorithmes de recherche tels que le MiniMax, la recherche arborescente de Monte Carlo, etc. Et parfois même de la véritable intelligence artificielle afin d’évaluer l’état d’un plateau. Hélas, tous ces aspects n’apparaissent pas la série Rematch. On a plutôt droit à un mystérieux programme qui se modifierait lui-même.

On pourrait aussi parler des écrans d’ordinateur qui fluctuent entre écrans cathodiques et écrans plats alors qu’aussi bien en 1996 qu’en 1997, les écrans plats étaient plutôt inexistants.

On pourrait aussi évoquer la présence inappropriée à l’écran de code javascript et d’erreur de compilation C++. Mais c’est une autre histoire.

Les erreurs de ChatGPT et autres IAs

Une majorité d’articles (de blogues, de presse, de médias) traitant des GPTs actuels choisit son camp : les GPTs sont nuls ou les GPTs sont très bons, s’améliorent très vite et vont prendre tous les emplois. La vérité est probablement entre les deux.

Car les GPTs se montrent actuellement plutôt très performants pour produire des exemples de code source de langages populaires (python, C++, C#, java, etc.) ou même compléter/adapter/corriger du code source pas trop long.

Néanmoins, on retrouve souvent dans ces articles un phénomène nommé hallucination, terme utilisé quand une IA affirme quelque chose de manifestement faux, et avec beaucoup d’aplomb. Ce phénomène est également lié au erreurs de raisonnement, notamment dans le domaine des mathématiques. Ces erreurs sont particulièrement graves. En voici un exemple :

Erreur de raisonnement de ChatGPT

Ainsi, dans un contexte pas spécialement compliqué, ChatGPT est capable d’affirmer que 0 moins 1 vaut 26. Même en reprenant ChatGPT, les discussions suivantes étaient du même tonneau, à savoir une succession d’erreurs manifestes.

Ici j’étais dans un contexte où je demandais à des IAs (Claude, ChatGPT et Gemini) à faire du code golf sur des cas très simples et pour des langages très populaires (C++, Java, C#). Toutes ces IAs ont beaucoup de difficulté avec le code golf. Elles commettent beaucoup d’erreurs de raisonnement, appliquent des méthodes qui ne fonctionnent pas forcément, et en gros, hallucinent. Par exemple en affirmant qu’elles ont réduit la taille de n caractères quand bien même la taille a plutôt augmenté. Je peux quand même classer les 3 IAs précédente dans l’ordre du meilleur au pire : Claude (3.5 Sonnet), ChatGPT (4) et Gemini.

Le code golf n’est pas qu’une question de technique et de connaissance, c’est aussi une affaire de créativité. Une qualité peu présente avec les GPTs actuels, même si parfois j’ai le sentiment que certaines réponses donnent véritablement l’impression d’une étincelle de créativité (notamment avec Claude).

Finalement le code golf peut être utilisé pour évaluer les avancées des IAs. Avec l’arrivée de nouveaux modèle capables de raisonnements, nous pourrons voir si les domaines encore réservés des humains résistent toujours.

Page 1 of 5

Fièrement propulsé par WordPress & Thème par Anders Norén