« La différence entre fonction et procédure est un reflet de la différence
plus générale entre décrire les choses et décrire la façon de faire les choses
(…). En mathématiques, nous utilisons des descriptions déclaratives (qu’est-ce
que c’est ?), alors qu’en informatique nous utilisons des descriptions
impératives (comment faire ?) » (Harold Abelson et Gerald
Jay Sussman, Structure and Interpretation
of Computer Programs, MIT Pres 1996, p. 22)
Il est salubre, il est
nécessaire de philosopher sur l’informatique.
Abelson et Sussman disent
qu’elle est concernée par le savoir-faire, le « how to », alors que les
mathématiques seraient concernées par les définitions, le « what is ». Cette
phrase est à la fois profonde et inexacte.
Elle est inexacte parce que les
mathématiques qu’ils évoquent ne sont pas celles des chercheurs mais celles des
lycées, des grandes écoles et de l’agrégation qui se limitent à utiliser, pour
traiter des « problèmes » qui ne sont au fond que des questions de cours, les
outils mis au point par les chercheurs d’autrefois.
Elle est profonde parce que la
pensée explicite que l’on nous a enseignée, dressée à procéder de façon
déductive à partir d’axiomes dont on ne questionne pas la pertinence, s’appuie
en effet sur des définitions. Le savoir-faire, l’aptitude à résoudre les
problèmes pratiques, sont laissés à la pensée implicite, intuitive,
quotidienne, plus naturelle sans doute mais moins formelle et moins
« rigoureuse » que la pensée explicite.
L’informatique, en invitant à
expliciter la pratique, à articuler la pensée et l’action, brise le dogmatisme
d’un enseignement qui a oublié la démarche expérimentale pour ne transmettre que
les résultats de l’expérience.
* *
Mais on peut interpréter
autrement la phrase d’Abelson et Sussman. Considérons non plus le cadavre que
l’on présente dans les amphis, mais les mathématiques vivantes, celles qui
explorent la part du monde de la pensée qui est soumise au principe de
non-contradiction.
Le chercheur en mathématiques possède non seulement des définitions, mais aussi
le savoir-faire qui lui permet de mettre à jour des systèmes d’axiomes
féconds. Ce savoir-faire suppose qu’il puisse, selon une intuition qui
enjambe les étapes du raisonnement, anticiper des résultats non encore établis.
La frontière entre
l’informatique et les mathématiques ne passe donc pas entre définition et
savoir-faire, mais entre un savoir-faire adapté au monde de la pensée,
seul objet des mathématiques, et le savoir-faire qui convient face au monde
de la nature (en entendant par « monde de la nature » tout ce qui se
présente comme obstacle ou comme outil devant notre aspiration au bien-être : la
nature physique bien sûr, mais aussi la nature humaine et sociale).
Ce n’est pas pour penser en
effet que nous utilisons l’automate, mais pour agir. Pour penser, nous
disposons de notre cerveau, des associations d’idées qu’il suggère sans arrêt et
des raisonnements auxquels nous le contraignons. C’est sur le cerveau, et non
sur l’automate, qu’il faut compter pour exercer le « simple » bon sens.
L’automate, lui, assiste notre action en offrant sa capacité à classer,
trier, traiter, transformer, transporter les données que fournit l’observation.
L’informatique a ainsi une
finalité essentiellement pratique. Relativement récente, elle pose à
l’horizon de l’intellect des questions dont la nouveauté dérange l’inertie des
corporations. D’où, de la part de ceux qu’elle aurait dû intéresser le plus, un
mépris qui confine à la fureur. C’est parce que l’informatique pose des
questions philosophiques nouvelles que les philosophes, qui pour la plupart
préfèrent méditer les grands textes de leur discipline plutôt que de se
confronter au monde de la nature, produisent des considérations tantôt
apocalyptiques, tantôt enthousiastes, presque jamais pondérées ni exactes.
C’est parce qu’elle risquait de déranger l’échiquier des pouvoirs universitaires
que les mathématiciens l’ont empêchée de prendre, dans l’enseignement, la place
qui doit lui revenir.
* *
On savait depuis longtemps
construire des automates. On apprit à les programmer au XIXe siècle.
Mais le canard de Vaucanson, comme le métier à tisser de Jacquard, sont
spécialisés dans une seule fonction. Il fallut un admirable effort d’abstraction
pour concevoir l’automate essentiellement programmable, l’automate
capable de commander l’exécution d’un programme à n’importe quel type de
périphérique (écran-clavier, bras articulé d’un robot, avion en pilotage
automatique, centrale nucléaire etc.)
L’informatique est née avec
l’entreprise moderne
- forme spécifique d’organisation du travail humain, du rapport à la nature et
du rapport au marché - dans le loop de Chicago à la fin du XIXe
siècle. Elle s’est développée parallèlement à d’autres outils – classeur
mécanique, trombone, machine à écrire, photocopieuse, post-it, téléphone etc. –
qu’elle a ensuite partiellement absorbés. A l’être humain organisé en un
réseau de compétences complémentaires (EHO) elle a articulé l’automate
programmable doué d’ubiquité (APU), plate-forme de mémoires, processeurs,
réseaux et logiciels. Les processus de production en ont été transformés ainsi
que les conditions de l’échange (distribution des produits, traitement des
effets de commerce).
L’EHO et l’APU s’entrelacent
jusque dans le détail de chaque processus de l’entreprise selon un « modèle en
couches » qui se divise en couches plus fines. Ce type de modèle est l’une des
innovations philosophiques qu’a apportées l’informatique : il permet de
représenter les situations où plusieurs logiques se conditionnent mutuellement,
situations fréquentes dans la vie courante mais que seul un modèle en couches
permet de penser.
Pour s’informatiser,
l’entreprise doit expliciter ses règles de gestion, le flux de ses processus,
son référentiel : elle doit se modéliser. Cela implique qu’elle choisisse
les êtres qu’elle représentera, les variables qu’elle observera sur ces êtres et
les traitements qu’elle leur appliquera ; dans le langage des informaticiens,
qui abonde en faux amis, on dira que l’entreprise doit définir ses « objets »
avec leurs attributs, opérations, règles de gestion, cycles de vie etc. Cela
suppose qu’elle sache, dans la complexité sans limites du monde de la nature,
découper les objets, attributs etc. pertinents pour son action en faisant
abstraction des autres. L’informatique assouplit l’abstraction pour servir une
visée opérationnelle. Cette pratique de l’abstraction, qui isole du reste
du monde les êtres qu’implique l’action, chacun la suit dans la vie courante
mais elle est rarement explicite.
C’est, par rapport à la pensée
socratique, un renversement de perspective : le concept ne révèle plus l’essence
des choses mais nous outille pour représenter les êtres concernés par l’action.
Le processus, comme un tourbillon dans un fleuve, brasse une matière sans cesse
renouvelée et l’objet qui le parcourt (dossier d’un client, d’un produit, d’un
salarié etc.) conserve son identité tout en se transformant. Cela nous place
plus près de Lao Zi (VIe siècle avant JC) que de Parménide (540-450).
En construisant le référentiel
qui définit les objets, attributs et codages, l’informatique définit le
langage de l’entreprise. Seul sera dicible et audible le recours aux
identifiants et nomenclatures qu’elle met en œuvre. On ne pourra pas, dans
l’entreprise, utiliser une autre segmentation des clients, un autre référentiel
de l’organisation, une autre classification des produits que ceux qui sont
incorporés à ses logiciels. Celui qui voudrait modifier le langage – et on a
souvent de bonnes raison de vouloir le faire – devra passer par une modification
du référentiel. Ainsi l’informatique exige que l’on explicite l’évolution du
langage, cette évolution que les structuralistes avaient dédaignée pour mieux
nous serrer dans le corset du langage à l’œuvre.
L’automate traduit, selon une
cascade de langages, la plus simple des manœuvres de l’utilisateur en des
milliers d’instructions élémentaires exécutées en une fraction de seconde. Pour
qu’il puisse y parvenir ses concepteurs ont tiré parti des propriétés
électroniques de la matière : cet artefact appartient donc au monde de la nature
physique. Ses ressources - mémoire, puissance, débit du réseau - sont bornées
par leur dimensionnement. L’informaticien est ainsi un physicien qui traite avec
précautions (qualité, sécurité) une masse (de données) et des vitesses (de
traitement).
La programmation est l’exercice
intellectuel le plus sain qui soit. Elle ne relève pas, comme on le dit avec
condescendance, des mathématiques appliquées. Elle ne peut être réussie que si
l’on a explicité le problème à traiter ainsi que tous ses cas particuliers :
cela donne parfois au mathématicien l’occasion de découvrir des cas que la
simplicité de la « formule » générale lui avait masqués. Le programmeur doit par
ailleurs ruser avec la physique de l’automate, et cela le contraint à un
réalisme dont l’acquisition demande un long apprentissage.
* *
Articulation des logiques,
évolution du langage, élucidation de la dynamique des processus, pratique de
l’abstraction, réalisme : l’informatique apporte du grain à moudre au penseur.
En retour l’intervention de celui-ci est nécessaire car, si l’informatique est
née dans et pour l’entreprise, si elle a été sécrétée par l’entreprise, il s’en
faut de beaucoup que l’entreprise la comprenne. Elle inspire aux dirigeants,
tout comme aux philosophes, des sentiments qui oscillent de l’horreur à la
fascination. Nous avons donc grand besoin d’explications claires, d’une
réflexion en bon ordre, d’une saine pédagogie pour faciliter son appropriation
par l’entreprise ou, comme on dit, son « alignement stratégique ».
Les médias, les films, donnent
de l'informatique une image faussée : l'informaticien y apparaît comme un «
génie » qui tape du code en champion de dactylographie ; les ordinateurs y
parlent, pensent et souffrent comme vous et moi. La commodité des interfaces a
par ailleurs répandu l’idée que l’informatique était facile : il est donc
inutile de se donner la peine de la comprendre ! Les étudiants se détournent de
la programmation, qu’ils jugent trop aride et que l’on préfèrera sous-traiter à
des pays où les salaires sont bas. Pourtant elle fait partie des savoirs
fondamentaux sans lesquels on ne peut pas comprendre, aujourd’hui, notre rapport
avec le monde de la nature.
Alors que l’articulation de
l’EHO et de l’APU, la délimitation de ce qu’il faut ou ne faut pas automatiser,
posent une question philosophique et pratique des plus importantes
l’attention du grand public, des dirigeants et des penseurs est ainsi accaparée
par des images fantastiques. Les informaticiens, sur la défensive, s’enferment
dans leur spécialité et se protègent par leur jargon, à moins qu’ils ne
s’emploient à faire de la propagande sans mentionner les obstacles.
* *
C’est à l’exploration des
obstacles que Laurent Bloch s’est attelé : obstacles physiques avec lesquels on
doit ruser, obstacles sociologiques et intellectuels aussi. La racine de ces
derniers est souvent philosophique ou même métaphysique, l’enjeu étant de
savoir comment penser le monde pour pouvoir agir sur lui.
Laurent Bloch est de ces
esprits curieux qui étudient et réfléchissent sans relâche. Il se donne de
surcroît la peine de mettre en ordre le résultat de ses travaux, de les exprimer
le plus clairement possible pour aider les autres à progresser.
Il y faut de la générosité, du dévouement : beaucoup de lecteurs supposent que
si un texte est facile à lire, c’est qu’il n’était pas difficile à écrire. Son
ouverture d’esprit l’a conduit à s’intéresser de près aux utilisateurs de
l’informatique : il fait, avec une patience inlassable, bénéficier le club des
maîtres d’ouvrage des systèmes d’information
d’une pédagogie bienveillante.
Laurent Bloch explicite ici,
sans jargon ni complaisance, les apports et limites des méthodes (Merise, UML,
SADT, XP etc.) Il présente les diverses couches de l’informatique pour bien
faire apparaître le jeu de leurs interactions. Il illustre son propos par des
exemples. Son expérience lui permet d’évoquer des obstacles de toutes natures et
d’indiquer comment les contourner. Il évoque avec humour les obstacles
sociologiques, si irritants : mieux vaut, en effet, les prendre avec patience,
avec le sourire !
Elle ne recouvre pas tout le monde de la pensée : le théorème de
Gödel (1931) montre qu’il existe, quel que soit le système d’axiomes que
l’on utilise, des propositions évidemment vraies et cependant
indémontrables.
|