pylapp

merdification

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.

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 complexe, 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 Angular JS. Puis Angular. Polymer aussi, qui aussi a rejoint AngularJS dans le Google graveyard, et Boostrap. 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 WPEngine. 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.

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'ajoute 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, dont 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, et là on fait ce SSR. Et des pignoufs vendent ça comme de l'innovation, quels escrocs.

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 datavaures 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.

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.

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 : mercredi 30 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.