Blog des Gens Compliqués

Réflexions technologiques sur le blog idéal du turfu

03/10/2019 21:35:45+02:00|Par DkVZ
3 minutes de lecture (facile)

Mon grand recyclage/décryptage des "nouvelles" (lol) technologies du web à base de JavaScript et Node.js est presque terminé (enfin, j'ai décidé).

Il aura débuté avec Polymer 1.0 (re-lol mais avec deux ou trois larmes) et devrait s'achever par un projet en TypeScript.

Je pensais à Angular du coup, tant qu'à finir avec une chaîne complète et bien grasse d'outils après avoir essayé de tout faire moi-même avec le moins d'outils possible.

Petit problème néanmoins: c'est le présent blog que je voudrais refaire et j'ai quelques prérequis bien spécifiques déterminés avec grand soin en résultat de mes désormais nombreuses (deux? 1 et demi? JE SAIS PAS COMPTER LES ANNEES) années de JavaScript.

Taille compressée de toutes les libs ~50kb ou moins

C'est ce qui exclut Angular. Dans ma tête il tournait autour de 200 Kb mais d'après ce super article Wikipedia qui est en retard parce que c'est impossible à suivre toute cette histoire de FRAMEWORKS, on voit que ça parle de plus de 500 Kb pour Angular minifié et compressé et je pense que ça n'inclut même pas RxJS donc euh... Ouais je comprends pas comment on peut oser utiliser ce truc quand on est un peu enthousiaste de la tech et qu'on fait un petit peu attention aux performances.

Je pensais pouvoir avancer avec la rédaction de cet article mais ce truc à attiré tous mes yeux dans l'article Wikipedia pré-cité:

Il y a apparemment un framework qui prend 50 MB

Il y avait l'histoire de Chrome qui prend plus de place que tout l'espace nécessaire à Windows 95 (~70MB VS ~50MB) mais là... Une page web c'est un demi-Chrome? Sérieusement? Maintenant je dois écrire un autre article sur ce Framework parce que j'ai pas la place pour écrire toute une tirage dans cette brève déjà plus du tout brève alors que j'y étais presque pour une fois PROUT.

Performances quasi-natives

Ce que j'entends pas "quasi-natives" n'est pas le vrai sens que devrait avoir "quasi-natives" comme si on parlait de performance en comparaison à l'assembleur, moi je parle juste de "comme s'il n'y avait pas de framework" (il faut baisser ses attentes de temps en temps).

Je ne sais pas si vous avez entendu parler du VIRTUAL DOM, c'est le bidule qui gère les mises-à-jour des composants en insérant les nouveaux éléments, supprimant ceux qui ne sont plus nécessaires, mettant à jour ceux qui ont changé tant par leur contenu que leurs attributs sans oublier tous les enfants que ces éléments pourraient avoir, ce qui fait un paquet de trucs et de machins et ce qui fait aussi que c'est SUPER LENT.

Bon c'est pas super lent sur un MacBook de 2019 mais ça l'est sur la tablette gratuite que votre grand mère à reçu en cadeau avec son abonnement Test-achats.

Si vous ne savez pas ce que c'est Test-Achats, ce qui est fort probable, pensez à ces ordis dans les lobbys d'hôtel ou à la bibliothèque dont le Pentium 4 se bat déjà contre une dizaine de malwares. Ce survivant n'a pas les capacités pour votre site React avec une liste faite de 857 composants sur la page d'accueil.

En pratique et que je sache, ce prérequis élimine pratiquement tout sauf:

  • Svelte
  • Solution faite maison
  • Backbone.js ou un autre truc ancien qui sent le vieux

Doit pouvoir fonctionner avec JS désactivé

Le blog version Janvier 2018+ est une APPLICATION WEB MONOPAGE (à prononcer avec du reverb) et si JS est désactivé, le spinner de chargement de la page tourne pour toujours. C'est pas génial.

A l'avenir il me faut absolument du Server Side Rendering, en plus du routage JS, ce qui aura d'autres avantages comme remplacer directement l'espèce de hack bizarre qui est le sujet de cet article.

Divers & Conclusion

Non lié aux framworks et autres librairies, mais voici une liste non-exhaustive d'autres trucs que je veux:

  • Pas de DISQUS (je le mets juste pour le LOL)
  • Plus d'embed Youtube, ça m'ajoute des cookies de tracking...
  • Images minifiées, de préférence automatiquement
  • Accessibilité aux lecteurs d'écrans
  • Plus de "police de symboles" je vais uniquement utiliser des SVG
  • Le nouveau backend (nécessaire pour le SSR) devra être compatible avec les anciennes versions du blog

Y a plus qu'à s'y mettre. Une fois que j'aurai publié un énorme article sur ma revue des frameworks et librairies JS en 2019-probablement-2020.

Désolé.

Commentaires

Il faut JavaScript activé pour écrire des commentaires ici

#1

Letho
21/01/2023 0:21:46+01:00
Svelte est très chouette à utiliser, et d'une simplicité confondante. Particulièrement couplé à SvelteKit qui va gérer SSR et routing.

Ajouter un commentaire

Votre commentaire a été ajouté
(enfin, je pense)