Archives pour la catégorie invention

La supercherie du logiciel libre 

Avez-vous entendu parler du « logiciel libre » ? J’ai vivement critiqué cette forme de religion informaticienne dans mon article 2007 – L’association APRIL se bat pour la copie légale des inventions en logiciel ! Le logiciel libre est une idée des informaticiens pour pouvoir améliorer pour leur propre usage les logiciels qu’ils n’ont pas écrits mais dont ils ont besoin. En voici la définition  par la FSF, association d’informaticiens qui défend les utilisateurs (SIC !) :« Quand les utilisateurs ne contrôlent pas le programme, c’est le programme qui contrôle les utilisateurs. Le développeur contrôle le programme, et par ce biais, contrôle les utilisateurs. Ce programme non libre, ou « privateur », devient donc l’instrument d’un pouvoir injuste. » C’est si vrai ! Le drame de l’informatique qui nous enferme dans une prison. On croirait la profession de foi d’une organisation d’utilisateurs…

Mais… c’est en fait une ode au pouvoir de l’informaticien ! Car le logiciel libre n’est jamais associé à une méthode qui permettrait aux utilisateurs de modifier par eux-mêmes les programmes. Comme la Maïeutique (mon invention qui permet d’exprimer la connaissance inconsciente mais dont aucun informaticien ne veut parler). Il faut toujours savoir lire le code dans lequel le programme est écrit pour le modifier.

Seuls les informaticiens peuvent jouir du logiciel « libre ».

Les adulateurs du logiciel libre se f… de notre g…

Autre défaut majeur de l’informatique : l’obligation pour le développeur d’apprendre les connaissances d’experts à mettre dans les programmes

  1. Tout programme est l’automatisation d’une expertise humaine

Tout programme est l’automatisation d’une expertise humaine. C’est justement son rôle. La paie est l’automatisation d’une expertise de comptable, les pilotes de périphériques sont l’automatisation d’une expertise d’ingénieur, les générateurs d’écran de saisie sont l’automatisation d’une expertise d’ergonome mâtinée d’informaticien, les messageries sont l’automatisation d’une expertise d’utilisateurs, la gestion de bases de données est l’automatisation d’une expertise d’informaticien, etc. Et si vous voulez développer un programme sans avoir sous la main un expert, il vous faudra créer l’expertise de toutes pièces, ce qui fera de vous un expert…

Bien entendu, l’expertise contenue dans un programme est le plus souvent complexe, rare et indispensable. C’est parce qu’elle est complexe que ses utilisateurs, pourtant quotidiens, ne parviennent pas à l’assimiler. C’est parce qu’elle est rare qu’il faut la sauvegarder dans un programme pour ne pas risquer de la perdre quand l’expert disparaîtra. C’est parce qu’elle est indispensable aux utilisateurs quotidiennement qu’il leur faut un programme qui les aide et leur fait gagner du temps.

On l’a vu dans mon post précédent « L’algorithmique, le talon d’Achille de l’informatique qui prétend que l’ordinateur est idiot« , un programme algorithmique est le recensement de tous les voies possibles de raisonnement pour résoudre une catégorie de problèmes donnée. Pour faire le tour de ces raisonnements, l’informaticien est contraint de simuler le fonctionnement de l’expertise dans sa tête, donc de l’apprendre et de la comprendre. C’est un exercice presque surhumain car, rappelez-vous, les utilisateurs eux-mêmes, pourtant familiers du sujet, n’y sont pas parvenus.

Quand il considère qu’il a parfaitement assimilé l’expertise, le programmeur aborde une nouvelle tâche peu humaine : représenter tous les chemins qu’elle peut prendre par une sorte d’équation, l’algorithmique. Ce travail va remplir des dizaines ou des centaines de pages selon le volume de l’expertise et le résultat devra marcher à tous les coups !On comprend que l’écriture d’un programme ne soit pas un long fleuve tranquille…

2. L’homme face à l’ordinateur

Si l’ordinateur peut mémoriser un nombre infini de pages sans en oublier aucune, l’homme pas du tout. Mais cela ne l’empêche pas de parvenir aux mêmes résultats et on ferait bien de s’en inspirer ! Il recourt à son intelligence simplificatrice et à sa mémoire « procédurale ». Cette mémoire, possédée par l’ensemble des êtres vivants, emmagasine les expériences répétées et dit instantanément quoi faire face aux cas connus. C’est la mémoire de l’expert (sachant que nous sommes tous experts en une multitude de choses). L’homme a poussé beaucoup plus loin que ses collègues animaux le recours à cette fonction. L’évolution l’y a aidé en augmentant sa capacité crânienne à une vitesse étonnamment rapide ses dernières centaines de milliers d’années. En fait depuis qu’il s’est déplacé debout, ce qui a permis de poser le poids de sa lourde tête sur le reste du corps en minimisant les efforts et non plus en porte-à-faux avant comme tous les animaux se déplaçant à l’horizontale.

La mémoire procédurale est constituée d’une foule de micro-expertises qui disent quoi faire en fonction d’une situation donnée. Les plus anciennes et les plus courantes chez un être humain sont le langage, l’interprétation des expressions, la psychologie, la conduite automobile, etc. Voici des exemples de micro-expertises humaines pris dans divers domaines pointus :

SI nb d’heures de salaire à payer>nb d’heures mensuel légal
ET POSITION DU SALARIE n’est pas « cadre »
ALORS il y a des heures sup à payer

 SI on est dans la région de Toulon-Camarat
ET force du vent après brise<4
ET direction du vent après brise>2
ET direction du vent après brise<6
ALORS le vent est de secteur nord

 SI la douleur que je ressens n’évoque pas un problème cardiaque
ET elle n’augmente pas quand j’inspire
ET je n’ai pas la fièvre
ET je tousse
ALORS j’ai une pleurésie 

SI j’ai un accident à un croisement
ET l’autre véhicule est sur un sens giratoire
ET ce sens giratoire dispose d’une balise «Cédez le passage »
ET je ne circule pas encore sur le sens giratoire
ALORS je m’engage sur le sens giratoire
ET  je n’ai pas la priorité
ET  ma part de responsabilité dans l’accident=1 

En informatique et intelligence artificielle, on appelle ça des règles. On rassemble toutes les règles d’une expertise donnée dans une base de données qu’on appellera alors « base de règles » ou « base de connaissance ». C’est sur elles que l’expert raisonne inconsciemment pour dérouler l’équivalent du programme, comme nous raisonnons tous inconsciemment pour comprendre par exemple ce texte, pour parler ou pour conduire.

3. Raisonnement = syllogisme

Il se trouve que, contrairement à ce que beaucoup croient, tout raisonnement est une mécanique, très simple. Une mécanique aussi inconsciente qu’une règle mais dotée d’une puissance bien supérieure puisqu’elle guide nos actes chaque seconde et que c’est elle qui nous maintient en vie. C’est le « syllogisme » décrit par Aristote il y a 2 400 ans. Je vous parlerai sûrement de sa puissance extraordinaire dans un prochain post.

Puisque le syllogisme est une mécanique simple et claire, il est… programmable ! Et ce programme sait exploiter une base de règles et raisonner comme l’expert, mieux que lui encore car il n’oublie jamais rien, ne commet jamais d’erreur et répond sans le moindre délai. En copiant le processus de pensée de l’expert et à la condition que l’on dispose d’une base de règles, on obtient donc un programme sans intervention d’un informaticien, sans algorithmique ni langage informatique. Un programme écrit en clair sous forme de règles et facile à modifier. L’ordinateur raisonne sur les règles sans rien comprendre des notions qu’il manipule et pourtant il vous fournit les bonnes réponses auxquelles il ne comprend rien non plus mais que, vous, vous comprenez. Comme tout programme.

4. Mais pour pouvoir raisonner, il faut une connaissance à exploiter !

Reste à résoudre la difficulté ultime : permettre à l’ordinateur d’extraire automatiquement ces règles auxquelles il ne comprend rien… Sinon il faudra toujours un développeur pour interroger l’expert, et il sera toujours obligé d’assimiler sa connaissance pour la diviser en règles. Souvenez-vous du sujet de ce post : « Autre défaut majeur de l’informatique : l’obligation pour le développeur d’apprendre les connaissances d’experts à mettre dans les programmes » Il sous-entend qu’il serait possible de programmer sans rien comprendre de la connaissance de l’expert qu’on utilise, donc sans même comprendre l’expert. Mais comment Dieu est-ce possible ? C’est là que mon invention « la Maïeutique » prend toute sa saveur. C’est une méthode, donc elle aussi une mécanique. Qui a  été programmée dans le logiciel T.Rex (Tree Rules EXtractor). T.Rex permet à l’ordinateur d’interroger les experts et d’extraire automatiquement leurs expertises en les exprimant sous forme de règles. Si l’ordinateur ne comprend rien à ce qu’il fait, l’expert, lui, voit les règles qu’il synthétise et peut vérifier s’il a « compris ». S’il n’a pas compris l’expert rectifie. L’ordinateur est une force de proposition, l’expert l’inspecteur des travaux finis… La machine propose, la femme – pardon, l’homme ! – dispose (pour une fois…). C’est vraiment la façon la plus confortable de travailler.

Cela revient à dire qu’avec la Maïeutique c’est l’expert qui définit le programme et l’ordinateur qui l’écrit pour lui sans rien comprendre. Et pourtant, ça marche !

Pas belle mon invention ?

On comprend que je ne sois pas aimé des informaticiens… 😉