La supercherie de l’universalité du web
🇫🇷 – Mercredi 30 octobre 2024
Mots clés: #web, #internet, #navigateur, #ViePrivée, #merdification
Le web a été totalement travesti ces dernières années, voire décennies. De plus en plus de merdification, de monopoles, de silotages et de nivellement par le bas. Quand j'étais gamin, je voyais le web – au sens large – comme quelque chose d'universel. J'ai écrit mes premières lignes de code pour des pages web via le Site du Zéro. Je me rends compte qu'en l'état actuel des choses, cette universalité est une supercherie, une fumisterie grotesque. Ce billet de blog a un gros côté “Team Vieux Cons”, je préviens.
Comment c'était "avant" ?
Apparemment il y a des gens qui aiment en mettre d'autres dans des cases, et je serais alors un millennial, un digital native ou un spécimen de la génération Y, en gros je suis né au début des années 1990. De fait, on ne parlait pas encore de “fracture numérique”, l'informatique domestique n'était pas encore démocratisée (pas autant qu'aujourd'hui), et quand on habitait en zone rurale l'ADSL n'était pas encore mis en place, on avait droit à des débits de 56kb/s au mieux avant qu'il n'arrive avec sa vingtaine de Mb/s. Bref, je n'ai pas connu la naissance de l'informatique, ni celle du web, je ne prétends pas la connaître non plus, mais j'ai vu les choses s'installer tranquillement.
Avant, du côté des navigateurs web, il y avait Netscape, Internet Explorer, et d'autres trucs aussi que je n'ai pas connus. Puis Opera, Firefox et Safari. Chrome ne sera arrivé que bien plus tard vers 2008. Edge n'existait pas, ni Brave, et on ne parlait pas de Chromium.
Les pages HTML étaient simples. Moches selon les critères de nos jours, mais se composaient de XHTML et de CSS ; le HTML 5 et le CSS 3 de mémoire étaient arrivés dans les années 2010. Par contre, effectivement, pour certaines choses comme l'audio et la vidéo, on avait du Silverlight et du Flash. En dehors de ça, on savait faire simple. On était obligés de faire simple. Les débits, toujours selon les critères de nos jours, étaient médiocres. Les ordinateurs parfois n'avaient pas plus de 2 ou 3 Go de RAM (et bien moins avant). Les pages HTML devaient être légères car sinon mettaient trop de temps à être chargées, et les dépassements de forfaits étaient très vite lourdement facturés. Pas de DRM, pas ou très peu de JavaScript (qu'on désactivait à l'époque pour gagner du temps tout comme l'affichage des images), pas ou peu de publicité (mais vite arrivée en force ensuite), pas de tracking. Bref, du web documentaire que l'on pouvait considérer d'une certaine façon comme épuré, voire pur. Et plus tard, quand on voulait commencer à faire des pages “réactives”, avec quelques requêtes, on faisait du AJAX. Du JavaScript asynchrone, qui consommait du XML ou plus tard du JSON, et ce, au travers de XMLHttpRequest. On se contentait aussi des faire des requêtes de formulaires simples, allant taper directement le serveur qui nous renvoyait ensuite tout ou partie de la page visité.
Les premières bibliothèques comme MooTools ou jQuery ont commencé à venir, et le merdier aussi.
Les technologies de développement
On a oublié de faire simple. Et on a cherché à tordre le HTML et le CSS dans tous les sens, à totalement travestir le truc. On est limité, cloitré au navigateur web, mais on va chercher à faire des sites web de plus en plus complexes, et même des Progressive Web Apps.
Le JavaScript est devenu incontournable et indispensable, quand bien même ce langage de programmation est exécrable et trop permissif. Alors certains diront que l'on a TypeScript aussi, mais ça reste finalement la même merde qui sera générée / transpilée et exploitée par la suite. On a juste changé l'emballage.
On avait MooTools. Puis jQuery. On avait même des applets Java. Et ensuite AngularJS. Puis Angular. Polymer aussi, qui aussi a rejoint AngularJS dans le Google graveyard, et Bootstrap. Et enfin ReactJS qui n'est plus maintenu au profit de React. Et on a même Flutter qui s'y met. Certes, je mélange les torchons sales et les serviettes trouées, mais quand même. Le but est le même : faire des pages web affichées par son navigateur web. Mais on a voulu faire des ensembles de pages, qu'on appelle “sites”. Et on a voulu ajouter d'autres logiques dedans et parodier ou plagier gauchement les applications mobiles, en appelant ça “applis web”. Les pages sont de plus en plus complexes. Le DOM, que l'on pouvait facilement fouiller avant, finalement est remplacé par le shadow DOM de plus en plus pénible à investiguer. On va avoir des évènements JavaScript en pagaille, avec des chargements de pages ici ou là, partiels ou non, et une tonne de fichiers JS que l'on va tirer depuis les pages via des CDN, sans même forcément s'assurer qu'ils n'aient pas été compromis. Des requêtes réseaux en pagaille pour aller chercher des ressources devenues indispensables pour faire fonctionner des foutues pages web totalement travesties.
Avant, si on voulait travailler sur un projet web, ou a minima bricoler un truc, on s'en sortait très bien avec les bases du HTML et du CSS, voire du JavaScript. Maintenant, si on ne connait pas la dernière stack à la mode, qui en plus va utiliser des préprocesseurs ou extensions CSS comme Sass ou Less, et le dernier framework du moment comme Vue.js ou Svelte ou un langage de programmation tout nouveau portée par la hype comme Elm, on ne s'en sort plus. Les technologies web d’aujourd’hui sont déjà du code legacy, pas besoin d'attendre demain pour les voir dépréciées et vite remplacées. Tout le monde lave plus blanc que blanc, mais au fond ça reste le trio HTML + CSS + JS. Ça reste de la merde, seule la couleur change, pas l'odeur.
Pire encore, on augmente les surfaces d'attaque et les probabilités d'avoir des problèmes en dépendant d'outils desquels on est devenu trop dépendant. Il a fallu un bad buzz pour que Facebook remplace la licence BSD+Patent de React pour passer à MIT. Avec Web Assembly on va injecter du code binaire dans les projets web, faisant que l'on pourra encore plus difficilement savoir ce qu'il s'y passe. Si on prend des outils clés en main comme WordPress, on se prend souvent des alertes à cause de plugins ayant des failles de sécurité, sans parler du psychodrame actuel entre le fondateur de WordPress et WP Engine. Idem pour les usines à gaz que sont les CMS comme Drupal et PrestaShop avec de temps en temps des alertes critiques. On avait même polyfill.js qui avait été compromis.
Et côté backend et au delà c'est pas glorieux. Node.js avec son API standard incapable nécessitant pléthore de dépendances tierces plus à jour, sabotées ou sujettes à des failles de sécurité, J2EE, Ruby on Rails, PHP et son PrehHistoric Programming, Symfony, Laravel, Django, ASP.net, ... On a une tétrachiée d'outils pour faire du backend et plus encore, et qui font plus ou moins la même chose. Et certains organismes de formation sans scrupules iront former des jeunes ou des personnes en reconversion à l'arrache, vider leurs porte-monnaies, les formant sans sérieux, et les balancer sur le marché du travail dans des marchés saturés.
Certains ont tenté de faire des applications mobiles web avec un OS dédié, comme Firefox OS, mais le projet a capoté. Peut-être pas pour un mal.
Si je prends une échelle de temps relative, forcément plus courte mais tout de même, du côté du développement d'applications mobiles (natives j'entends, les seules qui vaillent évidement), on a eu moins de changements et de risques de se créer de la dette technique. Du côté du développement d'apps Android, on est juste passé de Java à Kotlin, progressivement. Et Java a été officiellement destitué que tout récemment. Même chose pour iOS, on est passé de Objective-C à Swift, mais en soit, l'ancien langage de programmation n'est pas déprécié pour autant. On garde UIKit et SwiftUI pour la définition des interfaces graphiques, rien de déprécié là aussi. Un peu moins vrai pour Android avec Jetpack Compose qui remplace les layouts XML. Bref, bien moins de changements structurants, de dettes techniques et d'outils dépréciés, car les choses sont davantage normalisées et lisibles. On n'a pas plusieurs crémeries qui vont tenter de vendre leur beurre en tentant de planter les autres. Pour l'embarqué, ça bouge encore moins. On a Qt, et c'est assez. Finalement personne n'a besoin d'un énième framework qui refasse ce que les autres font, mais différemment. Les tendances finiront par arriver, mais tranquillement et proprement. Bref, c'est moins le foutoir.
La merdification systématique
Je n'ai pas l'impression que le web ait beaucoup d'innovations qui vont dans le bon sens, à savoir celui du progrès plutôt que celui des intérêts privés et capitalistes. Si on regarde Web Assembly, il y a de l'idée. Avoir un code source quelconque, en tirer un binaire, et balancer ça sur les navigateurs, ok. Toutefois, comment contrôler ce qu'il s'y passe ? Comment s'assurer de la loyauté de ce binaire ? On apporte de l'opacité à un environnement qui, avant, laissait l'utilisateur le bidouiller, fouiner dedans, et voir comment les choses étaient foutues. Même chose pour le JavaScript, on en vient à intégrer sur les pages web du code propriétaire, opaque, privateur, qui est là pour surveiller, pister ou forger des empreintes numériques permettant de traquer l'utilisateur peu importe où il va. Quand on parle de logiciels, on arrive vite à la dichotomie entre les logiciels libres (au sens donné par la Free Software Foundation, le seul qui vaille) et les logiciels propriétaires. Or, on oublie vite que c'est le même problème pour le code JavaScript qu'on subit lorsque l'on surfe sur le web. Le code JavaScript est un piège, vite déloyal, vite dangereux.
Avant, modulo des animations clignotantes et des GIF horribles, les pages étaient simples. Le contenu était rapidement accessible. Maintenant, c'est une purge. On se prend déjà un bandeau pour accepter les cookies, contraignant à tous les accepter ou passer par un parcours insupportable pour choisir ceux que l'on ne veut pas, en supposant que ces choix soient respectés. À cela s'ajoutent les panneaux publicitaires, proposant tout et n'importe quoi. Et ensuite un paywall, soit en cours de lecture pour appâter l’utilisateur, soit dès l'affichage de la page pour forcer l’utilisateur à accepter tous les cookies (donc le pistage) ou à prendre un abonnement. Les champions sont les sites de presse en ligne que l'on doit plaindre si on les écoutait ; ils ont choisi délibérément de se lier pieds et poings chez Google ou Facebook, mais dès que certains comme Apple et la “gomme magique” de Safari arrivent pour dégager leurs merdes, ils se plaignent. Ils sont nés avant la honte.
Des justifications merdeuses
En discutant avec les gens au sujet du web et des technologies de développement “web”, j'entends toujours les mêmes arguments éculés.
Les DRM permettent de fournir une meilleure expérience à l'utilisateur. Non. Déjà car ici on pense surtout à des consommateurs. Et ensuite parce que ces Digital Rights Management sont des cancers pour le web libre. Zoner géographiquement, empêcher l'accès, la copie, la diffusion, c'est purement de la censure à des fins mercantiles. À quel moment on a cru bon d'accepter ces verrous numériques pour le web ?
Les technos web réduisent les coûts de développement. Si un choix technique ou technologique est justifié par un argument financier, ce choix est par définition mauvais. Les logiciels faits grâce à (ou à cause de) Electron sont les pires que je n'ai jamais pu utiliser, en terme de performances ou d'efficacité. Idem pour les machins à base de PhoneGap, Ionic ou Cordova. Même la suite Teams de Microsoft passant de Electron à WebView2 est une purge à utiliser. Ça bouffe de la RAM, ça glitch, ça refresh mal, l'accessibilité est dégueulasse, ça ne reprend pas les codes plus sains des logiciels natifs.
Ça donne une expérience unifiée pour l'utilisateur. Non. Embarquer des web views dans des applications mobiles est une connerie. On augmente la surface d'attaque, on consomme davantage de bande passante, on se retrouve avec des failles de sécurité en plus tant dans le code web qu'à cause du navigateur faisant le rendu, l’accessibilité est souvent foirée, et on se retrouve parfois avec des régressions identifiées tardivement à cause d'effets de bords indésirés. On modifie la page web pour changer une fonctionnalité, sauf que c'est tracé nulle part côté application et l’utilisateur ne se rend compte de rien. Sans oublier qu'on zappe parfois la mise en cache des données et le mode hors-ligne. Les web views sont un excellent moyen de déposséder l'utilisateur ; suffit de ne pas faire de cache et de changer la page ou la rediriger, et c'est terminé.
Le HTTPS permet d'être sécurisé. Oui, c'est vrai. Mais pour du contenu statique on n'en a pas besoin du tout. À cause du tout HTTPS, on se retrouve avec par exemple des ordinateurs “vieux”, avec des “vieux” navigateurs web, qui n'ont plus leurs certificats à jour. Donc un “vieux” iMac, qui fonctionne bien mais plus mis à jour depuis quelques années toutefois, ne pourra plus permettre à l'utilisateur de naviguer sur les internets car on aura du HTTPS partout et le navigateur web ne pourra afficher le contenu à cause de certificats révoqués ou obsolètes. TLS 1.0 et 1.1 sont obsolètes depuis 2018, donc des certificats racines ne sont plus mis à jour, donc des sites web inaccessibles. Bingo.
C'est nouveau, c'est génial. J'ai entendu ça sur le server-side rendering (SSR), un cran plus loin dans la merdification. On a des gens qui sont satisfaits d'avoir réinventé la roue : le serveur web qui va construire la vue HTML. Retour aux débuts du web. On avait le serveur qui renvoyait la page à afficher, puis on a fait des API SOAP, puis on a fait des API REST, puis des API GraphQL, et là on fait ce SSR. Et des pignoufs vendent ça comme de l'innovation, quels escrocs. Faire du développement web c'est faire de la hype driven development.
Des pétards mouillés aussi
Qui a encore entendu parler du physical web ? Ces pages et sites web qui arrivent sur nos appareils grâce à des beacons qui diffusent des signaux, notamment près des bornes publicitaires ? Un gag.
Et les progressive web apps (PWA) alors ? Un plagiat ridicule des applications mobiles. Les utilisateurs ne comprennent pas comment les installer, ce n'est pas naturel. On est toujours limité de près ou de loin par le navigateur. Ça impose d'avoir du JavaScript pour gérer la mise en cache avec le service worker. Qui, lui, impose d'être en HTTPS pour fonctionner. On pourrait s'attendre à avoir des vraies évolutions, comme des threads ? Les web workers n'y arrivent pas sérieusement. Sans compter qu'encore aujourd’hui des API accessibles par les apps mobiles ne le sont pas par les PWA, et que par essence et par définition les apps mobiles natives seront toujours en avance sur l'usage des terminaux contrairement aux PWA qui n'innoveront jamais et persisteront à corriger le retard.
Et les neutralités du net et du web ?
Un lointain souvenir. Les adresses IP des VPN sont de plus en plus sur listes noires. Si on utilise des bloqueurs de pubs les sites sont inutilisables, soit délibérément, soit par conception maladroite. Il y a de plus en plus de discrimination envers les usagers, sans parler des problématiques réseaux. Le simple fait de vouloir utiliser TOR nous prive d'une bonne part du web. Sans parler du fait que de plus en plus de sites web ne fonctionnent pas bien voire refusent de fonctionner selon les navigateurs. Ou alors vous imposeront des contrôles “anti robots” et des captchas, notamment si le site est géré par au hasard Cloudfare. Franchement, j'en ai marre de résoudre des puzzles et d'attendre qu'un système obscur me donnent l'accès à un site web. Parfois même les sessions sont suspendues car on est considéré comme autre chose qu'un humain légitime. Désolé bande de clowns, j'ai un logiciel qui bloque la publicité, le code JavaScript déloyal et qui me fait sortir ailleurs qu'en France, juste pour protéger ma vie privée. Et c'est justement à cause de vous si j'en suis là. Escrocs.
Un noyautage public
Et pendant ce temps, on remarque que Google et consorts continuent leur noyautage du web et de ces instances, ainsi que le silotage de tout ça. Les DRM sont validés par le W3C, Chromium prend presque toutes les parts de marché et applique la stratégie 3E : maintenant que la place est prise, on se débarrasse de ce qui est nuisible, comme par exemple uBlock Origin. De plus en plus de sites web se plient au règles de Google en terme de SEO. Google est en train de foutre en l'air le web ouvert et libre, et ce, délibérément avec son projet de web environement integrity. On peut aussi parler du Manifest v3 de Google encadrant les extensions des navigateurs, toujours pour favoriser les pisteurs et privilégier ce qui intéresse les géants du numérique en torpillant les projets qui préfèrent protéger les utilisateurs. Ou encore des tentatives pour dégager des formats ouverts, notamment de la part de Google avec JPEG-XL.
Le web social, boulimique, grotesque et égocentrique
Le web 2.0, le web social, a amené les gens à s'exprimer plus facilement, à créer du contenu, à en partager. Forcément les gros datavores comme Facebook maintenant Meta mais aussi X anciennement Twitter, ou encore Reddit et j'en passe, se sont rués dessus. On incite les gens à créer, commenter, liker, partager. On engloutit autant de données personnelles que l'on peut, soit en exploitant les contenus, soit leurs métadonnées. Et ensuite on se gave encore sur ça en créant de gros corpora de données pour entrainer des modèles d'intelligence artificielle. Et on verrouille aussi les API, faisant qu'un paquet d'applications qui pouvaient interagir avec Twitter ou Reddit ont plié boutique.
L'effet pervers de ce web social est qu'il a fait naître les influvoleurs et instabouffons, dit autrement les influenceurs et dindons de tous poils qui commentent, donnent leurs avis, lustrent leurs communautés de blaireaux avec des hot takes claquées au sol ou en vendant des produits bidons. Même dans les milieux de la tech on en a, surtout dans le monde du développement web. Des paons et des dindons, formant des communautés de pigeons, gavés d'articles LinkedIn mauvais, de vidéos YouTube médiocres, enfonçant des portes ouvertes et rendant le banal et classique tout simplement incroyable. Et quand on les met en face de leurs impostures, ils lâchent leurs chiens sans sommation pour protéger leur crédibilité fantoche. Ces gens là sont responsables de rendre les autres plus cons qu'avant, et de leur faire croire à des rêves idiots. Regardez, c'est facile de coder, waouh je fais des choses trop bien, vous allez être développeurs grâce à ma formation. Résultat ? Trop de personnes s'étant reconverties avec des formations minables, sans culture, sans bagage sérieux, saturant les marchés.
Je pensais que la communauté Debian était une des pires, avec sa mentalité RTFM. Mais une communauté web la surclasse, celle qui adore le JavaScript et le web front ; constamment soumise à la hype, à réinventer la roue, à s'extasier devant des choses basiques ou peu originales, et à avoir l'arrogance de croire que le web va tout surclasser. Pire encore, une partie des membres de cette communauté va se former à l'arrache, et se croire meilleure. Heureusement, comme partout, il y a les bons et les mauvais artisans du logiciel, et j'ai de chouettes collègues qui font du développement web, mais bon sang, je n'ai jamais vu autant de kikoos et de crétins dans le développement web front end. On peut trop rapidement et trop facilement faire des choses, et surtout n'importe quoi et n'importe comment. Les mêmes nous font croire qu'il n'y a pas de problème à parler de front end quand on parle d'apps Android et iOS ; ils n'ont jamais touché à cet art pour comprendre à quel point ce propos est réducteur. Et de temps en temps, les mêmes, toujours, tentent de se tailler la part du lion en poussant leurs technologies à eux. PhoneGap, Cordova, Ionic, maintenant React. Autant de dette technique en puissance, voire en acte, et de dépendance à des outils que l'on ne maîtrise pas, sans parler du fait que ni Google d'un côté pour Android, ni Apple pour iOS, ni mêmes d'autres acteurs comme /e/ ne recommendent, à l'heure où j'écris ce lignes, de passer par ces outils tiers. Bref, que les clowns du développement web front end s'occupent déjà de faire des pages HTML propres et arrêtent d'entretenir les porcs comme Google et tous ceux qui ont travesti le web et se gavent dessus. Ils pourront donner des leçons et polluer le développement d'apps mobiles une fois que leur maison aura cessé de brûler. On n'a pas besoin qu'ils fassent les pompiers, juste que les flammes ne se propagent pas de chez eux à chez nous.
Le web social a permis le partage de la connaissance, il a aussi aidé à la fabrique du mensonge. On partageait aux autres avant, on s'étale aux yeux du monde maintenant.
On pensait même être tranquille avec le fediverse comme dans les écosystèmes Mastodon ou Pixelfed, mais on trouve encore des géants du numérique comme Meta qui tentent de mettre un pied dans la porte afin de récupérer toujours plus de données avec Threads par exemple. Ces prédations capitalistes ne sont pas nouvelles ; Google avait réussi à torpiller XMPP il y a un moment, et impose ses règles concernant les courriers électroniques avec Gmail.
Et forcément, la pub, la pub, les pisteurs, la pub, la pub... qui explosent la taille des pages web et consomment davantage de bande passante.
Bref
Le web est devenu trop compliqué. Nous avons oublié comme faire simple. On créé tous les jours du code legacy. On est devenu dépendant d'un navigateur. On est face aux géants du numérique qui cloisonnent tout. Le développement web est un développement au rabais. Le web 2.0 a créé des dindons arrogants entretenant la fabrique du mensonge et la superficialité. Le web est trop ravagé par les capitalismes de la donnée, de l'attention et de la surveillance. On a oublié toutes les valeurs initiales du web, et la merdification continue.
J'espère qu'on aura de belles histoires avec Gemini par exemple. Ou Kittens et le small web, ou le slow web.
Le web pue la merde, je ne l'ai jamais autant détesté qu'aujourd'hui. Il était émancipateur. Il est devenu privateur.
Quelques ressources en vrac pour aller plus loin et réfléchir un peu
1 – Sur le web environment integrity 2 – Firefox meurt 3 – À propos du small web 4 – Meta et le fediverse 5 – On peut avoir un autre web 6 – A brief history of web development. And why your framework doesn't matter. 7 – L’apocalypse Google avec le web synthétique 8 – Tracking Protection in Firefox For Privacy and Performance 9 – Et si on faisait du web comme en 1999, ou presque ? 10 – Spritely and Veilid: Exciting Projects Building the Peer-to-Peer Web 11 – Tariq Krim : le slow Web à la française 12 – The SOLID project 13 – Retour d'expérience concernant le navigateur web Brave 14 – Privacy or sensitive data… a list of tools to protect your дѕѕ 15 – Le jour où le Web s’enfonça un peu plus dans la tombe
Wall of shame
— Dernière mise à jour : jeudi 31 octobre 2024 🎃 —
Did you enjoy reading this blog? Give me a beer 🍺 or use something else ❤️🔥 Licensed under CC-BY-SA 4.0. Opinions are my own. To contact me, feel free to choose the most suitable medium for you, or for example Mastodon.