Il y a quelques jours, j'ai vu quelqu'un se plaindre dans un groupe technique, disant que maintenant l'IA écrit du code de manière si puissante, avec Copilot et Cursor ouverts, le code coule comme de l'eau du robinet, comment se fait-il qu'il y ait encore des vieux programmeurs en train de feuilleter la table ASCII ? Ce truc n'est-il pas un vestige de l'époque antique ? Le groupe a immédiatement explosé avec une foule de gens, certains acquiesçant, d'autres répondant calmement : « Attends le jour où tu débogueras jusqu'à trois heures du matin, tu comprendras pourquoi. »
Franchement, la table ASCII, ça n'a vraiment pas l'air impressionnant. Une table, 128 caractères, de 0 à 127, chaque nombre correspond à un caractère. Tu tapes un espace c'est 32, tu tapes un saut de ligne c'est 10, le A majuscule c'est 65, le a minuscule c'est 97. Juste ça, même le cours d'informatique à l'école primaire l'a peut-être enseigné. Mais le problème, c'est que quand on passe vraiment au travail, c'est bien plus important qu'on ne le pense.
L'IA écrit du code, c'est vraiment impressionnant, tu lui demandes de générer un algorithme de tri, elle te l'écrit en une seconde, avec des commentaires en plus. Tu lui demandes d'écrire une API REST, elle te rajoute même la gestion des erreurs. Mais l'IA a un défaut, parfois elle « invente ». Surtout quand il s'agit de gérer l'encodage des caractères, elle peut te générer un bout de code qui semble correct, qui s'exécute sans erreur, mais dont le résultat est faux. Par exemple, tu lui demandes de traiter un fichier texte, elle fait correspondre le saut de ligne comme \n, alors qu'en réalité dans le fichier c'est \r\n, ce code tourne parfaitement sous Linux, mais dès qu'il passe sous Windows, c'est le bazar. Que fais-tu alors ? Tu consultes la table ASCII. 13 c'est le retour chariot, 10 c'est le saut de ligne, tu regardes la série 0D 0A dans l'éditeur hexadécimal, et tu comprends immédiatement où est le problème.
Il y a des cas encore plus sournois. Par exemple, tu débogues un vieux système, dans le JSON renvoyé par l'interface il y a un champ, qui semble vide à l'œil nu, mais le programme détermine qu'il n'est pas vide. Tu l'affiches et tu vois qu'il contient un \u00A0, ce truc s'appelle un espace insécable, celui qui correspond à 160 dans la table ASCII. Tu ne peux pas le voir à l'œil nu, mais la logique du code est bloquée par lui. À ce moment-là, tu sors la table ASCII et tu vérifies, ah, 160, pas 32. Tu modifies la condition de jugement, problème résolu. Si tu te fies uniquement à l'IA, elle peut te faire tourner en rond longtemps, et au final c'est encore toi qui dois consulter la table.
Les vieux programmeurs consultent la table ASCII, non pas parce qu'ils ne savent pas utiliser l'IA, mais parce qu'ils savent que certaines choses ne sont pas fiables avec l'IA. L'IA excelle dans la reconnaissance de motifs et la génération de code, mais sa maîtrise des détails de bas niveau est parfois vraiment moins fiable qu'une simple table. La table ASCII c'est comme la table de multiplication du programmeur, ça a l'air simple, mais ça peut sauver la vie au moment critique. Quand tu écriras du code depuis longtemps, tu découvriras que beaucoup de problèmes étranges se ramènent finalement à l'encodage des caractères. Caractères illisibles, troncature, échec de comparaison, regex qui ne correspond pas, dans dix cas sur neuf c'est lié à l'ASCII.
Et puis consulter la table, en soi, ce n'est pas fatigant. Tu ouvres le navigateur, tu cherches « consultation table ASCII », c'est l'affaire d'une seconde. Ou alors tu mémorises simplement quelques-uns des plus courants : 32 espace, 48 à 57 ce sont les chiffres de 0 à 9, 65 à 90 ce sont les majuscules, 97 à 122 ce sont les minuscules. Retiens ça, et quand tu regardes des données hexadécimales, tu auras une base solide. Les vieux programmeurs ne rejettent pas les nouveaux outils, ils savent juste que certaines bases ne doivent pas être perdues. L'IA a beau être puissante, ce n'est qu'un outil, c'est encore l'humain qui prend vraiment les décisions. Si tu ne comprends même pas l'encodage des caractères, oses-tu mettre directement en production le code généré par l'IA ?
Donc ne vous moquez pas des vieux programmeurs qui consultent la table ASCII. Ce qu'ils consultent, ce n'est pas la table, c'est l'expérience, c'est l'assurance. Le jour où tu seras torturé par un \r ou un \u00A0 caché au point de douter de la vie, tu ouvriras toi aussi silencieusement cette table.