Se connecter

Informatique

Programmation

Sujet : htmx : faire du frontend sans écrire une seule ligne de JS
1
soyiy
Niveau 5
21 mai 2022 à 15:50:15

Je suis dev web depuis 15 ans, j'en ai vu passé des technos, généralement ça va dans le sens de toujours plus de complexité (JavaScript). Honnêtement, le web est devenue une usine à gaz. On a aujourd'hui des machines et des connexions beaucoup plus puissantes qu'il y a 10 ans, mais tout est devenu beaucoup plus lent et compliqué.

J'ai découvert récemment htmx, une bibliothèque JavaScript (~10k), qui permet de faire des sites dynamiques sans écrire une seule ligne de JS :

https://htmx.org/

htmx est en train de devenir très populaire dans le milieu Python (la communauté Django semble adopter de plus en plus htmx à la place des React ou Vue).

Tout ça pour dire, je vous conseille d'essayer si êtes fatigués du JavaScript et de son écosystème fou. Je prédis un énorme succès à cette bibliothèque htmx parce qu'elle est simple et qu'elle permet de retrouver du plaisir à créer des sites web (depuis le backend).

:oui:

Pseudo supprimé
Niveau 5
21 mai 2022 à 15:58:21

La boucle :)

Pseudo supprimé
Niveau 5
21 mai 2022 à 16:09:43

Fais gaffe l'auteur t'es à deux doigts d'inventer jquery :)

Shellshock
Niveau 9
21 mai 2022 à 16:48:07

Le 21 mai 2022 à 15:50:15 :
Tout ça pour dire, je vous conseille d'essayer si êtes fatigués du JavaScript et de son écosystème fou. Je prédis un énorme succès à cette bibliothèque htmx parce qu'elle est simple et qu'elle permet de retrouver du plaisir à créer des sites web (depuis le backend).

Ça existe depuis 2013 et ça n'a jamais décollé. Je pense que si "énorme succès" il y aurait dû avoir, il aurait déjà eu lieu et un dev qui a 15 d'xp ne l'aurait pas découverte seulement maintenant ^^.

soyiy
Niveau 5
21 mai 2022 à 16:56:05

Le 21 mai 2022 à 16:48:07 :

Le 21 mai 2022 à 15:50:15 :
Tout ça pour dire, je vous conseille d'essayer si êtes fatigués du JavaScript et de son écosystème fou. Je prédis un énorme succès à cette bibliothèque htmx parce qu'elle est simple et qu'elle permet de retrouver du plaisir à créer des sites web (depuis le backend).

Ça existe depuis 2013 et ça n'a jamais décollé. Je pense que si "énorme succès" il y aurait dû avoir, il aurait déjà eu lieu et un dev qui a 15 d'xp ne l'aurait pas découverte seulement maintenant ^^.

Les premières versions de htmx sont sorties en 2020 :

https://htmx.org/talk/

Tu as raison ceci dit, le problème c'est que si c'est pas du made in Google ou Facebook, les gens ne vont pas s'y intéresser. Tout le monde fait du React de nos jours, sans même savoir pourquoi, sans même se demander si c'est l'outil le plus adapté à ce qu'ils font.

Il y a quand même une petite dynamique derrière htmx dernièrement :

https://hn.algolia.com/?q=htmx
https://twitter.com/search?q=htmx%20lang%3Aen&src=typed_query&f=live

Et presque 7000 étoiles sur GitHub

Magrozz
Niveau 7
21 mai 2022 à 19:04:06

Dommage pour toi mais tout le monde s'en branle :ok:

soyiy
Niveau 5
21 mai 2022 à 19:38:12

Le 21 mai 2022 à 19:04:06 :
Dommage pour toi mais tout le monde s'en branle :ok:

hx-trigger="Magrozz"

Je suis stupéfait par ta réaction. C'est tellement pas l'esprit hacker qui encourage à penser différemment et à essayer de nouveaux trucs - avec en plus là cette volonté d'humilier à travers les échanges.

:question:

Incompréhensible et triste.

soyiy
Niveau 5
21 mai 2022 à 19:46:47

Pour en revenir au débat de fond, htmx me fait penser un peu à Tailwind, dans le style déclaratif déjà, mais aussi parce que c'est une techno qui va forcément diviser.

C'est OK de préférer un framework frontend genre React ou Vue, surtout si on a passé beaucoup de temps à maîtriser cette stack, et qu'on travaille sur des gros projets interactifs, mais htmx me semble parfait pour 80% des besoins web (sites vitrines, e-commerces, blogs, etc).

Bref, je voulais juste partagé une techno sympa et originale. :)

Shellshock
Niveau 9
21 mai 2022 à 19:56:21

Le 21 mai 2022 à 16:56:05 :
Les premières versions de htmx sont sorties en 2020 :

https://htmx.org/talk/

htmx c'est le nouveau de intercooler.js (intercooler.js 2.0 = htmx), intercooler.js, donc htmx, date de 2013.

Ou alors tu es du genre à penser qu'Angular c'est sortie en 2016 parce qu'ils ont renommé Angular.js en Angular au moment de la version 2.0 ? Même si il y a des changements cassant entre les 2 versions, le concept et la philosophie reste la même.

soyiy
Niveau 5
21 mai 2022 à 20:06:02

Le 21 mai 2022 à 19:56:21 :

Le 21 mai 2022 à 16:56:05 :
Les premières versions de htmx sont sorties en 2020 :

https://htmx.org/talk/

htmx c'est le nouveau de intercooler.js (intercooler.js 2.0 = htmx), intercooler.js, donc htmx, date de 2013.

Ou alors tu es du genre à penser qu'Angular c'est sortie en 2016 parce qu'ils ont renommé Angular.js en Angular au moment de la version 2.0 ? Même si il y a des changements cassant entre les 2 versions, le concept et la philosophie reste la même.

Merci je savais pas :oui:

Il faut aussi noter que récemment, on a vu l'émergence de :

Phoenix LiveView
Rails Hotwire
Laravel LiveWire
Symfony UX
.NET Blazor

Il y a quand même un trend en ce moment pour repasser sur des solutions backends, du moins de donner la possibilité de rapidement faire un site interactif sans avoir besoin de framework frontend JS. C'est pour ça aussi je pense qu'on reparle davantage d'htmx (qui n'est pas spécifique à un framework et qui peut s'utiliser sur tous les backends).

Azerban
Niveau 15
21 mai 2022 à 21:21:33

Je connais HTMX je l'ai déjà utilisé et c'est génial. C'est devenu très populaire dans la communauté Python/Django avec notamment le plugin django-htmx d'Adam Johnson.

Ça permet notamment d'utiliser les outils de templating de son framework préféré et de ne plus avoir à sérialiser/désérialiser les données, gérer le framework frontend, etc. C'est superproductif.

Je crois que j'ai vu des offres d'une ou deux startups françaises qui recrutaient des devs django/htmx.

soyiy
Niveau 5
21 mai 2022 à 21:39:42

Le 21 mai 2022 à 21:21:33 :
Je connais HTMX je l'ai déjà utilisé et c'est génial. C'est devenu très populaire dans la communauté Python/Django avec notamment le plugin django-htmx d'Adam Johnson.

Ça permet notamment d'utiliser les outils de templating de son framework préféré et de ne plus avoir à sérialiser/désérialiser les données, gérer le framework frontend, etc. C'est superproductif.

Je crois que j'ai vu des offres d'une ou deux startups françaises qui recrutaient des devs django/htmx.

Merci pour ton retour Azerban, enfin quelqu'un qui partage mon enthousiasme :oui:

Par ailleurs, en ce moment-même, cet article est en top trend sur Hacker News :
The balance has shifted away from SPAs :
https://nolanlawson.com/2022/05/21/the-balance-has-shifted-away-from-spas/

Une autre vidéo marrante sur le bloat qu'est devenu le web moderne :
A Demonstration of Modern Web Bloat:
https://www.youtube.com/watch?v=cvDyQUpaFf4

boucif
Niveau 24
21 mai 2022 à 22:40:43

Le 21 mai 2022 à 20:06:02 :

Le 21 mai 2022 à 19:56:21 :

Le 21 mai 2022 à 16:56:05 :
Les premières versions de htmx sont sorties en 2020 :

https://htmx.org/talk/

htmx c'est le nouveau de intercooler.js (intercooler.js 2.0 = htmx), intercooler.js, donc htmx, date de 2013.

Ou alors tu es du genre à penser qu'Angular c'est sortie en 2016 parce qu'ils ont renommé Angular.js en Angular au moment de la version 2.0 ? Même si il y a des changements cassant entre les 2 versions, le concept et la philosophie reste la même.

Merci je savais pas :oui:

Il faut aussi noter que récemment, on a vu l'émergence de :

Phoenix LiveView
Rails Hotwire
Laravel LiveWire
Symfony UX
.NET Blazor

Il y a quand même un trend en ce moment pour repasser sur des solutions backends, du moins de donner la possibilité de rapidement faire un site interactif sans avoir besoin de framework frontend JS. C'est pour ça aussi je pense qu'on reparle davantage d'htmx (qui n'est pas spécifique à un framework et qui peut s'utiliser sur tous les backends).

Ca semble être un truc fait quand tu veux faire du dev à l'ancienne donc ton backend qui renvoie la page, ça te permet de te passer de truc comme jquery, pas mal dans ce genre de cas.

Après attention blazor, ça peut être considéré comme un concurrent à React/Angular, dans certains cas c'est utilisé comme un Framework front, la seule différence c'est que ce n'est pas du JS mais du C# et ça transpile en webassembly, le seul défaut le temps de chargement au premier accès si ça pas été résolu depuis mes derniers test.

Pathos-II
Niveau 17
22 mai 2022 à 11:51:18

Mouais jtrouve ça inmaintenable le fait que la partie UI et logique soit complètement mixée
Surtout avec l'histoire des hx-target ça me parait complètement spaghetti.
Pareil le hx-sync semble être un workaround tellement c'est moche à utiliser :hap:

Tu t'imagines si tu devais lire un gros composant ?

"Alors OK cet input au niveau le plus bas trigger la requête /xxx mais enfait comme son parent de premier niveau a un sync, c'est son parent qui prend la priorité. Une fois la requête faite c'est le target qui était sur le parent qui envoie les données à un autre élément à l'autre bout de la page :rire:"

Et au final tu devras forcément utiliser htmx:validation donc écrire du code dans des strings avec une syntaxe horrible et sans pouvoir debug convenablement.

Devoir tout réapprendre pour ça, autant rester en JS :hap:

Et ce que je comprends pas c'est que ce truc à l'air d'être fait principalement pour faire des requêtes AJAX mais y'a bien plus de logique custom que de requêtes à faire dans le dev frontend.

soyiy
Niveau 5
22 mai 2022 à 13:27:40

Le 22 mai 2022 à 11:51:18 :
Mouais jtrouve ça inmaintenable le fait que la partie UI et logique soit complètement mixée

C'est exactement ce que font React et Vue pourtant ?

htmx c'est surtout une solution pour ceux qui veulent rester dans leur langage de prédilection en backend (PHP, Python, etc.) sans avoir à toucher l'usine à gaz JS et sa toolchain du démon.

https://www.noelshack.com/2022-20-7-1653218927-1-x9s00j9jmkdl8qg18f-iiw.jpg

JeanOncheLassal
Niveau 21
23 mai 2022 à 10:23:18

Le 21 mai 2022 à 19:04:06 :
Dommage pour toi mais tout le monde s'en branle :ok:

Honnêtement, t'avais vraiment besoin de commenter ça ? Va sur le 15-18 si t'es là pour clasher les gens

beholder79
Niveau 7
23 mai 2022 à 13:08:19

Je troll pas c'est juste un truc minimaliste pour des équipes qui ne peuvent - ou ne veulent - aller sur des frameworks plus lourds voire simplement n'ont pas de devs JS.

C'est du bon vieux attributes hypertext et fragments de dom comme Jquery faisait il a quinze ans.
Avec quelques SSE et sockets en plus pour faire moderne.
Tu vois le header http_hx_request ça veut tout dire.

Ils vont se taper exactement les mêmes bugs de perfs et sse que tous les autres. Tu vois les issues c'est déjà le cas. Les manip de DOM et repaint n'ont jamais été rapides peu importe le moteur et c'est pour ça que les virtual doms existent ailleurs.

Je critique pas c'est une niche, elle a raison d'exister.

hakkirokki
Niveau 3
23 mai 2022 à 15:14:03

Il y a chez certains cette envie de retourner à une forme de minimalisme sur le web ("c'était mieux avant") face à la complexité exponentiel des frameworks JS :

https://edofic.com/posts/2022-01-28-low-js/

Certains vont jusqu'à... ne plus utiliser de BD SQL :

https://www.wilcosky.com/d/51-smaller-is-better-the-rise-fall-and-rise-of-flat-file-software

Un forum écrit en PHP qui n'utilise pas de base de données (mais qui utilise simplement le système de fichiers pour stocker les données) :

https://flatboard.org/

coronacfd
Niveau 8
26 mai 2022 à 15:08:15

Tu peut toujours utilisé java si t'en as marre de js :)

hakkirokki
Niveau 3
28 octobre 2023 à 05:06:53

22k étoiles sur GitHub depuis le call de l'auteur

https://github.com/bigskysoftware/htmx

1
Sujet : htmx : faire du frontend sans écrire une seule ligne de JS
   Retour haut de page
Consulter la version web de cette page