Ce texte n'est pas de moi mais de Dave Small
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'
Eléctronique Frontier Fondation