La lisibilité du code / Code readability

Depuis le tournant des années 2020, un consensus institutionnel s’est formé autour de la nécessité d’une alphabétisation à l’intelligence artificielle. L’UNESCO, dans son Guidance for Generative AI in Education and Research (2023), le Conseil de l’Europe dans Artificial Intelligence and Education: A Critical View (2022), l’OCDE dans ses rapports sur les compétences numériques : tous convergent vers l’idée que les citoyens doivent acquérir une compréhension minimale des systèmes algorithmiques pour exercer leur autonomie démocratique. Ben Williamson, chercheur à l’Université d’Édimbourg, observe dans ses travaux sur le blog Code Acts in Education (2025) comment cette injonction à l’AI literacy s’articule avec des dispositifs gouvernementaux visant à produire des sujets « compétents » face aux technologies.

L’analogie avec l’alphabétisation classique structure ce discours. De même que l’apprentissage de la lecture et de l’écriture alphabétiques a été la condition de la citoyenneté moderne, de même l’apprentissage du fonctionnement des systèmes algorithmiques serait la condition de la citoyenneté numérique. Bernard Stiegler insistait sur ce point dans ses travaux sur le numérique : « S’il faut encore apprendre à lire et à compter, c’est parce que l’esprit libre et capable de penser est structuré par l’intériorisation de l’histoire de ses techniques intellectuelles. » Pour Stiegler, apprendre à coder, à lire le code, constituait une nécessité politique, une manière de ne pas abandonner nos facultés cognitives aux automatismes des machines, de conserver une capacité d’individuation face aux processus d’extériorisation technique. Le numérique, comme tout pharmakon, peut être poison ou remède : seule une thérapeutique appropriée, passant par l’intériorisation des techniques, permettrait de le transformer en outil d’émancipation plutôt qu’en vecteur d’asservissement.

Cette position, défendue avec constance jusqu’à la mort du philosophe en 2020, reposait sur une prémisse tacite : que le code informatique appartient au même régime d’intelligibilité que l’écriture alphabétique. Les symboles du code seraient porteurs de signification, déchiffrables par un lecteur compétent, et leur compréhension ouvrirait l’accès aux processus computationnels qui façonnent nos existences. L’espace politique de la citoyenneté s’était constitué par la généralisation de l’alphabétisation, l’isonomie supposant l’égalité devant l’accès à la mémoire écrite. De même, l’espace politique contemporain se constituerait par la généralisation de la littératie numérique.

Ce texte propose de mettre à l’épreuve cette analogie en examinant un phénomène récent qui la déstabilise profondément : l’émergence de pratiques de programmation où la lecture du code devient superflue, puis l’avènement de systèmes d’IA dont les représentations internes résistent structurellement, et non plus seulement temporairement, à l’interprétation humaine. Non pour conclure à l’inutilité de toute éducation technique, mais pour comprendre ce que signifierait une politique qui ne reposerait plus sur l’idéal de la signification transparente.

Anatomie du vibe coding

Le 2 février 2025, Andrej Karpathy, ancien directeur de l’IA chez Tesla, chercheur fondateur d’OpenAI, figure centrale de l’apprentissage profond, publie sur X (anciennement Twitter) un message qui sera vu plus de 4,5 millions de fois :

« There’s a new kind of coding I call ‘vibe coding’, where you fully give in to the vibes, embrace exponentials, and forget that the code even exists. […] I ask for the dumbest things like ‘decrease the padding on the sidebar by half’ because I’m too lazy to find it. I ‘Accept All’ always, I don’t read the diffs anymore. »

Karpathy ne décrit pas une pratique de débutant découvrant la programmation assistée par IA. Il décrit sa propre pratique, celle d’un expert mondialement reconnu qui a choisi d’abandonner la lecture du code qu’il fait générer. Le terme « vibe », cette atmosphère intuitive, ce ressenti diffus, signale précisément que le rapport au code a basculé de la compréhension analytique vers une appréhension esthétique, une évaluation globale du résultat sans examen des moyens.

Simon Willison, développeur et commentateur influent, précisera quelques semaines plus tard la spécificité du vibe coding par rapport à d’autres formes de programmation assistée par IA : « The key distinction is the deliberate abdication of understanding. Vibe coding means accepting code that works without caring why it works. » L’abdication délibérée de la compréhension : la formule est capitale. Il ne s’agit pas d’une incapacité temporaire que l’effort ou la formation pourrait combler, mais d’un choix stratégique. Le programmeur pourrait lire et comprendre le code généré, le code reste du code, écrit dans un langage formel avec une syntaxe et une sémantique définies. Mais il choisit de ne pas le faire, parce que cette lecture est devenue superflue pour atteindre ses objectifs.

Ce phénomène doit être situé dans une histoire plus longue de la valeur économique attribuée à la capacité de lire et d’écrire du code. Dans les années 1990-2000, au plus fort de la bulle dot-com, les programmeurs constituaient une ressource rare et recherchée. Le Bureau of Labor Statistics américain indiquait en 2000 un salaire médian de départ autour de 40 800 dollars pour les développeurs juniors, avec des progressions rapides pour les profils expérimentés. Après le crash du Nasdaq en mars 2000, une chute de 76,81 % qui effaça 400 000 emplois dans le secteur technologique américain,, un paradoxe émergea : malgré la contraction de l’emploi de 17 %, les salaires des programmeurs restants augmentèrent de 36 %. Une étude du CEPR (VoxEU, 2023) sur les trajectoires de carrière de la « génération dot-com » montre que ceux qui avaient investi dans des compétences de programmation durant le boom subirent une dépréciation de leur capital humain de 7 % par rapport à ceux qui avaient diversifié leurs compétences.

Le vibe coding représente l’aboutissement ironique de cette histoire. La valeur économique était attachée à une compétence rare, la capacité de traduire des intentions humaines en instructions exécutables par une machine. L’IA générative rend cette traduction automatique, et donc la compétence correspondante potentiellement obsolète. Le programmeur expert qui pratique le vibe coding ne renonce pas à programmer, il renonce à lire ce qu’il programme. La délégation porte sur la lecture, non sur l’écriture : celle-ci se transforme en prompt, instruction en langage naturel qui déclenche la génération automatique du code.

Mais, et c’est ici le point décisif, le code généré reste parfaitement lisible. Un autre programmeur, ou le même programmeur dans un autre contexte, pourrait examiner chaque ligne, tracer chaque fonction, comprendre chaque algorithme. Le code appartient toujours au régime de la signification : chaque symbole a une dénotation, chaque instruction a un effet calculable, chaque programme a une logique reconstructible. Ce qui a changé, ce n’est pas la lisibilité intrinsèque du code, c’est la nécessité pratique de le lire. La délégation n’atteint pas l’être du code mais le rapport que nous entretenons avec lui.

Au-delà du régime de la signification

Avec l’espace latent des réseaux de neurones profonds, nous entrons dans un tout autre régime. Non plus la délégation d’une lecture possible mais non nécessaire, la confrontation avec des représentations qui résistent structurellement à la lecture, qui n’appartiennent pas au même ordre que le code symbolique.

Qu’est-ce qu’un espace latent ? Techniquement, il s’agit d’une représentation mathématique intermédiaire, située entre les couches d’entrée et de sortie d’un réseau de neurones, où les données sont encodées sous forme de vecteurs statistiques dans un espace de haute dimensionnalité, des centaines, des milliers, parfois des millions de dimensions. Contrairement aux espaces de représentation traditionnels (pixels pour une image, échantillons pour un son), l’espace latent n’organise pas les données selon des propriétés sensibles immédiatement intelligibles, mais selon des proximités statistiques qui émergent du processus d’apprentissage lui-même.

Le vecteur, objet mathématique défini par une magnitude et une direction, devient l’opérateur primordial de cet espace. Mais il est vide de sens en lui-même. Il est composé de deux points, d’une ligne dont la tension est la longueur et d’une flèche comme direction : pure géométrie sans sémantique a priori. Lorsqu’on encode le mot « chat » comme vecteur [0,2, -0,8, 1,5, 0,1], chaque dimension ne renvoie à aucune propriété isolable de la félinité. Ce n’est que la position relative des vecteurs dans cet espace qui produit des effets de sens, le célèbre exemple « roi — homme + femme ≈ reine » illustrant une régularité géométrique qui mime une relation sémantique sans la signifier au sens propre.

Cette distinction est capitale. Le code informatique classique fonctionne par inscription : chaque instruction est un signe qui dénote une opération, et la composition des instructions produit un programme dont la signification est la composition des significations de ses parties. L’espace latent fonctionne par induction statistique : les vecteurs n’ont pas de signification atomique, ils acquièrent leurs propriétés relationnellement, par leur position dans une topologie de similarités apprises. Nous passons d’une logique hypothético-déductive, où les règles sont posées puis appliquées, à une logique inductive où les régularités émergent de l’accumulation massive de données sans idéation préalable.

Un aspect crucial réside dans la continuité de cet espace : entre deux points quelconques existe un continuum de points intermédiaires qui, lorsqu’ils sont décodés, produisent des variations graduelles et cohérentes. Entre un visage souriant et un visage sérieux, une infinité de visages intermédiaires ; entre un chat et un chien, des créatures hybrides jamais vues mais reconnaissables. Cette continuité permet ce que l’on peut nommer une fluxation, un mouvement où la forme reste reconnaissable tout en subissant des transformations internes constantes. Le code, lui, est discret : il y a les instructions valides et les erreurs de syntaxe, sans zone intermédiaire.

L’hypothèse de superposition opaque

Pourquoi l’espace latent résiste-t-il à l’interprétation ? La réponse la plus courante invoque la complexité : trop de paramètres (des milliards dans les grands modèles de langage), trop de dimensions (des milliers), trop d’interactions non-linéaires. Cette réponse suggère que l’opacité est temporaire, qu’avec de meilleurs outils, plus de temps, plus de ressources computationnelles, nous finirons par comprendre.

Mais les recherches en interprétabilité suggèrent une réponse plus troublante. L’équipe d’Anthropic, dans Toy Models of Superposition (2022), a proposé l’« hypothèse de superposition » : les réseaux de neurones représenteraient plus de features (caractéristiques sémantiquement distinctes) qu’ils n’ont de neurones, en exploitant la quasi-orthogonalité possible dans les espaces de haute dimension. Un même neurone participerait à la représentation de multiples features sans rapport entre elles, phénomène baptisé « polysémantie ».

Si l’hypothèse de superposition est correcte, alors il n’existe pas de base interprétable pour les activations du réseau. Chercher à attribuer une signification à chaque neurone est fondamentalement mal poser le problème, car les neurones ne sont pas les unités primitives de représentation, ce sont des projections partielles de features distribuées dans tout l’espace. La recherche en Sparse Autoencoders (SAEs) tente d’extraire ces features, mais le problème est circulaire : nous ne savons pas combien de features existent, ni comment valider qu’une décomposition proposée correspond à la « vraie » structure du modèle.

Plus profondément, une étude récente sur Incidental Polysemanticity (AI Alignment Forum, 2023) montre que la polysémantie peut émerger même quand le nombre de features est inférieur au nombre de neurones, simplement parce que l’initialisation aléatoire et la dynamique d’entraînement conduisent à des chevauchements représentationnels. Ce n’est pas seulement que les réseaux compriment l’information par nécessité ; c’est que le processus même d’apprentissage par gradient favorise des représentations enchevêtrées. L’alphabétisation supposait une décomposition atomique des lettres, mots, phrases, documents. C’est le caractère discret et décomposable du langage qui est ici en cause.

L’opacité n’est donc pas un accident à corriger mais une propriété structurelle du mode de représentation. Comme l’écrivent les chercheurs de Minds and Machines (2025) dans leur analyse de l’opacité des réseaux profonds : « Ce n’est pas que nous ignorions comment le modèle fonctionne, ses processus internes, les valeurs assignées aux nœuds, le nombre de couches sont souvent observables. C’est plutôt que, malgré cette transparence, la complexité même de la fonctionnalité du modèle rend opaque la correspondance entre entrées et sorties. » L’opacité sémantique (que signifient les représentations ?) et l’opacité mécaniste (comment le modèle calcule-t-il ?) se renforcent mutuellement sans qu’aucune technique actuelle puisse les lever simultanément.

Un regard sur ce qui émerge

La question des capacités émergentes des grands modèles de langage éclaire d’une autre manière les limites de l’interprétation. L’article de Wei et al. (2022) avait identifié des capacités qui semblaient apparaître soudainement au-delà d’un certain seuil de taille : le modèle ne savait pas faire quelque chose, puis, avec quelques paramètres supplémentaires, il savait. Cette discontinuité apparente alimentait un récit de l’IA comme puissance imprévisible, capable de développements surprenants.

Mais l’article de Schaeffer, Miranda et Koyejo présenté à NeurIPS 2023, Are Emergent Abilities of Large Language Models a Mirage?, propose une explication alternative : les capacités « émergentes » seraient un artefact des métriques utilisées. Des métriques non-linéaires ou discontinues (comme le score binaire correct/incorrect) produisent des courbes de performance avec des seuils apparents ; des métriques linéaires ou continues (comme la distance d’édition ou le score de Brier) révèlent des améliorations graduelles et prévisibles. Plus de 92 % des capacités émergentes identifiées sur BIG-Bench apparaissent sous seulement deux métriques : Multiple Choice Grade et Exact String Match.

Cette découverte est philosophiquement significative. Elle suggère que ce qui « émerge » n’est pas une propriété intrinsèque du modèle, mais le produit de l’interaction entre le modèle, la tâche et l’instrument de mesure. L’émergence est autant fonction du regard que nous portons que de ce qui est regardé. Les chercheurs construisent des benchmarks, choisissent des métriques, définissent des seuils de réussite, et ces choix façonnent ce qui sera visible comme progrès discontinu ou comme amélioration graduelle.

Cela ne signifie pas que les grands modèles ne font rien de remarquable. Cela signifie que notre compréhension de ce qu’ils font est médiatisée par des dispositifs épistémiques dont les présupposés structurent les résultats. L’analogie avec l’alphabétisation classique suppose un texte stable que différents lecteurs peuvent déchiffrer identiquement. L’espace latent n’offre pas cette stabilité : il est toujours fonction de mon espace et de celui de l’autre, comparaison qui permet d’en faire l’induction et de rendre inopérante toute preuve définitive.

Le signe creux

Quentin Meillassoux, dans une conférence à l’ENS en 2016 sur les « Principes du signe creux », développait une conception du formalisme mathématique comme capable d’accéder à l’en-soi sans passer par les qualités sensibles. Le signe mathématique serait « creux » en ce qu’il ne dénote pas une propriété perceptible mais opère formellement, par ses seules relations syntaxiques. Cette vacuité sémantique serait précisément ce qui lui permet d’atteindre l’absolu.

L’analogie avec les vecteurs de l’espace latent est tentante. Les vecteurs aussi sont « creux », vides de sens intrinsèque, purement relationnels, opérant par proximités géométriques plutôt que par dénotation. Et ils semblent accéder à quelque chose qui excède la perception humaine : des régularités dans des espaces de haute dimension que nous ne pouvons visualiser, des patterns statistiques dans des corpus excédant toute lecture individuelle possible.

Mais l’analogie rencontre une limite importante. Chez Meillassoux, le signe formel est creux parce qu’il a été délibérément vidé de toute référence sensible par le geste axiomatique, il est pur symbole manipulable selon des règles explicites. Le vecteur de l’espace latent, au contraire, est saturé d’une histoire empirique : il est le précipité statistique de millions d’images, de textes, de sons produits par des êtres humains dans des contextes culturels déterminés. Il n’est pas vide de contenu ; il contient, sous forme comprimée et distribuée, toute la mémoire de son dataset d’entraînement.

Reconnaître cette limite ne disqualifie pas l’intérêt conceptuel de l’analogie. Elle nous permet de penser une forme de représentation qui opère sans signification assignable à ses éléments primitifs, une représentation où le sens émerge des relations plutôt qu’il ne s’inscrit dans des symboles. Mais elle nous rappelle aussi que les vecteurs de l’espace latent ne sont pas des formes pures : ils sont des empreintes d’empreintes, des traces de traces, selon une logique derridienne de l’archi-écriture qui reste solidaire de son origine humaine même quand elle en excède la saisie consciente.

Vers une politique vectorielle

Si l’espace latent résiste structurellement à l’interprétation, que devient le projet d’alphabétisation ? Si les vecteurs n’ont pas de signification lisible, à quoi bon apprendre à les lire ?

Une première réponse serait de distinguer les niveaux. Le code généré par les systèmes d’IA, celui que le vibe coder renonce à lire, reste lisible. Former des citoyens capables de lire ce code conserve une valeur, même si la pratique effective tend vers la délégation. Mais cette réponse maintient l’idéal de la signification transparente comme horizon régulateur, alors même que les systèmes effectivement déployés s’en éloignent.

Une seconde réponse, plus radicale, consisterait à penser une politique qui ne reposerait plus sur la transparence sémantique mais prendrait acte de l’opacité comme condition structurelle. Non pas une politique qui accepterait passivement l’incompréhension, mais une politique qui opérerait au niveau même de l’espace latent.

La vectorisation ne concerne pas seulement les représentations internes des réseaux de neurones. Elle constitue aujourd’hui un processus onto-politique fondamental qui structure le tissu social. Chaque individu, chaque groupe est assigné à des vecteurs, genre, âge, origine, position socio-économique, qui déterminent leurs trajectoires possibles dans l’espace social algorithmisé. Cette vectorisation traverse tout le spectre politique : qu’ils se revendiquent de droite ou de gauche, les acteurs politiques partagent la même méthodologie de catégorisation et d’assignation. Leur désaccord porte sur la valorisation différentielle des positions, non sur la légitimité du processus vectoriel lui-même.

Le vectofascisme, néologisme forgé pour désigner l’adaptation du fascisme aux structures techniques de l’ère numérique, opère précisément dans cette dimension. Non plus la mobilisation des masses dans l’espace physique, mais la modulation des flux d’attention et d’affect dans les espaces latents des serveurs. L’image technique vectofasciste est personnalisée, multiple, apparemment unique pour chaque regardeur, mais cette multiplication masque l’unité fondamentale du programme qui la calcule. La haine devient sur mesure, algorithmiquement optimisée pour maximiser l’engagement de chaque segment de population. Le différend politique se fragmente en différends incommensurables, chaque bulle informationnelle développant ses propres figures de l’ennemi sans possibilité de constituer un « nous » cohérent face au pouvoir.

Face à cette politique vectorielle du contrôle, la réponse ne peut être le simple retour à la signification transparente, ce serait comme vouloir résister aux réseaux de neurones avec des règles de grammaire. La réponse doit elle-même opérer au niveau des vecteurs : non pas constituer des significations contre la vectorisation, mais utiliser la vectorisation pour constituer des significations alternatives. Une politique des espaces latents qui accepterait de naviguer dans ces territoires mathématiques invisibles sans prétendre les ramener à une lisibilité classique.

Cela pourrait impliquer de développer des formes de « littératie vectorielle » qui ne viseraient pas la compréhension exhaustive des représentations, mais la capacité d’intervenir sur leurs effets. Comprendre comment les données d’entraînement façonnent les espaces latents, comment les biais s’inscrivent dans les topologies de similarité, comment les modes d’interpolation produisent certains types d’images ou de textes plutôt que d’autres. Non pas lire le sens caché des vecteurs, mais manipuler leurs trajectoires.

Cela pourrait aussi impliquer de renoncer à l’idéal de la transparence totale pour lui substituer un idéal de la navigabilité critique. Nous ne comprendrons jamais exhaustivement ce que « pense » un grand modèle de langage, mais nous pouvons cartographier ses tendances, identifier ses zones de stabilité et d’instabilité, repérer ses modes de défaillance caractéristiques. Une connaissance topologique plutôt que sémantique, une orientation dans l’espace plutôt qu’une lecture temporelle du texte.

Conclusion : habiter l’opacité

L’analogie platonicienne qui structure le discours sur l’alphabétisation à l’IA suppose une relation stable entre le visible et l’intelligible, le citoyen éduqué sort de la caverne pour contempler les formes vraies. Mais l’espace latent n’est pas une caverne avec une sortie vers la lumière. C’est un espace sans extérieur, où les ombres ne sont pas des copies dégradées d’originaux lumineux mais des configurations de probabilités sans référent stable.

Les discours institutionnels sur l’AI literacy continuent de promettre une émancipation par la compréhension, comme si savoir « comment fonctionne » ChatGPT ou Midjourney permettait de maîtriser son usage. Mais le vibe coding montre que même les experts peuvent (et parfois préfèrent) renoncer à cette compréhension. Et l’hypothèse de superposition suggère que la compréhension exhaustive des représentations internes est peut-être structurellement impossible, non par défaut temporaire de nos outils, mais par nature même du mode de représentation.

Cela ne signifie pas qu’il faille abandonner tout projet éducatif. Cela signifie qu’il faut reformuler ce projet en prenant acte de l’opacité comme condition plutôt que comme obstacle. Apprendre non pas à dissiper les ténèbres mais à s’y orienter ; non pas à lire un texte absent mais à naviguer dans un espace de possibles ; non pas à comprendre la machine mais à composer avec elle dans une relation qui ne sera jamais de maîtrise transparente.

Le citoyen de l’âge des vecteurs n’est pas celui qui a compris l’algorithme et la modélisation qui a présidé à son élaboration. Personne ne comprend vraiment un réseau de neurones profonds, pas même ses créateurs, parce qu’il est inductif et non plus déductif. Savoir comment a été programmé une IA n’est qu’une toute petite partie du problème parce que la vectorisation n’est pas le simple résultat de ce qui a été programmé : l’apprentissage dépasse ce qu’on pouvait en attendre. C’est celui qui sait intervenir dans les processus de vectorisation qui façonnent les subjectivités et les collectifs, qui peut identifier les assignations et les contester, qui participe à la constitution de significations dans et par l’espace latent plutôt que contre lui. C’est un lecteur sans texte préalable à la lecture, c’est un texte qui s’écrit à mesure qu’on le parcourt et selon la manière dont on le parcourt, un navigateur sans carte préétablie, sachant que la carte elle-même est toujours à constituer, et que cette constitution est l’enjeu même de la politique à venir.


Références

Conseil de l’Europe. Artificial Intelligence and Education: A Critical View Through the Lens of Human Rights, Democracy and the Rule of Law. Strasbourg, 2022.

Elhage, Nelson, et al. « Toy Models of Superposition. » Transformer Circuits Thread, 2022.

Karpathy, Andrej. Post sur X (anciennement Twitter), 2 février 2025.

Meillassoux, Quentin. Après la finitude : Essai sur la nécessité de la contingence. Paris : Seuil, 2006.

Meillassoux, Quentin. « Principes du signe creux. » Conférence à l’ENS, 2016. Transcription sur chatonsky.net.

Schaeffer, Rylan, Brando Miranda, et Sanmi Koyejo. « Are Emergent Abilities of Large Language Models a Mirage? » 37th Conference on Neural Information Processing Systems (NeurIPS 2023).

Stiegler, Bernard. « Le numérique empêche-t-il de penser ? » Revue Esprit, janvier 2014.

UNESCO. Guidance for Generative AI in Education and Research. Paris, 2023.

Wei, Jason, et al. « Emergent Abilities of Large Language Models. » Transactions on Machine Learning Research, 2022.

Williamson, Ben. « Performing AI Literacy. » Code Acts in Education, 2025. https://codeactsineducation.wordpress.com

Willison, Simon. “Not All AI-Assisted Programming Is Vibe Coding.” Blog personnel, mars 2025.