Keynote Touraine Tech 2023 : Pourquoi ?

2023-03-30

Cette conférence a été donnée le 19 janvier 2023 à Tours dans le cadre Touraine Tech.
Le texte est ma base de travail et ne reprend pas les nombreuses improvisations et digressions inhérentes à chaque One Ploum Show.

Vidéo de la conférence (50 minutes)

Bonjour. Cela me fait plaisir de vous rencontrer dans cette école polytechnique de Tours, car je suis moi-même issu d’une école polytechnique où j’enseigne et travaille. Le terme « Polytechnique » est magnifique : plusieurs technologies, plusieurs domaines. Chez nous, à Louvain, nous avons le département de mécanique,le département d’électricité, de chimie, de construction, quelques autres et enfin le département d’informatique.

Lorsqu’on a étudié en polytechnique, on devient un ingénieur. Il m’a fallu des années pour articuler la différence entre un scientifique et un ingénieur. Mais au fond, c’est très simple : le scientifique cherche à comprendre, à découvrir les lois de la nature. L’ingénieur cherche à contourner les lois ainsi découvertes. Le scientifique dit « cette feuille de papier tombe ! », l’ingénieur la plie en avion et réponds « pas toujours ». L’ingénieur produit donc des miracles : malgré la gravité, il fait voler des avions de plusieurs centaines de tonnes. Il arrive à construire des bâtiments, des ponts qui enjambent des gouffres. Produire des matériaux capables de résister à une rentrée dans l’atmosphère à haute vitesse. Ou d’inventer un procédé pour que la bière fasse psshhh lorsqu’on décapsule la canette. J’ai eu un professeur qui a fait fortune avec un tel procédé. Les ingénieurs (et pas seulement ceux qui ont le diplôme, je parle aussi de ceux qui le sont par expérience) prennent donc des lois immuables de la nature comme la gravité, la résistance, la mécanique vibratoire, l’électricité et ils assemblent le tout pour en faire des avions, des ponts, des sous-marins, des satellites ou des tranches de jambon qui se conservent au frigo. L’ingénieur est donc un rebelle, il cherche le progrès, à changer le monde.

À l’opposé, il y’a une catégorie de personnes qui prennent des inventions humaines et tentent d’en faire des lois naturelles, de se convaincre qu’on ne peut pas les dépasser. Cela s’appelle la théologie. C’est exactement l’inverse de l’ingénieur : faire croire que des écrits produits par des humains morts depuis longtemps ne pourront pas être dépassés ni améliorés.

Dans les facultés polytechniques, on trouve rarement un département de théologie.

Par contre, on a désormais immanquablement un département d’informatique. Et quelles sont les lois de la nature qui y sont utilisées ? Une seule : faire bouger un électron le plus vite possible. On y arrive d’ailleurs tellement bien que ce n’est plus vraiment un problème. On pourrait arguer que certains problèmes algorithmiques relèvent des lois de la nature, mais rares sont les ingénieurs en informatique qui s’y confrontent tous les jours.

La réalité est que l’informatique est désormais réduite à prendre le travail de personnes qu’on ne connait pas et de les instituer en lois incontournables puis de tenter de construire par-dessus sans jamais, au grand jamais, tenter de les contourner et les remettre en question. L’informatique n’est plus de l’ingénierie, c’est devenu de la théologie. Le travail de l’informaticien est une sorte de puzzle intellectuel comparable à ce que font les rabbis lorsqu’ils interprètent la Torah. L’informaticien n’est plus un rebelle progressiste, mais un conservateur au service de l’immobilisme.

Si vous travaillez dans l’informatique, il y’a de fortes chances que votre mission réelle puisse se résumer à « afficher sur l’écran d’un client les chiffres et les lettres qu’il souhaite y voir ». D’accord, il y’a parfois des images et du son. Mais que ce soit sur Youtube ou Soundclound, l’interface première pour accéder à une vidéo, une image ou un son reste le texte. Imaginez Spotify ou Netflix sans aucun texte ? Inutilisable. Sans image ? Peut-être un poil plus rébarbatif, mais c’est tout. Une fois maitrisés la compression et le transfert des sons et images d’un ordinateur à l’autre, le seul travail reste donc le texte. D’ailleurs, que ce soit dans un éditeur de code, un traitement de texte ou un client email, force est de constater que nous passons l’essentiel de notre temps à frapper des touches pour écrire du texte. Et que lire ou réfléchir est rarement perçu comme un véritable travail. D’ailleurs, si on s’arrêtait pour réfléchir, on serait probablement effrayé. Surpris. On ne pourrait s’empêcher d’articuler à voix haute cette phrase terrible, hantise de tout maniaque de la productivité : « Mais c’est quoi ce bordel ? » voire, bien pire, ce simple mot, honni, banni du vocabulaire de l’immense majorité des cerveaux de la startup nation : « pourquoi ? »

C’est vrai ça, pourquoi ?

Réponse typique : parce que c’est comme ça, parce que tout le monde fait comme ça, parce qu’on a toujours fait comme ça, parce qu’on te dit de faire comme ça et tu ne vas pas changer le monde.

Et bien si, justement ! On change le monde. On doit changer le monde. On ne peut que changer le monde. Alors autant réfléchir dans quel sens on veut le faire évoluer.

Depuis les années 80, on sait échanger des messages entre ordinateurs avec l’email, on sait échanger des fichiers avec FTP, on sait discuter et s’engueuler publiquement sur Usenet. Le seul truc encore difficile était de savoir où trouver l’information. Qu’à cela ne tienne, en 91, un Anglais et un Belge travaillant en Suisse dans un bureau situé du côté français de la frontière inventent… le web ! Ça commence comme une blague, non ?

Le but du web n’est, à la base, que de permettre d’accéder facilement à la documentation de la plus grosse machine jamais construite par l’homme : l’accélérateur de particules du CERN. Avec le web, on peut cliquer de page en page pour découvrir du contenu en utilisant des hyperliens. Le web n’a pas inventé la notion d’hyperliens. En fait, le concept était à l’époque sur toutes les lèvres, il y’avait même une conférence dédiée au sujet. Tim Berners Lee y a d’ailleurs présenté le web lors de l’édition de 92. Dans une petite salle au fond du couloir et dans l’indifférence générale. Personne n’a trouvé ça excitant ou intéressant.

Une fois qu’on a eu le web, on peut dire qu’on avait résolu l’essentiel des problèmes techniques permettant l’usage d’Internet. On pouvait désormais afficher n’importe quel texte sur n’importe quel ordinateur.

Le truc commence à avoir du succès et un jeune Américain très ambitieux va avoir une idée. Il travaille pour un organisme américain parastatal et programme un navigateur web : Mosaic. Il décide de quitter son job pour créer un navigateur web commercial. Afin de rendre le truc cool, il ajoute une balise image au HTML initial.

Le mec en question s’appelle Marc Andreesen et son navigateur Netscape. Tim Berners Lee est pas trop chaud pour la balise image. Il propose des alternatives. Il craint que les pages web deviennent de gros trucs flashy illisibles. Rétrospectivement, on ne peut pas vraiment lui donner tort. Mais Marc Andreesen n’en a cure. Il intègre sa propre balise image à Netscape et distribue Netscape gratuitement. Il devient millionnaire et fait la couverture de nombreux magazine.

Attendez une seconde… Il devient millionnaire en payant des gens à programmer un truc distribué gratuitement ? Tout un concept ! Devenir millionnaire en dépensant de l’argent, c’est pas mal non ?

Le secret, c’est de dépenser l’argent des autres. On prend l’argent des investisseurs, on l’utilise pour créer un truc qui ne rapporte rien, mais qui est très cool (le terme technique est « bullshit ») et on attend qu’une grosse boîte rachète le tout parce que c’est cool. Marc Andreesen invente littéralement le concept de web startup qui perd de l’argent et vaut des milliards. Le concept reste d’ailleurs aujourd’hui très populaire. Quand on y pense, toute l’économie du web est une gigantesque pyramide de Ponzi qui attend les prochains pigeons… pardon, investisseurs. Les cryptomonnaies, à côté, c’est du pipi de chat, du travail d’amateur.

Mais revenons à nos moutons : on sait désormais tout faire sur Internet. Il faut juste se former un minimum. Mais le marketing va s’emparer de l’histoire pour le complexifier à outrance. Tout en prétendant le rendre plus simple. D’abord il va y avoir Java. Puis Javascript qui est, de l’aveu de son créateur, un truc bâclé créé sur un coin de table pour faire une démo. Le truc est tellement infâme que peu de monde le comprend. Du coup, on rajoute une surcouche qu’on appelle AJAX. Et comme Ajax est trop compliqué, on crée des frameworks au-dessus de cela. Et comme chaque framework est compliqué, on fait des frameworks de frameworks. La philosophie est simple : chaque fois qu’une andouille quelconque veut afficher du texte sur l’écran d’un client, elle se rend compte que c’est compliqué. Alors elle décide d’écrire une abstraction qui simplifie le tout. Et, évidemment, son abstraction se confronte rapidement au fait que la réalité est complexe. Soit elle abandonne son idée, soit elle la complexifie jusqu’au point où une autre andouille la trouve trop compliquée. Et le cycle recommence.

En prétendant simplifier, nous ne faisons que complexifier. Et il y’a une raison à cela : la complexité est un argument marketing. Elle donne une illusion de valeur, de la maitrise d’un savoir obscure accessible uniquement aux initiés. C’est le principe de l’occultisme et du mysticisme voire de l’astrologie : prétendre que tout est très compliqué et qu’il faut être initié. C’est une arnaque vieille comme le monde.

Le problème de la complexité, outre son coût et le fait qu’elle entraine une dépendance au fournisseur, un vendor lock-in, est qu’elle force à un simplisme paradoxal. Je m’explique : le problème semble conceptuellement simple. Simpliste même. Et pourtant incroyablement difficile à implémenter, nécessitant des experts pour les détails. La réalité c’est que tout est facile à implémenter dès lors que l’on sait précisément ce qu’on veut faire. Définir ce qu’on veut est incroyablement complexe. C’est se demander « pourquoi ? ». Intuitivement, on rêve tous d’une maison de plain-pied à deux étages. Ou ce groupe de clients qui avaient bossé à cinq pendant plusieurs semaines pour me fournir des specs très précises. Une liste de « requirements ». Qui était incohérent entre eux.

Que voulons-nous réellement ? Et surtout, pourquoi le voulons-nous ?

Masquer les choix sous la complexité permet de nier leur existence. De faire croire qu’il n’y a pas de choix. Et de permettre à d’autres de faire des choix. Pourquoi avons-nous eu Java et Javascript ? Car Netscape voulait rendre Microsoft obsolète et devenir calife à la place du calife. Pas pour être utile à l’utilisateur. Cacher les choix fondamentaux permet d’étouffer le citoyen sous un sentiment d’inexorabilité. De le transformer en utilisateur, de lui faire perdre son statut d’acteur de sa propre vie.

Que voulons-nous faire ? Afficher du texte sur un écran. Pourquoi ?

Chaque mise à jour, chaque nouveauté n’est que l’assertion d’une autorité arbitraire. On ne rend pas un système plus facile en le simplifiant. On le rend plus facile en le rendant apprenable. Qui d’entre vous sait conduire une voiture manuelle ? C’est pourtant hyper complexe quand on y pense. Et hyper dangereux. Vous risquez votre vie au moindre écart. Pourtant, vous l’avez appris en quelques semaines, quelques mois. Et vous vous améliorez d’année en année.

L’informatique est compliquée ? Non, elle est insaisissable. Elle change tout le temps. Ça va de la mise à jour prétendument de sécurité qui introduit un nouveau bug à ce fameux nouveau design avec des nouvelles icônes. Dont vous êtes si fier. Pour l’utilisateur, c’est l’obligation de réapprendre, de s’adapter sans aucune raison. J’utilise le service Protonmail pour mes mails et mon calendrier. L’icône du mail était une enveloppe avec le haut en forme de cadenas. Le calendrier était… une page de calendrier. Sur mon téléphone eink en noir et blanc, ça passait nickel. Y’avait qu’une seule couleur de toute façon. Puis est venu un redesign complet. Pour quelle raison ? Aucune idée. Le mail est désormais un rectangle dans un dégradé de mauve avec un creux figurant vaguement une enveloppe. Le calendrier est le même rectangle sans le creux. Sur mon écran eink, ces icônes sont des pâtés sans aucune signification.

Les utilisateurs ont vite compris ce que les geeks ne voulaient pas admettre : votre vie n’est qu’à un upgrade de devenir merdique. Du coup, le réflexe le plus rationnel est de ne pas faire les mises à jour. Sérieusement, vous connaissez un seul utilisateur qui se dit « Génial ! Un nouveau design pour cette application que j’utilise depuis des années ! » ?

Comment l’industrie a-t-elle réagi ? En se posant la question de savoir pourquoi l’utilisateur ne fait pas ses mises à jour ? Non, en forçant ces mises à jour. En rendant la vie de l’utilisateur encore plus misérable à travers des culpabilisations. À travers des notifications incessantes. En lui prétendant que c’est pour sa sécurité. Vous savez quoi ? L’utilisateur n’est jamais en danger si son ordinateur n’est que rarement connecté. La plupart des risques sont liés à la complexité imposée à l’utilisateur. Si son navigateur se contentait d’afficher le texte qu’il veut voir, il ne risquerait rien. Il ne serait pas forcé de racheter un nouvel engin à l’empreinte écologique crapuleuse. Sans compter que l’immense majorité des menaces, comme les arnaques, ne peuvent pas être résolues par des mises à jour.

Ma liseuse fonctionne très bien. Elle n’est jamais en ligne. J’y charge des epubs par USB. L’autre jour, j’ai activé par erreur le wifi. Elle m’a immédiatement annoncé une mise à jour importante. En consultant le changelog détaillé, j’ai découvert que cette mise à jour ajoutait une nouvelle fonctionnalité : des lectures suggérées de la boutique Vivlio sur la page d’accueil. La mise à jour m’aurait donc permis d’avoir… des publicités sur mon engin. Des publicités sur cet écran que je prends avec moi dans mon lit…

Chaque mise à jour rend la vie de l’utilisateur encore plus misérable dans le seul but de faire bander le responsable marketing qui se paluche devant le nombre de "clics" (encore du texte affiché sur un écran) ou de faire mouiller la responsable du rebranding qui trouve trop super de bosser avec une équipe de designers sous ecstasy.

Las d’être exploités, certains utilisateurs se réfugient dans la théorie du complot. Vous avez déjà vu 4chan, le site où naissent la plupart de ces théories ? Du pur HTML sans artifice. D’autres, comme moi, se réfugient dans d’obscures niches comme Gemini. L’industrie prétend alors se tourner vers le minimalisme. Comme Medium par exemple ? Vous avez déjà vu le code source d’une page Medium ? Faites-le et vous supprimerez immédiatement votre compte si vous en avez un. C’est ce que j’appelle le "paradoxe Medium" : tout projet minimaliste va soit disparaitre, soit grandir assez pour voir apparaitre une surcouche alternative permettant un accès minimaliste… au service minimaliste (scribe.rip pour Medium, Nitter pour Twitter, Teddit pour Reddit, etc.). D’ailleurs, vous connaissez beaucoup de monde qui surfe sur le web sans différents adblocks ? On est désormais habitué à une couche de complexité qui sert à contourner les couches de complexités que nous avons nous-mêmes implémentées.

L’industrie du web est une gigantesque pyramide de Ponzi qui tente d’exploiter jusqu’au trognon des utilisateurs contrôlés, humiliés et traités de crétins. Mais le web est devenu trop important. Il est devenu un pilier sociétal. Fuir le bateau n’est pas une option. Nous sommes à un moment crucial pour l’histoire de l’humanité. Et pour sauver l’humanité, il faut sauver le web. Revenir aux fondamentaux. Afficher du texte sur l’écran d’un citoyen.

Concervoir des systèmes qui s’apprennent. Et donc ne changent pas. Respecter l’humain. Et donc lui donner le texte dont il a besoin sans l’espionner. Sans l’assommer. Bordel, je veux juste commander un hamburger, pas installer votre app moisie.

L’année passée, je ne suis posé la question pour mon propre blog. Il m’a fallu beaucoup de temps pour arriver à une simple conclusion. Pour répondre à la question « pourquoi ? ». Et la réponse était : pour être lu ! J’ai réécrit tout mon blog sous forme de pages statiques que je génère avec mon propre script Python. C’est très simple en fait lorsqu’on sait ce qu’on veut. La page d’accueil de mon blog, sous Wordpress, faisait presque 1 Mo. Elle fait désormais 5 ko. J’ai retiré toutes les images qui n’aident pas à la lecture. Je pense que les réseaux sociaux sont un obstacle à la lecture. Ils nous déconcentrent, nous manipulent. Du coup, j’ai supprimé tous mes comptes exceptés Mastodon.

Est-ce que tenter d’augmenter le nombre de followers sur un réseau m’aide à être lu ? Non. Ce nombre n’aide rien. Il est de toute façon faux, fictif. Supprimés les concours de followers. En tout et pour tout, en plus du HTML, j’ai ajouté 40 lignes de CSS. Pas une de plus. Chacune n’a été ajoutée que si elle pouvait aider la lecture de mes écrits sans a priori esthétique.

On pourrait croire que ça fait un blog un peu rétro, genre brutaliste. Pourtant, dès les premiers jours, j’ai reçu plusieurs demandes pour mon « template ». Y’a 40 lignes de CSS dont la moitié servent juste au menu au-dessus de chaque page !

Je me suis aussi cassé la tête sur l’idée d’une pagination pour naviguer entre les articles, sur un moteur de recherche. Mais j’affiche désormais simplement la liste de tous mes billets sur une page. Aussi simple que cela. Ne me dites pas que ça ne « scale pas » : y’en a presque 900 ! Le moteur de recherche ? Un simple ctrl+f dans votre navigateur. Encore un truc apprenable qui est ignoré, car la complexité le rend inutilisable sur la plupart des sites « modernes ».

La conséquence la plus étonnante de tout cela, c’est le nombre de lecteurs qui me contactent à propos d’anciens billets. C’est simple, rapide et ça charge instantanément même sur les mauvaises connexions. Du coup les gens me lisent. C’est tellement inhabituel de ne pas devoir attendre, de ne pas devoir se casser la tête.

J’ai un très bon laptop et pourtant, sur le web, chaque page met quelques fractions de seconde à s’afficher. À chaque page, mes bloqueurs empêchent des centaines de requêtes, évitent des mégaoctets entiers de téléchargement. Et les responsables de cet état de fait sont dans cette salle. Ils l’ont implémenté sans demander « pourquoi ? ».

Alors je vous le demande. Non plus comme un confrère ingénieur, mais comme un citoyen du web qui en a assez de devoir considérer son propre navigateur comme un territoire hostile. Apprenez à demander « pourquoi ? ». Puis à répondre « non ». Plutôt que de réfléchir sur le prochain framework JavaScript ou l’utilitaire de tracking de statistiques et le surdimensionnement du data center pour héberger un elasticsearch clustérisé à redondance asynchrone dans des containers virtualisés à travers un cloud propriétaire à charge répartie monitoré depuis une app custom nodejs qui achète automatiquement des certificats d’offset CO2 pour obtenir le label de datacenter durable, le tout à travers des transactions byzantines sur une blockchain permissioned qui trade de manière décentralisée sur le marché parallèle.

Bon, en fait, les blockchains permissioned, c’est une arnaque sémantique. Cela veut juste dire « base de données centralisée ». Les offsets carbone sont une vasque escroquerie. Ce sont les indulgences de notre siècle enrobées d’un capitalisme foncièrement malhonnête (si vous achetez des offsets carbone, vous pouvez arrêter, vous êtes en train d’enrichir des escrocs tout en encourageant un système qui a démontré faire pire que mieux). Et votre application distribuée va de toute façon se casser un jour la gueule le jour où une mise à jour sera faite dans un obscur repository github dont vous ignorez l’existence, entrainant une réaction en chaine démontrant que votre app sans single point of failure n’était pas sans single point of failure que ça finalement.

Je sais, le client est roi. Il faut payer les factures. À partir d’un certain montant, on obéit. Et à partir d’un autre, on prétend aimer ça : « Oh oui, c’est génial, nous rêvons de développer un showroom virtuel pour vos nouveaux SUVs. Un véritable challenge ! Un peu comme ce système de ciblage publicitaire pour adolescents que nous avons développé pour Philipp Morris, n’est-ce pas Brenda ? »

L’important n’est pas de devenir parfait ni puriste. Nous sommes tous pleins de contradictions. L’important est d’arrêter de se mentir, de justifier l’injustifiable. De savoir pourquoi on fait les choses. Mettre le nez de vos commanditaires dans leur propre caca en leur posant la question : « pourquoi ? ». Et, sur le web, de revenir à l’essentiel : afficher du texte.

Cette réflexion m’a amené à écrire avec… une machine mécanique. À publier en utilisant une technologie complètement libre, sans monopole, sans app store et avec une empreinte écologique non négligeable, mais bien moindre que l’informatique : le livre. Un livre qui sera toujours lisible, échangeable, copiable quand toutes les lignes de code que nous avons produit collectivement auront depuis longtemps été oubliées.

Écrire à la machine et lire des livres papier sont des actes rebelles. Mais j’aime trop l’informatique pour m’en passer. Je veux qu’elle redevienne rebelle. Qu’elle redemande « pourquoi ? ». Je vous demande de m’aider. Je vous confie cette mission : l’informatique doit cesser d’être une religion prônant l’obéissance, la soumission, l’humiliation, la consommation. Elle doit redevenir une science. Un art.

Une liberté…

Photo par Adrien Gacon sur le Flickr Touraine Tech

Vidéo originale sur Youtube

----

Email:

gemini24@ploum.eu

permalinks:

gemini://ploum.net/2023-03-30-tnt23-pourquoi.gmi

https://ploum.net/2023-03-30-tnt23-pourquoi.html