HTML over-the-wire a pris de l’ampleur en tant que moyen plus simple de créer des applications Web, sans avoir besoin d’utiliser autant de JavaScript. Cela fonctionne en envoyant du HTML, et non du JSON, “sur le fil”.
Maintenant, un nouveau “framework JavaScript discret” appelé Unpoly est apparu comme un concurrent du framework HTML over-the-wire de Basecamp, Hotwire. Unpoly promet “des interfaces rapides et flexibles pour les vues HTML rendues par le serveur”. Henning Koch, le créateur d’Unpoly, a expliqué à The New Stack pourquoi des frameworks comme Unpoly gagnent du terrain.
“Le code est toujours un handicap, et il vaut toujours la peine d’explorer des moyens d’en écrire moins”, a-t-il déclaré. “D’après notre expérience, Unpoly nous permet de créer des applications avec beaucoup moins de code qu’un SPA comparable, tout en conservant une grande partie de la vitesse et de la flexibilité du frontend. C’est un bien meilleur sweet spot pour nous.

Source : Unpoly
Quel est le but d’Unpoly et pourquoi a-t-il été développé ?
Koch décrit Unpoly comme “un framework JavaScript discret qui permet des interfaces rapides et flexibles pour les vues HTML rendues par le serveur. Il envoie du HTML sur le réseau et aucune API JSON n’est requise. Il n’a aucune dépendance et fonctionne avec n’importe quel langage ou framework backend.
Unpoly a fait ses débuts il y a sept ans, en 2015. Il s’agit de la dernière idée originale de Koch, qui développe des applications Web depuis plus de 25 ans. “J’ai passé la moitié de ma carrière en tant que responsable du développement dans une société de développement Web, Makandra”, a-t-il expliqué. “Avec Unpoly, j’ai pu tirer parti de l’expérience de centaines d’applications Web que mon équipe a fournies. Lorsque vous travaillez sur quelques nouveaux projets chaque année, vous pouvez voir des modèles émerger de manière organique et s’en extraire.
En utilisant Unpoly, vos vues peuvent faire des choses qui ne sont normalement pas possibles en HTML, telles que :
Unpoly a été développé par Koch lorsqu’il a remarqué la complexité croissante du code utilisé pour créer des applications Web, et comment la plupart du temps ce n’était pas nécessaire. « Fondamentalement, lorsque les frameworks SPA sont devenus à la mode au début des années 2010, mon équipe s’est mise à fond sur AngularJS pendant un certain temps. Nous étions aux prises avec les limites du rendu côté serveur et nous espérions que les applications de style SPA nous permettraient de proposer des interfaces utilisateur plus ambitieuses avec un code moins compliqué », a-t-il déclaré.
“Lorsque Angular a fait une rupture de compatibilité majeure entre les versions 1 et 2, nous en avons profité pour revoir notre travail SPA des dernières années et nous sommes sortis avec des sentiments mitigés”, a poursuivi Koch. “Alors que quelques applications ont bénéficié d’une approche JavaScript lourde, nous n’étions pas si satisfaits de la plupart des autres, en particulier avec la quantité de code et de duplication qu’une approche SPA nécessitait.”
Koch note que son équipe a décidé d’approfondir sa nouvelle hypothèse – qu’il devait y avoir un moyen d’améliorer leur codage JavaScript tout en simplifiant un langage déjà complexe.
“Cela nous a amenés à revoir le rendu côté serveur et l’amélioration progressive, mais cette fois-ci, investissez beaucoup plus de travail pour repousser les limites avec une approche structurée, plutôt que d’accumuler une montagne d’extraits de code JavaScript discrets”, déclare Koch. “La vision principale était la suivante : s’il existait une spécification HTML6 et que tout concernait les applications côté serveur, que contiendrait cette spécification ? Unpoly est un polyfill pour cette spécification HTML6 imaginaire.
Comment Unpoly se compare-t-il à React ?
JavaScript est le langage de programmation le plus populaire au monde et React est l’une de ses principales bibliothèques. Initialement publié en 2013, React a été conçu pour être une bibliothèque permettant d’aider les développeurs à créer des interfaces utilisateur (UI).
Selon Henning Koch, React et Unpoly ne sont pas totalement opposés. Ils partagent certaines ressemblances, mais il existe quelques distinctions importantes. “Ce que les deux frameworks partagent, c’est qu’ils affichent une page complète lorsque l’utilisateur navigue, mais seuls des fragments de cette nouvelle page sont insérés dans le DOM, le reste étant supprimé”, a-t-il expliqué. “Cependant, alors qu’une application React appellerait généralement une API JSON sur le réseau et rendrait le HTML dans le navigateur, Unpoly rend le HTML sur le serveur, où nous avons un accès synchrone à nos données et le libre choix du langage de programmation.”
Pourtant, Koch reconnaît qu’il existe des cas où React et SPA sont des choix appropriés. Il a poursuivi en disant : « Il y a encore des cas où une approche SPA brille. Par exemple, nous avons récemment créé un chat en direct où les messages devaient être chiffrés de bout en bout. Cela aurait été gênant avec une solution principalement côté serveur, et nous avons fini par créer le composant de chat avec React. Je ne pense tout simplement pas que ce soit la meilleure valeur par défaut pour la plupart des applications Web.
Pourquoi HTML Over-the-Wire gagne en popularité
Presque toujours, moins vous utilisez de code, mieux c’est. Un code plus long réparti sur plusieurs lignes donne aux bogues plus d’endroits où se cacher. HTML over-the-wire facilite la simplicité et ajoute de la sécurité, tandis que les développeurs Web gagnent du temps en n’ayant pas à écrire chaque ligne de code qui crée du HTML en JavaScript.
Les développeurs constatent que JavaScript peut parfois être inutilement complexe et qu’il existe des moyens plus simples de créer des pages Web et des applications. Comme l’a écrit le créateur de Ruby on Rails et Hotwire, David Heinemeier Hansson, “Oui, nous avons besoin d’un peu de JavaScript pour que cela fonctionne suffisamment bien pour rivaliser avec la fidélité offerte par les applications traditionnelles d’une seule page, mais la majeure partie de cela peut être abstraite par quelques petites bibliothèques, et pas de fuite dans le code d’application que nous écrivons.
Henning Koch espère que cette nouvelle vague de frameworks se poursuivra et que plus de gens se sentiront rapidement à l’aise avec eux. “J’aimerais que les développeurs découvrent les moyens de créer des applications Web sans JavaScript lourd côté client et vérifient si cela vous aide à réduire le JavaScript dans le type d’applications que vous créez”, nous a-t-il dit. “Il existe une toute nouvelle génération d’outils comme Unpoly, htmx, Hotwire ou LiveView qui expérimentent de nouvelles façons de créer des applications Web et méritent votre attention.”
Photo de Tejas Prajapati de Pexels.