- htmx entstand ursprünglich als
intercooler.js, das auf jQuery basierte und dynamische Funktionen nur mit HTML-Attributen bot
- Als Gründe dafür, dass jQuery auf vielen Websites lange eingesetzt wird, werden oft der einfache Einstieg, eine konsistente API und die flexible partielle Nutzung genannt
htmx ist das neue jQuery
- htmx verfolgt ebenfalls das Ziel, eine langlebige, stabile Bibliothek wie jQuery zu sein
- Es setzt sich das Ziel einer „Webanwendung mit 100 Jahren Lebensdauer“ und ist so konzipiert, dass es auch ohne große Veränderungen nützlich und nachhaltig bleibt
- Stabilität als Feature
- Die zentrale Update-Strategie von htmx ist die Aufrechterhaltung der Stabilität von API und Implementierung
- Beim Upgrade von einer bestehenden Version auf eine neue Version wird ein „bestehende Anwender“-fokussierter Ansatz verfolgt, damit das Verhalten unverändert bleibt
- Keine neuen Features als Feature
- htmx vermeidet es bewusst, dem Kern unvermittelt neue Funktionen hinzuzufügen
- Falls nötig, werden neue Browser-APIs oder Extensions genutzt, während der Kern dabei einfach bleibt
- Quartalsweise Releases
- Geplant sind neue Releases im Quartalsrhythmus (etwa alle drei Monate)
- Ein Upgrade wird nicht erzwungen; wenn die Version 1.x problemlos läuft, kann sie auch so beibehalten werden
Hypermedia fördern
- htmx hat nicht das Ziel einer vollständigen Total-Lösung für Webanwendungen, sondern dafür, Hypermedia-Kontrolle zu verallgemeinern
- Dafür ist es nötig, die Integrationsweise mit Template-Engines, Backend- und Datenbanklösungen außerhalb von htmx zu verbessern
- Auch ohne neue Features in htmx steigt die Nutzbarkeit von htmx letztlich, wenn zusätzliche Werkzeuge die Hypermedia-Landschaft bereichern
- Unterstützung ergänzender Werkzeuge
- htmx stellt mit HTML-Attributen nur einige Funktionen bereit, während Entscheidungen zu Backend, DB usw. vollständig beim Anwender liegen
- Es ist so aufgebaut, dass es mit vielen verschiedenen Backends kompatibel ist und Entwicklungsmuster mit Fokus auf Hypermedia unterstützt
- Es betont das Konzept der „Template-Fragmente“, das Teilseitenwechsel vereinfacht, und trägt so zur Weiterentwicklung des Ökosystems von Template-Engines bei
- Nun bieten bereits viele Template-Engines die Fragment-Funktionalität an
- Es gibt weiterhin viele Ansätze, um die Erfahrung beim Schreiben von Hypermedia-basierten Webanwendungen zu verbessern
- htmx konzentriert sich darauf, die Entwicklung begleitender Tools und Technologien zu fördern, um das gesamte Ökosystem wachsen zu lassen
- Schreiben, Forschung und Standardisierung
- htmx plant, weniger die eigene Funktionalität zu erweitern als vielmehr Ideen rund um Hypermedia zu verbreiten und weiterzuentwickeln
- Über das Triptych-Projekt etc. arbeitet es daran, htmx-Ideen in den HTML-Standard einfließen zu lassen
- Langfristig ist der Wunsch, dass die Webplattform ähnliche Funktionen nativ als Standard unterstützt, wie htmx
- Der heute geschriebene htmx-Code bleibt auch künftig weitgehend kompatibel, doch man hofft auf eine Zukunft, in der ähnliche UI-Muster ohne Bibliothek umsetzbar sind
Intercooler lag richtig
- Seit den Tagen von
intercooler.js wurde es im Sinne eines pflegenden ("stewardship") Ansatzes weitergeführt, der große Änderungen vermeidet und nichts kaputtmacht
- htmx übernimmt diese Philosophie ebenfalls und zielt darauf ab, als stabiles, vertrauenswürdiges Werkzeug lange über Jahre hinweg zu bestehen
1 Kommentare
Hacker News-Kommentare
Er teilt seine Erfahrung mit der abgeschlossenen Portierung von HTMX auf Hotwire und bewertet die Idee von HTMX als gut, die Ausführung jedoch als unzureichend. Er sagt, dass es viele Bugs gebe, dass es mit Web- und Browserfunktionen nicht gut harmoniert und dass die Dokumentation mangelhaft sei. Nach der Portierung auf Turbo und Stimulus bekam er eine stabilere und leichter verständliche Codebasis.
Er stimmt dem Fokus auf Stabilität zu und merkt an, dass der Aufbau auf instabilen Abstraktionen die Wahrscheinlichkeit erhöht, in Zukunft auf Fehler zu stoßen. Kleine Projekte seien dabei nicht das Problem, betont er, aber wenn der Nutzen nachgewiesen ist, können sie zu großen Projekten wachsen.
Er teilt seine Erfahrung bei der Entwicklung von Anwendungen mit Django und HTMX mit, erklärt, dass er React oder Vue bevorzugt, aber dass HTMX für Backend-Entwickler geeignet sein kann. Er bewertet HTMX als schwieriger zu testen als moderne Frontend-Bibliotheken.
Er äußert Bedenken zur Barrierefreiheit von HTMX und sagt, er möchte sicher sein, dass es mit Screenreadern kompatibel ist. Er betont, dass ihm die tatsächliche Nutzererfahrung wichtiger ist als die korrekte Verwendung von ARIA-Attributen.
Er bedankt sich dafür, dass HTMX durch eine elegante Abstraktion bestimmte JavaScript-Aufgaben übernimmt und so den Arbeitsaufwand der Entwickler reduziert. Er sieht darin eine gute Lehre für den Umgang mit Komplexität.
Er ist dabei, HTMX in einem großen Softwareentwicklungsunternehmen einzuführen, und erwähnt, dass er es im Mentoring als Gedankenexperiment einsetzt. Es bringt ihn dazu, darüber nachzudenken, ob eine SPA wirklich notwendig ist.
Er stimmt der Aussage "keine neuen Funktionen sind Features" zu und bewertet positiv, dass Software nicht ständig aktualisiert werden muss.
Er äußert die Hoffnung, dass HTMX-Funktionalität in den HTML-Standard integriert wird, und sagt, dass er mit dem Triptych-Projekt daran arbeitet. Er wünscht sich, dass dies standardmäßig im Browser enthalten ist.