Participants :
Baptiste MELES, Marc CHANTREUX, Arthur PONS, Vincent BUARD
Intervention de Baptiste Mélès
Opacité des machines, questions de la philosophie Unix et logiciel libre, en
reprenant les choses en amont. Cette opacité et ses problématiques ne sont pas
spécifiques aux ordinateurs seulement.
Parallèle fait avec l’exemple du grille pain.
Paradoxe du numérique : agrandit à la fois nos capacités et est une source
d’aliénation.
Machine = instrument modifiant le mouvement imprimé de l’ordinateur.
Instrument = objet qui permet de réaliser une action (extension du corps) avec
d’un côté les outils (adopte sans modifier le mouvement imprimé de l’utilisateur, exemple du marteau et du tournevis) et de l’autre les machines (transformation du mouvement : exemple du grille pain, mouvement vers le bas donc tranche descend + et se retrouve grillée).
Conséquences : dans l’outil, le fonctionnement est transparent. Pour une machine, il est potentiellement opaque. On ne connait pas ce qu’il se passe à l’intérieur, qui peut-être caché. C’est souvent même une vertu de la machine pour la rendre disponible au plus grand nombre. Ce qui m’intéresse en tant qu’utilisateur: la fente, le thermostat, la languette pour baisser la tartine. Plusieurs machines différentes peuvent proposer la même interface : exemples du synthétiseur, du clavecin, du piano. L’opacité n’est pas forcément mauvaise.
Ordinateur : machines complexes qui ont été rendues accessibles à des personnes non informaticiennes. La complexité est rendue maitrisable par une série d’interfaces empilées les unes sur les autres (niveau matériel jusqu’aux GUI)
Les machines sont donc opaques.
2 conséquences probablement néfastes :
- une contrainte externe sur le mouvement initial et terminal ;
- une contrainte interne sur la fiabilité de la transformation de mouvement.
Souhait de brancher son grille pain à une beurreuse ? Et aussi une trancheuse ? Nécessité d’une compatibilité universelle pour composer à son goût. Ceci est très philosophie Unix : chaque programme fait une chose et la fait bien. Puis on les assemble comme on le souhaite.
Démonstration du pouvoir du grep “|” en ligne de commande qui permet de relier les différentes machines entre elles. Exemple d’une commande donné par Baptiste, pour rechercher 10 sujets contenant l’expression “lang” dans un ensemble de fichiers de philosophie : grep “lang” | shuf -n10
L’opacité pose des problèmes techniques et politique. Puis-je ouvrir, réparer et améliorer mon grille pain ? Puis-je distribuer mon grille pain amélioré ?
Amène aux quatre libertés du logiciel libre :
- pouvoir exécuter le programme comme on le souhaite ;
- pouvoir étudier le fonctionnement du programme (présence de vis pour ouvrir
le grille pain) ; - pouvoir redistribuer des copies ;
- pouvoir redistribuer des copies de nos versions modifiées (pouvoir
distribuer mon grille-pain-beurreur).
Conclusion :
Le problème des logiciels est très général et peut s’étendre aux machines dans
leur ensemble.
Solutions : modularité et transparence.
Intervention de Marc Chantreux
Opacité de la machine dont l’ingénieur se méfie pour pouvoir maintenir efficacement un système. Cependant la production des outils actuels repose sur cette opacité, quand on voit la simplicité des outils de nos aïeux, on peut se poser la question du pourquoi de tant de complexité.
Aujourd’hui, cela a été dicté par les besoins de rentabilité. Difficile de réunir des experts de tous les domaines à tous les niveaux de la chaîne de production. Donc on s’appuie sur des “experts”, on achète des composants électroniques et logiciels à d’autres sociétés pour réduire le coût de sa valeur ajoutée.
Problème : la notion de propriété intellectuelle, accumulation de “boites
noires”.
Mouvement dans les années début 80, tentative de privatiser les codes, de créer des logiciels qui se basaient sur une économie (le logiciel privateur, logiciel propriétaire d’après Richard Stallman). Une façon de contrer cette opacité est d’ouvrir toutes les recettes de fabrication pour les composants (open-hardware) et du logiciel libre, qui pré-existait avant le logiciel propriétaire. Au départ, dans les universités puisque l’informatique vient des universités, l’objectif n’était pas le business mais bien de faire avancer la science. D’où le développement d’Unix et le besoin de faire des logiciels
spartiates.
Ordinateur = outil générique pour faire des opérations. Au dessus, on a des programmes. Au début, on lançait un programme, puis on relançait la machine, avec un nouveau programme. Le système d’exploitation est une sorte de programme intermédiaire qui permet de pouvoir lancer des programmes à la chaîne. Le matériel permet un nombre fini d’opérations, et avec cela les ingénieurs vont devoir créer des outils qui répondent à des besoins fonctionnels. Pour ça, ils s’appuient sur ces transformations d’état qu’ils transforment en abstraction. Exemple : éditer du texte, créer de la vidéo, tout ça sous la forme d’un conteneur générique qui est le fichier, ces
fichiers sont ensuite organisé de manière arborescente dans des répertoires. Mais ce n’est pas une nécessité : certains système d’exploitation n’ont pas de notion de fichiers, ou de catalogue… Un OS, pour en faire le tour, il faut réussir à répondre à un maximum de besoins fonctionnels avec un minimum d’abstractions et d’interactions.
Le monde Unix a essayé de penser dès le départ à cette complexité, ce qui résulte à très peu d’abstractions dans le système. L’immense majorité des terminaux, des supercalculateurs, sont sur Unix. D’autres valeurs doivent ressortir de ça :
- simple à maintenir, car moins gros et font la belle part aux interactions plutôt qu’aux objets : maximiser les interactions entre les objets plutôt que de les faire grossir. Y aurait-il une arnaque dans le logiciel libre ? Car l’appel à contribution n’est pas si simple, avec par exemple la base de code de firefox composée de 65 millions de lignes de code. Évident : pour des raisons sociales de transmission, de facilitation, pour la discussion et l’autogestion, pour comprendre de quoi il s’agit, il faut revenir à des outils spartiates.
- Les bénéfices du numérique sont à pondérer aujourd’hui à cause de problèmes de lisibilité, qui causent des problèmes de pilotage, de souveraineté, de démocratie. Il faut revenir à des choses simples.
- Grosse question de la transmission : au lieu de créer du logiciel avec lequel l’utilisateur se débrouille, l’idée serait d’avoir plus de gens qui veillent à la transmission du savoir et l’intégration des gens dans les processus décisionnels, mais nous ne sommes pas dans une société qui le permet. Est-il possible de recréer le rêve qui a permis de donner vie à Unix ? La question se pose…
Intervention d’Arthur Pons
Lecture d’Illich, “la Convivialité”. Passage marquant où Illich parle de savoir :
Dans quel environnement l’enfant des villes voit-il le jour ? Dans un ensemble complexe de systèmes qui signifient une chose pour ceux qui les conçoivent et une autre pour ceux qui les emploient. Placé au contact de milliers de systèmes, placé à leurs terminaisons, l’homme des villes sait se servir d’un téléphone et de la télévision, mais il ne sait comment ça marche. L’acquisition spontanée du savoir est confinée aux mécanismes d’ajustement et de confort massifié. L’homme des villes est de moins en moins à l’aise pour faire sa chose à lui. Faire la cuisine, la cour ou l’amour devient matière à enseignement. Dévié par et vers l’éducation, l’équilibre du savoir se dégrade. Les gens savent ce qu’on leur a appris, mais ils n’apprennent plus par eux même. Ils sentent qu’ils sont besoin d’être éduqués.
Sentiment d’être souvent dans cette situation présente dans la phrase en gras.
Conversation avec Thomas Bernard : discussion autour de la documentation.
Comment réduire l’écart de vocabulaire entre le créateur et l’utilisateur ?
Retour d’une discussion de Thomas d’un groupe qui documente tout, à la manière
d’une histoire, y compris leur manière de fonctionnement.
Autre discussion avec Régis Witz à propos d’un générateur de site statique créé dans le collectif Katzele. Il nous demande la documentation, qui n’existe pas encore… et surtout il demande de la vrai documentation, pas une liste de commandes d’installation. Il voulait du français, avec des phrases qui mentionne l’intérêt et l’objectif de l’outil, ce qui est rare dans le monde de l’informatique. Et discussion avec Elsa, à propos de cette documentation limitée qui sert assez peu, peut-être seulement aux personnes qui utilisent ce code. Exemple du manuel avec la commande man sed. Frustration au moment d’apprendre à utiliser la commande car cela demande, malgré l’existence du
manuel, de devoir aller sur internet pour demander à un moteur de recherche comment fonctionne la commande. Sur le site du collectif Suckless, dans la rubrique sur “les outils qu’ils jugent ne pas être bien”, ils ont mis infotech, où ils expliquent l’existence d’une autre commande, info sed, qui donne une toute autre version de la présentation de la commande avec une introduction, des parties… personne ne m’avait dit que cette commande info sed existait. Peut-être est-ce la manifestation d’une culture qui s’est perdue avec le temps ?
Dernière chose : chaîne youtube 3blue1brown qui parle de maths, et la personne opte pour le même processus pédagogique et qui se focalise sur comment cette question a-t-elle pu se poser à cette personne à ce moment.
Hypothèse : peut-être est-il possible de faire une doc de meilleure qualité qui permettrait, adossée à des outils conviviaux, de réduire l’écart entre ce que signifie l’outil à la personne qui le conçoit et à la personne qui l’utilise ?
Test de cette manière de documenter le générateur de site statique Francium. Une grande partie du makefile. Pas totalement satisfait du résultat, il faudra sûrement relire et reprendre le tout.
Intervention de Vincent Buard
Entourés d’objets dont nous ne comprenons ni ne connaissons le fonctionnement.
Leur production nécessite une haute spécialisation (éducation supérieure, chaîne de prod sophistiquée…).
Pourquoi l’informatique est-elle un problème particulier ?
Modèle OSI (open system interconnection) représente ce qui se passe en informatique. Les utilisateurs sont dans la dernière et septième couche, celle de l'”application”.
Question de la division du travail : point de vue de Jacques Rancière (le philosophe et ses pauvres) avec la théorie des clercs et des pauvres, la classe qui a du temps contre celle qui n’en a pas.
En informatique, différentes classes : utilisateurs, analystes, développeurs et décideurs. Le chemin classique était : un besoin émerge -> celui-ci est qualifié et uniformisé par les analystes -> les choix techniques sont faits par des décideurs -> le travail est accompli par les développeurs -> le produit livré à l’utilisateur. Rôle important de l’analyste qui a presque disparu et qui pourrait être revalorisé. Ce travail est toujours fait mais de manière désordonné. Les gens de Framasoft sont pas mal dans cette mouvance là.
Axiologie : étude des principes moraux, une pratique qui n’apparaît presque plus.
Fin années 80, arrivée de Microsoft, on escamote les enjeux axiologiques par intérêt commercial : moins les utilisateurs comprennent ce qu’il se passe, mieux on leur vend le produit.
Analyse marxiste : critique de la valeur.
Beaucoup de bazar dans le monde de l’informatique, ce qui permet la création de poches de résistance, souvent locales, pour faire des choses qui rapprochent les gens.
Beaucoup de décisions sont prises par défaut, peu de réflexion : une technologie est à la mode donc on prend celle-là, ou alors on est limité par un budget, ou bien on s’appuie sur des compétences particulières d’une personne en particulier. Exemple du champ de l’IA : on a une solution nécessitant des forces de calcul de plus en plus grandes, au détriment de types de recherches qui pourraient trouver d’autres solutions. Avec en plus pour l’IA des résultats moins spectaculaires que l’on fait croire aux gens.
Donc cela pose des problématiques sur la durabilité des projets, la pérennité des données (les formats changent sans cesse), les évolutions impossible car les compétences ne sont plus là… les questions axiologiques ne sont plus posées que sous forme de vagues recommandations et de ‘bonnes pratiques’.
Des pistes :
Plus polémique, pour ouvrir la discussion : les machines ne sont pas des objets mais des systèmes, elle ne pensent pas, le code n’est pas non plus de la poésie car le code n’a pas de sémantique mais seulement une syntaxe.
Le quantified-self c’est l’exemple de l’applewatch : l’individu devient une extension de la machine.
La question de la connaissance technique n’est pas centrale : on peut avoir des outils propriétaires et fermés mais qui permettent l’émancipation. A qui profitent les gains de productivité ? Est-ce que les disruptions sont-elles vraiment des innovations, ou seulement une “révolution des moyens de production” (concept marxiste) de plus ?
Citation d’Orwell (traduite en français): “Échanger une orthodoxie pour un autre n’est pas forcément un progrès. L’ennemi c’est l’esprit transformé en gramophone (on dira en lecteur MP3 ajd), peu importe que l’on soit d’accord avec le morceau qui est joué à un moment donné.”
Échanges croisés avec le groupe Écosophie du numérique
Anne : Les modalités d’échanges, les jalons posés pour l’élaboration de ponts, posent la question du langage, de la pédagogie et du temps d’échange.
Baptiste : Arthur dit que Régis voulait une doc avec de vraies phrases, problème qui est proposé aussi par Marc avec Firefox. Il est compliqué de rentrer dans un code. Mais il existe des bonnes pratiques, des recommandations et la programmation lettrée de de Donald Knuth (voir la biblio pour plus d’explications). Cette pratique est utilisée par la communauté LateX, la communauté Caml, qui composent de vrais textes pour leur doc. Il existe donc de la documentation bien faite, avec différents niveaux de documentation.
Marc : Complexité intrinsèque au problème qu’on essaie de résoudre. On a beau
écrire des textes lisibles, si au lieu d’écrire sur des abstractions on reprend chaque instances de ces abstractions que l’on réécrit, on se retrouve avec des encyclopédies peu porteuses de savoir, et de plus elles seront trop longues à lire. Je m’intéresse beaucoup au langage fonctionnel, avec la question “y a t-il vraiment une bonne manière d’écrire du code ?”, avec le fonctionnel qui s’est imposé petit à petit. Approcher un texte on le fait toujours avec un fond culturel. Le débat dans la réappropriation des outils
numériques et le combat dans l’opacité c’est d’avoir une approche autour de la complexité, se poser la question du contrôle de cette complexité : interroger le besoin, un logiciel pas utile ne devrait pas exister. Les analystes remplacés par des chefferies de projet est un problème. Si on passe autant de temps à définir des outils très complexe, c’est que peut-être on en avait pas besoin.
Ne pas oublier qu’une partie de la communauté libre s’est mise à développer des outils qui ont les même problèmes que ceux produits par les GAFAM, mais qu’il reste aussi des communautés attachées à ce “minimalisme”, avec une vraie valeur complexe. La production d’outil est un médium porteur d’une façon de penser, comme l’avait dit Marcello lors de la première séance. Il faut réapprendre aux gens à utiliser des outils simples, et cela passe par l’éducation. Il y a une volonté d’incapaciter les gens pour créer du service. Il est nécessaire de pénétrer la scolarisation avec des bases de shell par exemple.
Vincent : Dans pratiquement tous les projets que j’ai suivi, les utilisateurs n’étaient pas intéressés, accablés déjà par de l’administratif et le reste de leur travail.
Arthur : Pose la question de l’école, de l’enseignement, ce que l’on souhaite transmettre. A un moment, dans “La convivialité”, Illich dit qu’un outil complexe n’est pas forcément pas convivial, et un outil simple n’est pas forcément convivial. Exemple des réseaux fluviaux pour les ressources, qui étaient compliqués, mais très conviviaux. Par contre plus tard, il note plusieurs fois la complexité comme un inconvénient des outils. Donc difficile de savoir ce qu’il en pensait. Il y a un avantage de cette complexité qui se doit d’être contrôlée et non subie. Parallèle à faire avec la sobriété, le fait de se rendre volontairement plus sobre permet de se redécouvrir une forme de liberté dans cette contrainte que l’on s’impose à nous même. En voulant se contraindre à des outils techniquement simples permet de revaloriser là où la complexité est nécessaire.
Anne : Je fais partie des chercheuses/chercheurs, qui est une communauté à ne pas généraliser. Besoin du démontage et de la compréhension comme un détour intéressant dans le processus de recherche, qui pourrait être vu comme une perte de temps mais également comme des formes d’investigations intellectuelles qui font partie du travail de recherche, et auxquelles il est intéressant de s’atteler.
Elsa : Parcours spécial des certains chercheurs qui on ce désir là. Donc peut-être il est possible de montrer, à travers différentes portes d’entrées pour chaque chercheurs, l’intérêt que celui-ci peut gagner dans ses travaux de recherche en se posant des questions relatives à ses outils numériques.
Vincent : Ce qui ramène à l’importance du métier d’analyste.
Baptiste : l’ingénieur se doit être capable de faire des choses aussi simplifiables que possible.
Marc : Simplement se parler entre l’utilisateur et le développeur existe et permet de maintenir toute cette contre-culture. Donc est-ce vraiment une question d’informatique ? Ce n’est pas le numérique qui pose problème, c’est partout pareil, de complexité à travers le management… Pourquoi ne pas miser sur l’éducation ? Beaucoup de personnes, une fois que l’on démystifie la chose, parviennent à comprendre l’algorithmie par exemple.
Vincent : Attention, l’analyste n’est pas une personne mais une fonction, une fonction que l’on a fait disparaître. A un moment on doit déléguer le pouvoir de décider à quelqu’un. La culture de l’outil est un vecteur d’émancipation, et ça je suis tout à fait d’accord.
Présentation en conclusion de la liste de diffusion renater ecosophie du numérique.
Bibliographie et sitographie
Richard Stallman : programmeur et militant du logiciel libre. Créateur de la licence publique GNU.
plan9 : système d’exploitation expérimental développé par Bell Labs.
collectif Katzele : collectif de réflexions et d’expérimentations autour des pratiques du numérique dont font parti notamment Marc et Arthur.
collectif suckless : se définit comme une “software community of programmers working on projects with a focus on minimalism, simplicity, clarity, and frugality”.
3blue1brown : chaîne youtube de vidéos illustrant des concepts mathématiques de niveau universitaire, avec une approche visuelle caractéristique.
[Hubert-Félix Thiéfaine](https://fr.wikipedia.org/wiki/Hubert-F%C3%A9lix_Thi%C3%A9faine); Alligator 427 : chanson du chanteur français Hubert-Félix Thiéfaine sortie en 1979 inspirée “par sa peur du cancer et qui évoque les centrales nucléaires”.
Jacques Rancière : philosophe français.
Framasoft : réseau d’éducation populaire consacré principalement au logiciel libre.
Donald Knuth : informaticien et mathématicien américain, préconnisant une approche de la programmation lettrée
LateX : système de composition de documents.
Caml: langage de programmation généraliste conçu pour la sécurité et la fiabilité des programmes.
Conférence sur la motivation des communautés logicelles : [lien]
(https://replay.jres.org/w/hnmYK54GxaQPxgJkxBH4ND)