3.3.15

Comment l’esprit vient à la matière avec le numérique

La question se pose de l’enseignement du numérique à l’école, entre simple apprentissage de son utilisation ou initiation à la programmation. J’avais émis l’opinion à Antonio Casilli, qui m’avait pris pour un débile, qu’il faudrait enseigner les rudiments du langage machine pour comprendre l’interface entre hardware et software, comment l’esprit venait à la matière, dissiper enfin le mystère de nos appareils numériques en même temps que celui de la pensée.

En effet, rien mieux que le numérique ne rend visible le dualisme de la pensée et de l’étendue, de l’esprit et du corps qui ne sont pas « une seule et même chose » comme le prétend Spinoza, le programme n’est pas l’envers de la machine, leurs existences sont à la fois distinctes et liées (mais pas inséparablement). Les conséquences philosophiques du numérique me semblent complètement négligées tant on rechigne à réduire « Les lois de la pensée » à une algèbre booléenne. Le risque de réductionnisme existe si on n’y introduit pas le langage narratif au moins et le mode de fonctionnement des réseaux de neurones ou du machine learning qui n’ont rien à voir avec un programme linéaire, cela ne doit pas empêcher de savoir par quelles procédures le numérique se matérialise, une pensée s’incarne (comme dans l’écriture) et les instructions s’exécutent (« comment l’esprit meut le corps »).

La première chose à comprendre, c’est comment on passe de l'étendue à la pensée, du signal continu à l'information discontinue, des disques analogiques qui s’usent vite à la reproduction numérique qui ne connaît plus d’entropie, car c’est bien la fonction anti-entropique (ce qu’on appelle la néguentropie) qui est le coeur du numérique et de la cybernétique avec la correction d’erreur et la reproduction à l’identique qui ne connaît plus de limites.

Il ne s’agit plus, en effet, de l’enregistrement brut d’un signal physique sur une bande, mais de sa transformation en information. Toute communication a besoin d’un signal physique, un courant énergétique, une porteuse continue qui relie émetteur et récepteur, mais pour le transformer en information, il ne faut en garder que les événements signifiants, éliminer le bruit sur lequel se découpe une information discontinue. Pour en extraire le contenu, la numérisation décompose le signal continu en unités discrètes, en ignorant délibérément les variations entre deux bornes, deux limites arbitrairement découpées. C'est ce qu'on appelle le degré de définition ou d'échantillonnage d'une image ou d'un son. Pour un son, on passe d'un signal sinusoïdal à un signal carré (voir illustration) représentant une suite de 0 et de 1 au lieu du signal analogique originel. Curieusement, par cette soustraction de la qualité initiale (nettoyée de ses plus petits détails) on obtient une bien meilleure qualité de restitution car on s'affranchit ainsi du bruit, c'est-à-dire des fluctuations non significatives qui recouvrent normalement les petites nuances qu’on a perdues. Pour obtenir une reproduction à l'identique il faut donc commencer d'abord par renoncer à une reproduction intégrale. Mais, dès lors, c'est un véritable changement de nature du signal qui s'opère, ne reflétant plus du tout le son originel mais seulement une suite de codes binaires ne produisant aucun son directement.

Un code binaire s’enregistre facilement, sur un support magnétique la plupart du temps, où le 0 et le 1 correspondent par convention à des états physiques opposés mais cette information ne peut être lue que par un programme approprié (lecteur MP3 par exemple), elle n’a aucun sens en elle-même (aucun son). On n'est plus du tout dans le signal physique brut et, du coup, n’importe quelle suite de 0 et de 1 peut être interprétée comme un nombre, même si elle représente en fait des lettres, un son ou une image. C’est ce qui permet que ces enregistrements numériques puissent être désormais compressés, transmis et reproduits complètement à l'identique.

L’entropie universelle n’ayant pas disparue, cette reproduction à l’identique n’est possible que grâce à la correction d’erreurs et donc à la rétroaction, la validation du résultat, c’est-à-dire la comparaison entre la copie et le modèle. En effet, les communications numériques ne sont pas unilatérales, comme une radio par exemple, mais exigent une validation du récepteur pour chaque paquet de données (signal "Ack" pour acknowledgment : re-connaissance, accusé de réception). C’est ce qui en assure la qualité (numérique). La manière la plus simple de vérifier une reproduction exacte, c’est celle de l’ADN : d’avoir un double de l’information, ce qui permet de comparer point à point et de corriger ou de détruire en cas de mutations. Les méthodes adoptées en informatique sont plus légères, évitant de tout envoyer en double et se contentant d’une « checksum », c’est-à-dire en envoyant à la fin d’une suite de 0 et 1, leur somme. A la réception, on refait la somme et si ce n’est pas la même on ne valide pas, ce qui provoque le renvoi des données. Au niveau le plus basique, on se contente de la parité, c’est à dire indiquer par le 0 ou le 1 final si la somme d'un octet (8 chiffres binaires) est paire ou impaire, sinon il y a des systèmes plus élaborés comme les CRC (Code de Redondance Cyclique) dont le but est non seulement de repérer une erreur en prenant le moins de place mais même de pouvoir la réparer (quand il n'y en a qu'une). On voit que la part de l’entropie qui est celle de l’erreur de transmission est surmontée par le contrôle et la répétition qui sont une dépense supplémentaire d’énergie, donc une production supplémentaire d’entropie au niveau thermodynamique mais assez minime et qui permet de supprimer l’entropie de l’information en obtenant une reproduction parfaite à l’arrivée. Une autre façon de valider une transmission, c’est de lui faire respecter un protocole avec notamment un code de départ et de fin (comme pour les gènes). Si le protocole n’est pas respecté, là encore ce qui avait été reçu est ignoré (déchet de l’entropie) et une retransmission est demandée pour supprimer l’entropie du résultat.

Il n’y a donc rien de mystérieux dans la capacité du numérique à surmonter la loi universelle de l’entropie selon des méthodes qui sont assez semblables à celles du vivant. On a vu comment on passait du physique au numérique, du signal au code, comment on pouvait s’appuyer sur des données fiables mais il faut comprendre maintenant comment un programme les manipule, comment une machine effectue des calculs et quel est le support matériel de ces opérations logiques. La programmation actuelle consiste à utiliser des bibliothèques de fonctions. Les langages informatiques de « haut niveau », sont lisibles et modifiables facilement par des programmeurs mais ont besoin être « compilés » pour être traduits en code binaire compris par la machine, ayant une correspondance électronique. De mon temps, on était obligé de programmer quelque fois en « langage machine » les parties les plus critiques ayant besoin d’être optimisées (sur les ordinateurs très lents de l’époque). Ce langage machine a besoin lui aussi d’être compilé mais, s’il est très difficilement lisible (il faut le suivre pas à pas), il a l’avantage cependant de mieux refléter le fonctionnement matériel et donc de comprendre comment les instructions sont exécutées, comment l’esprit immatériel devient puissance matérielle.

Il faut d’abord parler de la mémoire, son organisation spatiale (étendue) et son contenu (pensée). La matérialité de la mémoire, du hardware, se traduit par ce qu’on appelle des adresses mémoires qui désignent un emplacement matériel, comme on peut désigner des cases d’un tableau ou d’une bataille navale par sa colonne et sa ligne. Un pointeur sur cette adresse (matérielle) va lire son contenu qui est un code numérisé dont le sens est déterminé par le programme, le software, comme on l’a vu, et n’est déjà plus matériel. Le programme lui-même est chargé dans la mémoire, constitué de codes interprétés séquentiellement par le microprocesseur. Ces instructions sont soit spatiales (matérielles), soit logiques. L’ordre MOV va ainsi prendre le contenu d’une adresse mémoire (une case) pour la recopier à une autre adresse (une autre case), ce qui veut dire affecter une valeur à une variable. Ecrire A=B consiste à un MOV du contenu trouvé à l’adresse de la variable B pour le recopier à l’adresse de la variable A. Le dualisme se trouve ici entre l’adresse et son contenu, le pointeur et ce qu’il pointe, l’écriture matérielle et le sens immatériel. L’autre instruction spatiale concerne le programme lui-même et lui permet de sauter des instructions soit par un GOTO, soit par un JMP (jump), utile avec un test conditionnel en général mais qui se réfère bien à la matérialité du programme et l’adresse mémoire des instructions.

Il est bien connu que la base de la programmation, c’est de mettre une condition à une action : IF (conditions) THEN … ELSE …, les boucles n’en étant qu’une variante répétitive. Toute la programmation consiste à déterminer des bifurcations de comportement en fonction d’une condition donnée (ou ensemble de conditions). L’ordinateur, ce qu’il sait faire, ce sont des calculs (ce que les machines à calcul savent faire depuis Pascal). Donc, lorsqu’on veut tester une condition, on va comparer une variable à une valeur, c’est-à-dire le contenu d’une adresse mémoire comparé au contenu indiqué dans le programme. L’opérateur CMP va donc faire un MOV matériel du contenu trouvé dans ce qu’on appelle un registre qui va y soustraire la valeur à comparer. Si le résultat est 0, c’est qu’il y a bien égalité, la condition est remplie - mais on peut tester aussi bien si la valeur est plus grande ou plus petite. Ensuite, en fonction du résultat, le programme va sauter à une ligne de programme ou une autre. Reste à y ajouter les opérateurs logiques AND, OR, NOT pour disposer de presque toutes les ressources de la programmation mais un programme n’est rien s’il n’agit pas sur l’extérieur, au moins un écran, une « sortie » comme on dit, l’entrée étant soit le clavier, soit le réseau, soit des capteurs qui branchent le numérique sur le monde. C’est ainsi que l’esprit agit sur la matière, d’avoir déjà une matérialisation électrique (tout comme dans le cerveau), ce qui permet à l’ordinateur de déclencher un relais de commande (un muscle), sans rien de mystérieux, la merveille étant juste qu’un courant infime puisse mettre en route une machine de grande puissance (tout comme une toute petite information peut faire basculer un empire).

Ce ne sont pas des choses compliquées ni qui prennent beaucoup de temps à apprendre mais qui mériteraient d’être apprises, mieux connues et méditées dans nos sociétés numériques, permettant de recadrer les réflexions sur l'esprit et illustrant le dualisme fondamental entre signifiant et signifié, le signal et l’information, le hardware et le software, l’adresse mémoire et son contenu, aussi éloigné du dualisme de Descartes que du monisme de Spinoza. On peut bien sûr protester qu’on n’est pas des machines, encore faudrait-il le prouver ! Du moins cela devrait être l’occasion de mieux déterminer ce qui nous en distingue radicalement, maintenant qu’on ne peut plus croire que notre esprit immatériel d'essence divine flotterait dans l’air mais qu’il y a bien une matérialisation de l’immatériel tout comme le langage matérialise la pensée, lui donne objectivité. La question doit être reprise à nouveaux frais d’un matérialisme spirituel, d’un dualisme assumé redonnant tout son poids au corps et aux émotions (la socialité), en même temps que les machines, bien qu'il leur manque un certain nombre de nos capacités, apprennent à penser selon les mêmes lois universelles.

Source: Jean Zin http://jeanzin.fr/2015/02/08/comment-l-esprit-vient-a-la-matiere-avec-le-numerique/#more-9642