Mes calendriers

Mes calendriers sous divers formats

Ma collection

Toute ma collection de calculatrices, calculatrices programmable, ordinateur de poche.

Offrez moi un café

Si mes calendriers, mes scans ou mon site vous ont intéressés, offrez moi un café en cliquant sur la tasse.

tasse_cafe.png

Ancienne Collection

Machines dont le me suis séparé, et qui ne font plus partie de ma collection.

 ↑  
Ma bibliothèque

Tous les scans de ma bibliothèque

Me contacter

pour me contacter, remplissez le formulaire en cliquant ici open_envolope.jpg

si le formulaire ne fonctionne pas, envoyez-moi un mail à

collection point sasfepu chez free point fr

Visites

 427024 visiteurs

 7 visiteurs en ligne

Des ordinateurs qui doutent STM 76

Les performances des ordinateurs augmentent sans arrêt. Les constructeurs rivalisent de prouesses, et battent régulièrement leurs propres records de vitesse et de taille. Mais leur ingéniosité est-elle canalisée dans la bonne direction ? D'abord, les limites physiques de la technologie commencent à se faire sentir. Ensuite, à quoi bon ces performances étourdissantes, Si c'est pour s'en tenir aux mêmes approches depuis des lustres ? Il est temps d'inventer une nouvelle façon de programmer. Dave Small en a imaginé une. Voulez-vous l'implémenter?

La nouvelle génération

   Attention : je me mets en roue libre pour cet article. Le lecteur attentif y décèlera d'évidents manquements à la logique. Mais après tout, je suis doté d'une personnalité de type NF, type pour lequel, je cite les psychologues, "la logique est optionnelle".

   C'est pourquoi je vais discuter d'un sujet a priori assez abstrus : comment la prochaine génération d'ordinateur devrait-elle être construite ? Prenons la peine de nous y pencher. Pour me faire pardonner de vous soumettre mes idées bizarres, je vais commencer par brosser le tableau de la situation actuelle.

Causons matos

   À bien y regarder, la technologie informatique semble avoir abouti dans une impasse. Oh, bien sûr, on peut continuer à ajouter de la mémoire, à augmenter les vitesses d'horroge, et à entasser des flopées de transistors dans des circuits minuscules. Mais nous nous heurtons aux lois de la physique. Les circuits intégrés deviennent de plus en plus complexes à fabriquer, et les usines de production nécessitent des investissements de plus en plus colossaux, avec une rentabilité décroissante. Examinons le marché actuel : déjà, la mémoire est suffisamment bon marché pour que des appareils grand public en comportent plusieurs mégaoctets. Les vitesses des processeurs sont désormais ahurissantes. On peut aujourd'hui se procurer un 68040 à 66 MHz (mégahertz, millions de cycles par seconde), avec une horloge à 33 MHz, mais comportant l'équivalent d'un doubleur de fréquence d'horloge. Ou bien un 80486 DX-2 à 66 MHz. Les premiers exemplaires du nouveau processeur de chez Intel, le 80586 rebaptisé Pentium, sont disponibles au prix de 900 dollars pièce (en faibles quantités, mais le prix descendra en flèche sous quelques mois), et les premiers tests indiquent qu'il est beaucoup plus rapide que le 80486 à 66 MHz. Les fidèles de Motorola ne doivent pas désespérer, car un 68060 est en préparation.

   Mais Si vous voulez vraiment parler vitesse, jetez donc un oeil à l'architecture RISC (Reduced Instruction Set Computer, ordinateur à jeu d'instructions réduit). Il s'agit de processeurs comportant moins d'instructions que les processeurs classiques, dits CISC (Complex Instruction Set Computer, ordinateur à jeu d'instructions complexe), mais capables d'exécuter chaque instruction de manière optimale, très rapidement. Motorola, justement, est en train de révolutionner le marché en proposant un processeur RISC bon marché et très rapide conçu en collaboration avec IBM, le PowerpC.

   A la convention HackerCon, qui est une réunion annuelle de bidouilleurs, j'ai pu voir une machine RISÇ, une Silicon Graphics, laisser sur place un Mac ultra-rapide, un Quadra 950. Ç'est la machine la plus rapide que j'aie jamais vue, à l'exception d'une machine expérimentale basée sur des composants optiques utilisant des lasers au lieu de signaux électriques, et qui opère à des fréquences de plusieurs milliards de mégahertz (ce n'est pas une coquille !), mais qui est encore quelque peu éloignée du stade commercial.

   Peut-être vous rappelez-vous les processeurs 6502 des Atari 8 bits et des Apple II. Le 6502 est très proche d'un processeur RISC : il a peu d'instructions, mais grâce à un pipe-line, il exécute une instruction pendant qu'il décode la suivante, ce qui lui permet d'exécuter pratiquement une instruction par cycle d'horloge, au lieu des multiples cycles par instruction que demandent un 68000 et un 80486. Et vous souvenez-vous de ce qu'on pouvait faire avec un petit 6502 à 1,79 MHz seulement ? Le jeu "Star Raiders", par exemple. Si ses graphiques élaborés étaient possibles, c'est parce qu'on tirait le maximum de chacun des 1 790 000 cycles d'horloge par seconde.

   Au fait, le 6502 n'est pas mont. De nos jours, on continue à produire des 6502, cadencés à (tenez-vous bien) 16 MHz, soit 9 fois plus vite que celui des Atari 8 bits, et aussi rapide que le 68000 des Mega/STE. Pas mal pour un processeur "obsolète", non ? Par exemple, nos deux Mac IIfx ont chacun deux 6502 dédiés à la gestion des entrées/sorties série et SCSI, pour soulager le 68030. Un fabricant de modems à 14 400 bauds utilise des 6502 rapides de Rockwell, qui fournissent la puissance de calcul nécessaire au traitement des algorithmes complexes du mode télécopieur et de la compression au vol. Or, l'architecture du 6502 est très loin d'ètre aussi optimisée que celle d'un véritable processeur à jeu d'instructions réduit. C'est dire quelle puissance recèle l'architecture RISC et les améliorations de performances qu'on peut en attendre encore.

   (Petit aparté: étant nostalgique de l'Atari 8 bits, j'ai une requête à formuler. Je souhaiterais qu'un bon bidouilleur mette un 6502 à 16 MHz dans un Atari 8 bits, avec sa propre mémoire de façon à ne pas interférer avec le balayage vidéo. L'intervalle d'adresse à utiliser pour cette RAM devrait logiquement être le même que celui des ROM, avec une sélection de page, comme sur le 130XE. Le balayage vidéo de la RAM n'a de toute façon rien à faire dans cette zone d'adresse, vu que personne ne s'amuserait à y mettre une image. Je sais, ce n'est pas trivial, mais je sais que c'est faisable. Si quelqu'un y parvient et que le montage est raisonnablement rapide, qu'il me le fasse savoir : je lui offre un Spectre GCR tout neuf, à la condition qu'il explique comment il a fait, selon l'éthique de la bidouille. J'irais même jusqu'à rédiger la documentation moi-même si c'est nécessaire. Inutile que ce soit bien soigné, j'improvise moi-même souvent des bricolages assez sordides. Je le ferais volontiers moi-même si j'avais le temps...)

Les pieges de la haute vitesse

   On continue donc à augmenter les cadences d'horloge. Mais on ne pourra pas continuer indéfiniment. Déjà, des barrières insurmontables apparaissent. En particulier, on se heurte à la vitesse de la lumière. Selon Einstein, rien ne peut dépasser 299 792 km/s, et ce postulat n'a jamais été contredit. (Beaucoup de choses confirment sa théorie. Des particules subatomiques qui ne devraient exister qu'une infime fraction de seconde durent beaucoup plus longtemps si elles approchent la vitesse de la lumière, car le temps ralentit à ces vitesses. La physique quantique recèle d'intéressants paradoxes, comme celui des deux photons corrélés - émis par la même source - dont chacun réagit instantanément à une modification subie par l'autre, mais même ces expériences ne contredisent pas l'existence de cette limite absolue.)

   Donc, les informations qui circulent dans nos ordinateurs ne peuvent dépasser la vitesse de la lumière, notée c. Et encore dans un câble coaxial, les signaux électriques atteignent bien cette vitesse, mais sur un circuit imprimé, les électrons n'en dépassent pas le tiers. Or, les intervalles de temps dans les ordinateurs sont à présent mesurés en nanosecondes (ns), ou milliardièmes de seconde. Et en une nanoseconde, la lumière ne parcourt que 30 centimètres. Et il n'est pas rare de voir des circuits logiques demander 15 ns uniquement pour qu'un signal les traverse - ce qu'on appelle le délai de propagation. C'est par exemple le cas du circuit logique principal de la carte 68030 SST. C'est pour cela qu'à haute fréquence, une bonne synchronisation est absolument cruciale.

   Des choses étranges se produisent à haute fréquence. Les électrons ne peuvent se déplacer assez vite. Des signaux bien propres émis simultanément à un bout d'une carte arrivent déformés et décalés à l'autre bout. Un nombre affolant de concepteurs de circuits électroniques ont tenté de créer des ordinateurs fonctionnant à 50 MHz et ont échoué à cause de ce genre de pièges de synchro. D'innombrables ingénieurs se sont arraché les cheveux sur ces problèmes, faisant la fortune des marchands de lotion capillaire. Il faut recourir à des techniques spéciales de construction de circuit imprimé pour éviter l'apparition de "zones d'ombre" sur les cartes, c'est-à-dire d'endroit où la tension d'alimentation tombe en dessous de la valeur normale, et où la masse ne se maintient pas à zéro volt.

   Prenons un peu de recul et examinons ces phénomènes. Les électrons ont beau se déplacer à 100 000 km/s dans des pistes de cuivre très conductrices, ils ne peuvent arriver à rassasier assez vite les circuits intégrés. Les puces pompent le courant si vite (et le recrachent, bien sûr) que la tension d'alimentation à leurs bornes chute parfois pendant quelques fractions de seconde, bien que le cuivre soit à la bonne tension sur les connecteurs d'alimentation ! Et le fil de la puce relié à la masse, au lieu d'être en permanence à une tension nulle, monte à une tension non négligeable jusqu'à ce que les charges aient eu le temps de se répartir. Le problème est que les intervalles de temps sont si courts que même la vitesse phénoménale de l'électricité est insuffisante, et que des phénomènes négligeables à plus basse fréquence - comme les capacités parasites des connexions - deviennent prépondérants.

   Pour pallier ces problèmes, il faut monter les puces sur des circuits imprimés multicouches, avec, par exemple, deux couches externes où circulent les signaux, et deux couches internes d'alimentation à O V et +5 V respectivement, alimentées par de très larges connexions. Les couches d'alimentations apportent le courant en tous les points de la carte, et la quadrillent complètement, sauf aux endroits où les pattes des circuits imprimés la traversent, et là où un trou métallisé fait passer un signal d'une face à l'autre de la carte. C'est ainsi qu'est faite la carte SST.

   Anecdote significative: à Gadgets By SmalI, nous arrivons à faire monter à 46 MHz les SST normalement prévues pour 33 MHz, mais seulement en refroidissant énergiquement les circuits intégrés. (Par contre, je ne suis pas encore fixé quant à la vitesse maximum de ma Camaro, dont les limitations restent à atteindre). J'ai un jour assemblé et soudé à la main une carte SST (je suis devenu très fort en soudage). Elle marchait très bien à 33 MHz, mais refusait obstinément de fonctionner à 46 MHz. Nous avons retiré de cette carte les circuits intégrés montés sur support et les avons placés sur une SST soudée à la vague. (Le soudage à la vague consiste à mettre le côté soudure de la carte juste au dessus d'un bain d'étain en fusion ou un vibreur crée des vaguelettes qui vont venir lécher le cuivre nu et déposer de la soudure aux endroits voulus, de façon tres uni forme et précise. C'est la technique de soudage ordinaire de cartes complexes comme la SST). Eh bien, sur cette carte soudée à la vague, les composants tournaient parfaitement à 46 MHz. Il y avait apparemment dans mes soudures manuelles quelque chose qui coinçait à cette fréquence, mais pas à 33 MHz. La limite est diablement fine!

   On comprend dès lors pourquoi les compatibles PC ultra-rapides à base de 80486DX-2 tournent en réalité à la moitié de la fréquence du processeur. Ainsi, dans mon PC DX-2 à 50 MHz, seuls le processeur et l'antémémoire statique tournent àcette cadence. Le reste est en réalité une machine à 25 MHz, ce qui est beaucoup plus simple à concevoir et à faire certifier conforme par la FCC. [NdT : Commission fédérale des communications, qui exigent que les appareils aient des taux d'émission de parasites très bas. Pour les circuits numériques, ce taux augmente avec la fréquence, ce qui oblige à blinder les câbles et boîtiers, et complique la conception.] Il est en fait assez difficile de trouver des PC tournant entièrement à 50 MHz. De même, seul le processeur de l'Atari TT tourne à 32 Mhz, le reste de la machine est à 16 Mhz.

Gardons la tete froide

   Les ingénieurs se font des cheveux blancs avec l'arrivée des processeurs à plus de 60 Mhz, comme le Pentium. Les circuits imprimés devront être physiquement plus petits et plus denses, juste pour que les électrons n'aient pas trop de chemin à parcourir. Cela signifie que davantage de chaleur sera engendrée dans un espace plus petit. Or, les puces craignent énormément la chaleur, et grillent si elles chauffent trop.

   D'ailleurs, dès ce soir, j'installe un refroidisseur dans mon PC, ainsi qu'un ventilateur supplémentaire. Le refroidisseur utilise une jonction de Peltier. C'est un étrange petit carré de métal de 3 cm de côté, avec un connecteur d'alimentation que l'on branche sur celle du disque dur. Cela fonctionne comme un thermocouple inversé. Un thermocouple fournit de l'électricité quand on le soumet à une différence de température, et une jonction de Peltier, elle, crée une différence de température quand on l'alimente en électricité. On la branche, et hop! Un côté devient glacé, l'autre devient brûlant.

   On place donc le côté froid contre le circuit intégré à refroidir, avec un peu de graisse au silicone pour mieux conduire la chaleur, et le carré magique transfère vers son côté chaud la chaleur engendrée par la puce. Celle-ci est actuellement brûlante au toucher quand l'ordinateur marche, et le refroidisseur la ramène au-dessous de la température ambiante. Le ventilateur supplémentaire sert à évacuer la chaleur transférée par le refroidisseur.

   Si vous avez un PC équipé d'un DX-2, achetez au minimum un ventilateur supplémentaire pour le processeur, ou mieux, un refroidisseur à jonction de Peltier. Selon les techniciens d'un magasin de PC d'à côté, les DX-2 à 66 MHz dégagent tant de chaleur qu'ils grillent fréquemment, même avec les gros radiateurs dont ils sont dotés d'origine. Sans radiateur, un DX-2 grille en quelques secondes.

   Bien sûr, si ces circuits intégrés chauffent, c'est à cause du nombre toujours plus élevé de transistors qu'ils contiennent dans un volume à peu prés constant. Vous avez sûrement déjà vu ces diagrammes où l'on représente le nombre de composants par circuit en fonction du temps, ce nombre doublant à peu près tous les deux ans. La raison en est simple : comme la vitesse de la lumière est une limite absolue, il faut rapprocher les composants toujours davantage.

   C'est également ce qui a conduit les concepteurs de cartes à dédaigner les circuits intégrés logiques standards (les circuits classiques série 74xx contenant chacun 4 ou 6 portes logiques ET, OU, NON-ET, etc.) pour les remplacer par des "circuits logiques programmables". Ce sont des circuits contenant des portes logiques en vrac, et que l'on connecte les unes aux autres en fonction des besoins, en usine, afin de remplacer de nombreux 74xx. Certes, ces circuits logiques programmables chauffent, mais tiennent cent fois moins de place sur les cartes que les CI logiques standards qu'ils remplacent. Les puces GLUE et MCU de nos Atari ST en sont de bons exemples. Cette technologie, très largement employée, permet de condenser en une seule puce des cartes grand format (60 x 9O cm) bourrées de circuits 74xx. Mais la consommation de cette seule puce est à l'avenant du nombre de circuits élémentaires qu'elle contient.

La mémoire

   La vitesse et le prix de la mémoire, qui ont longtemps été les facteurs limitant traditionnels de l'informatique, s'améliorent rapidement. Gadgets By Small livre beaucoup de cartes SST équipées de mémoires haute performance à 70 ns. Apple et les constructeurs de compatibles PC recommandent à présent de mettre des mémoires à 70, voire à 60 ns sur leurs machines les plus rapides. Les ST utilisent le la RAM à 120 ns. J'aurais honte de vous dire quelle était la vitesse des RAM équipant les Atari 8 bits... Quant à la taille de ces mémoires, on trouve des clones PC dotés de 8 Mo (mégaoctets) sur tous les bureaux. Et souvent, cette mémoire est constituée de 8 barrettes SIMM d'un Mo chacune. Avec l'arrivée des SIMM de 4 Mo, on peut facilement transformer ces PC en machines de 32 Mo. C'est une énorme capacité mémoire. Et les SIMM de 16 Mo débarquent, Si votre compte bancaire est bien approvisionne...

   (Tuyau pour les possesseurs de TT GESoft fabrique une carte d'extension RAM doté de 8 emplacements SIMM qui acceptent les SIMM d'1 Mo bon marché en mode page, ainsi que les SIMM 4 Mo. J'ai un TT doté d'une carte GESoft et de 8 Mo de RAM-TT, et elle n'a jamais failli. Le coût des RAM en mode page est très bas comparé à la carte de 16 Mo de RAM en mode "nybble" vendue par Atari, pour une faible différence en vitesse.)

Les limites du matériel

   Soupir nostalgique... Je me rappelle qu'à l'époque où je suis entré dans le monde Atari, en 1980, une carte mémoire de 16 Ko (16 384 octets très exactement) coûtait 200 dollars. Aujourd'hui, nous semblons être entré dans une spirale ascendante de vitesse et de densité. Mais là encore surgissent des problèmes sournois qui nous rappellent brutalement qu'à ces vitesses, nous jonglons sur une corde raide.

   Un petit exemple : je suis parvenu à faire fonctionner sur la SST des SIMM d'un mègaoctet à 53 ns, puis à 40 ns. Mais je ne parviens pas encore à les faire aller à leur pleine vitesse un faible nombre de cycles d'attentes se produisent encore. (Un cycle d'attente survient lorsque la RAM ne parvient pas à suivre la cadence du processeur. Un cycle d'horloge est alors gaspillé en attendant que la RAM le rattrape.) Les RAM se comportent normalement à 70 ns, mais à 40, un problème d'adaptation d'impédance survient. Les amplis de ligne 74A5245 deviennent brûlant, ce qui indique un rebond lors des transitions de signal, donc un problème d'impédance.

   Ce qui nous mène au problème des instruments de mesure capables d'indiquer ce qui se produit vraiment sur des cartes à haute vitesse. "Déverminer" des cartes, comme on dit, n'est possible que si l'on dispose d'instruments qui ne faussent pas les mesures. Et même avec des instruments ruineux adaptés aux hautes vitesses, faire une mesure est loin d'être simple. Pour vous en donner une idée, je me rappelle le dépannage de la carte d'extension mémoire d'un 5205T. Avec la sonde de mon très bon oscilloscope, j'ai touché la ligne CAS (adressage colonne) de la mémoire, et le ST a planté, rien qu'à cause de cette petite capacité introduite sur cet important signal. Effarant, non ?

   Une fois, un technicien d'AT&T me montra une carte et me dit qu'il venait de passer un an à en éliminer les plantages intempestifs. Cette année de travail pouvait se résumer à un seul fil, traversant la carte de part en part, mis pour remplacer une piste de la carte qui virevoltait entre les circuits intégrés. Il s'était avéré que cette piste était trop longue et retardait suffisamment le signal pour désynchroniser et planter la carte par intermittence. Un fil bien droit corrigeait le problème. Vous voyez comme les problèmes deviennent vicieux ? Pourrons-nous encore augmenter les vitesses au rythme actuel ?

   En résumé, nous avons des vitesses de processeurs qui changent les cartes en casse-tête chinois. Les temps d'accès des RAM approchent le zéro, ce qui serait parfait (actuellement, 40 ns est une RAM dynamique très rapide, mais une RAM statique lente. Pour une RAM statique, une bonne vitesse est 20 ns...). Nous avons des techniques d'assemblage qui empilent toujours plus de composants en moins d'espace, comme le montage en surface ou le montage direct des puces retournées (développé par IBM, je crois - corrigez-moi si je me trompe). Mais les limites approchent. La vitesse de la lumière, un temps d'accès nul, des cartes entièrement remplies de puces. Et puis après?

Parlons programmation

   Côté logiciel, nous ne réussissons guère mieux à augmenter l'efficacité. Les programmes modernes sont lourds, encombrants et lents. Il leur faut absolument des machines ultra-rapides à 50 MHz juste pour être tolérables. La conception des compilateurs n'a guère évolué, et n'a pas connu de percée révolutionnaire.

   Le langage assembleur offre toujours au programmeur les programmes les plus rapides et les plus optimisés, mais est toujours aussi difficile. Les langages de plus haut niveau (et plus ennuyeux) permettent au programmeur d'être plus productif en échange d'une vitesse moindre et d'une perte de contrôle. Je ne m'y suis toujours pas résigné, mais la plupart des autres programmeurs l'ont fait. Toujours est-il qu'on peut maintenant faire des tableurs plus gros, cependant leur conception est toujours la même. On peut éditer de plus gros documents. Ouais, super. On peut avoir des bases de données plus grandes. (Bâillement) Et alors?

   Il n'y a rien de vraiment neuf dans tout cela. Il y a bien de grands discours sur la programmation par objets. Mais personne n'est capable de me dire ce qu'est un objet! Vous voulez rire un bon coup? Mettez trois diplômés en informatique dans une salle, et demandez-leur "Qu'est-ce qu'un objet ?". Otez de la salle tous les objets pointus, ou vous aurez des morts.

Du vraiment neuf

   Pour progresser, nous avons besoin d'idées radicalement neuves, d'un saut quantique. Mais avant que de nous perdre dans une jungle de concepts abasourdissants, faisons une pause et prenons derechef un peu de recul. Rappelons-nous cette citation célèbre : "Un fanatique est quelqu'un qui redouble d'efforts après s'être égaré."

   Reconnaissons que les idées actuelles de l'informatique ont été presque entièrement explorées. On ne pourra plus très longtemps continuer à pousser les performances des matériels et des logiciels actuels. Nous sommes dans une véritable impasse.

   Il nous faut en sortir et adopter une approche entièrement nouvelle, suivre une piste inexplorée. Permettez-moi donc, avec mon habituelle modestie, de vous soumettre quelques pensées sur ladite "nouvelle approche". Commençons par un peu de métaphysique. Non, attendez, ne tournez pas la page ! La métaphysique, c'est l'avant-garde du progrès. Les physiciens quantiques utilisent la métaphysique et les métaphores bouddhistes pour décrire le monde des électrons, et les puces de nos ordinateurs utilisent la physique quantique.

Je pense...

   Vous vous rappelez de "cogit ergo sum"? On le traduit souvent (mal) par "je pense, donc je suis". Mais l'axiome de Descartes gagne à être traduit plus précisément. Descartes essayait de déterminer ce dont l'existence pouvait être prouvée. L'univers existe-t-il vraiment ? Ou bien n'est-ce qu'un produit de mon imagination ? Vieille question, et si l'on réfléchit bien, il est impossible de se prouver réellement que quoi que ce soit existe. Tout comme il est impossible à quelqu'un sous l'emprise d'hallucinogènes de discerner la réalité de l'illusion.

   Nous avons cependant une certitude (c'est là tout ce que la philosophie est parvenue à établir en 4000 ans). Nous existons. Comment en sommes-nous sûr ? Parce que nous pouvons douter de notre propre existence. Nous savons que nous doutons - donc, nous devons exister pour pouvoir douter. Quel soulagement, hein?

   Prouver que le reste de l'univers existe n'a pas encore été fait. L'univers entier risque peut-être de s'évaporer si vous cessez d'y penser... La véritable signification de "cogito ergo sum" est "je doute, donc j'existe". La clé, c'est le doute. Voilà qui me semble être une piste toute neuve

   Défrichons-là.

La machine à douter

   Imaginez maintenant, si vous le voulez bien, un ordinateur qui doute, au lieu des machines actuelles qui suivent aveuglément une procédure pas-à-pas appelée "programme" (et dont l'aveuglement se double d'obstination, surtout quand les choses vont de travers). Je pense sincèrement que cela pourrait être la prochaine génération de recherches informatiques. Je lance cette idée pour qu'elle puisse germer dans vos cerveaux fertiles, car, premièrement, je n'ai pas actuellement le temps de la pousser plus loin que le stade intuitif, et deuxièmement, je suis partisan du partage de l'information selon l'éthique des bidouilleurs. Vous êtes libres de faire fortune grâce à elle.

   Difficile d'imaginer un ordinateur qui doute? Mais peut-être vous représentez-vous une machine qui vous aide à déboguer vos programmes ? Non, non, NON ! Ce ne serait que du réchauffé, l'amélioration du développement des programmes actuels. Pour expliquer ce que j'envisage, prenons l'exemple d'une statue ou d'une sculpture.

   Il y a deux façons de faire une statue. La première est de la créer par additions successives. En collant les uns aux autres des morceaux de glaise, on bâtit une statue. Il faut savoir où l'on va, et prévoir le support des structures les plus fines. C'est en quelque sorte l'analogue de l'approche actuelle de la programmation, qui consiste à donner des instructions détaillées en vue de la construction d'une structure, via un programme.

   Mais il y a une autre méthode, une voie qui ne s'est ouverte aux créateurs d'ordinateurs que très récemment. Nous pouvons également créer et définir une statue en prenant un gros bloc d'argile et en y soustrayant progressivement des morceaux jusqu'à ce que nous obtenions la forme finale. Nous commençons par une infinité de possibilités, et élaguons des morceaux jusqu'à la forme voulue.

   Connaissez-vous un seul ordinateur qui fonctionne ainsi ? Connaissez-vous des programmes qui disent à l'ordinateur ce qu'il faut ne PAS faire, et définissent ainsi la tâche à accomplir ? N'espérez pas me river mon clou en disant que définir ce que doit faire un ordinateur, de manière classique, suffit à définir ce qu'il doit ne pas faire. Tous les programmeurs peuvent raconter des histoires horrifiques d'ordinateur échappant à tout contrôle, exécutant des données en guise d'instructions, se plantant de mille manières. Non, nous avons là défini un nouvel idéal, hors d'atteinte de la technologie actuelle.

   Cette méthode - appelons-la technologie négative - recèle de nombreux avantages. Par exemple, un embranchement de programme ne pourrait pas prendre une direction inattendue Si vous élaguez cette possibilité en sculptant le programme.

   Cette technologie devient désormais accessible grâce à l'accroissement des vitesses et des capacités des machines. Il y a encore peu, les ordinateurs étaient si limités qu'ils avaient déjà grand-mal à seulement suivre rigoureusement un programme strict. Ils ne pouvaient guère se permettre de zigzaguer et trébucher le long d'un chemin balisé par des interdictions, comme je l'entrevois. En laissant mon imagination vagabonder, j'en arrive même au sentiment confus que c'est la véritable manière d'appréhender la programmation parallèle, seule voie d'expansion prometteuse dans l'informatique, et qui s'accommode mal, par nature, des méthodes classiques de programmation séquentielle. Bien sûr, si mon esprit invoque ces visions de processeurs multiples louvoyant entre des murs leur interdisant de s'égarer dans des voies aberrantes, c'est peut-être par réaction envers ces ignobles programmes Mac qui plantent et que je dois corriger à contrecoeur.

   Mesdames et Messieurs du jury, permettez-moi de vous dire pourquoi je pense que cette approche, cette technologie négative expliquant aux ordinateurs ce qu'il ne faut pas taire, mérite d'être examinée. C'est parce que c'est ainsi que les humains apprennent ! On ne programme pas les gens (et encore moins les enfants, comme le savent tous les parents - et j'en ai trois). En fait, les enfants se programment tout seul, et c'est ce que nous recherchons, crénom ! Par exemple, dès son plus jeune âge, un gosse apprend à ne PAS toucher une casserole chaude, ou à ne PAS jouer avec les allumettes. L'outil qui sculpte ces règles dans l'esprit humain est la douleur, ressentie directement suite à une bêtise, ou appliquée par la main parentale. On apprend de préférence ce qu'il ne faut pas faire, et bien peu ce qu'il faut faire (et encore, en traînant les pieds).

   Naturellement, en suivant cette approche, vous obtiendriez tout à fait autre chose qu'un esclave borné. Vous pourriez fort bien vous retrouver avec un ordinateur bien décidé à rester debout toute la nuit pour lire un livre, et se moquant éperdument des tables de multiplication (je me demande bien où j'ai pu aller chercher cet exemple, tiens.) Mais cela pourrait bien être la solution de nos problèmes. Des ordinateurs qui apprennent... Les machines à base de réseaux neuronaux s'orientent vers cette direction.

Digression constitutionnelle

   C'est d'ailleurs ainsi que fonctionne notre gouvernement, et c'est ce qui le limite. Il est intéressant de noter que la Constitution américaine est remplie de choses que le gouvernement ne doit PAS faire. Notre gouvernement est divisé en trois pouvoirs - exécutif, législatif, judiciaire - qui passent leur temps à se dire mutuellement ce qu'ils ne doivent pas faire. [NdT la Constitution française est basée sur un esprit différent et dit au contraire ce que le gouvernement peut faire et ce que le peuple doit faire.] En tant que nation, les Etats-Unis ont plutôt bien réussi comparés à d'autres systèmes de gouvernement. En d'autres termes, un système de règles en technologie négative s'est révélé convivial.

   En fait, notre gouvernement ne semble rencontrer des problèmes que lorsqu'il commence vraiment à faire quelque chose. On se rappelle par exemple le cas de Steve Jackson Games ou du fanzine Phrack Newsletter, entre autres. [NdT dans ces deux cas, le gouvernement US -FBI et services secrets - s'est attaqué à des innocents dans l'espoir de pincer des pirates de l'informatique, et a employé sans discernement des méthodes illégales et dévastatrices.] Ceux qui s'y intéressent peuvent contacter l'Electronic Frontier Foundation.

Pour finir

   Ceci termine ce petit exposé. Je me rends compte qu'il y a encore beaucoup de travail dans cette voie, d'idées à explorer, de programmes à écrire. Peut-être un nouveau langage de programmation, destiné à expliquer ce qu'il ne faut pas faire à un ordinateur curieux et touche-à-tout. Un ordinateur qui doute. Je crois que si jamais nous y parvenons un jour, nous aurons franchi le second pas sur la voie des machines pensantes.

Traduction et adaptation Password 90


Date de création : 16/02/2015 : 09:11
Catégorie : -
Page lue 1395 fois