- htmx se originó a partir de
intercooler.js, una librería basada en jQuery que ofrecía funcionalidades dinámicas usando solo atributos de HTML.
- Se suele decir que jQuery sigue usándose durante mucho tiempo en muchos sitios web por su adopción simple, su API consistente y la posibilidad de usarlo de forma parcial y libremente.
htmx is the New jQuery
- htmx también busca ser una librería estable y duradera, al estilo de jQuery.
- Se fijó como meta construir un servicio web que pudiera mantenerse por "100 años", diseñado para seguir siendo útil y sostenible sin grandes cambios.
- La estabilidad como característica
- La principal política de actualización de htmx es mantener la estabilidad de la API y de la implementación.
- Al actualizar desde una versión vieja a una nueva, se procura que todo funcione igual, con un enfoque centrado en el "usuario existente".
- Sin nuevas funciones como característica
- htmx busca no agregar nuevas funcionalidades al núcleo sin necesidad.
- Cuando se requiere, lo resuelve con nuevas API compatibles con el navegador o con extensiones, manteniendo el núcleo simple.
- Lanzamientos trimestrales
- Está previsto lanzar una nueva versión por trimestre (aprox. cada 3 meses).
- No se fuerza una actualización; si puedes usar sin problemas la versión 1.x, puedes mantenerla tal como está.
Promoting Hypermedia
- htmx no busca una solución integral para toda la aplicación web, sino generalizar el control hypermedia.
- Para lograrlo, hay que mejorar la forma de integrarse con herramientas externas como motores de plantillas, backend y bases de datos.
- Aunque no se agreguen nuevas funciones a htmx, si las herramientas del entorno enriquecen la ecoestructura hypermedia, al final htmx ganará mayor utilidad.
- Supporting Supplemental Tools
- htmx ofrece parte de su funcionalidad con atributos HTML solamente, pero deja decisiones como el backend o la base de datos totalmente en manos del usuario.
- Está diseñado para que sea compatible con diversos backends, apoyando patrones de desarrollo centrados en hiper-media.
- Destaca el concepto de "template fragments" para facilitar el reemplazo parcial de páginas y aportar al crecimiento del ecosistema de motores de plantillas.
- Hoy en día son cada vez más los motores de plantillas que ofrecen funcionalidad de fragmentos.
- Aún hay muchas formas de mejorar la experiencia al escribir aplicaciones web basadas en hipermedia.
- htmx se concentra en impulsar el avance de las herramientas y tecnologías del entorno más que en ampliar su propio núcleo, para fomentar el crecimiento del ecosistema completo.
- Writing, Research, and Standardization
- htmx pretende difundir y desarrollar las ideas de la hipermedia en general, más que expandir sus propias funcionalidades.
- A través de proyectos como Triptych intenta lograr que las ideas de htmx se reflejen en el estándar HTML.
- A la larga, espera que la propia plataforma web soporte nativamente funcionalidades similares a las de htmx como estándar.
- El código escrito hoy en htmx seguirá siendo compatible de manera continua, pero en algún momento se espera un mundo donde se puedan lograr patrones de UI similares sin usar ninguna librería.
Intercooler Was Right
- Desde la época de intercooler.js, htmx se ha mantenido evitando cambios drásticos, con una forma de "custodia" orientada a no romper nada.
- htmx hereda esa filosofía y busca quedar como una "herramienta robusta y confiable" que sobreviva por mucho tiempo
1 comentarios
Opinión de Hacker News
Compartió su experiencia al portar una app de HTMX a Hotwire y evaluó que, aunque las ideas de HTMX son buenas, la ejecución quedó corta. Mencionó que tiene muchos errores, que no se integra bien con funciones web y de navegador, y que la documentación es escasa. Después de migrar a Turbo y Stimulus, logró una base de código más estable y más fácil de entender.
Está de acuerdo con la tendencia de priorizar la estabilidad y señala que construir sobre una abstracción inestable hace que sea más probable que aparezcan errores en el futuro. Comentó que esto no es un problema en proyectos pequeños, pero que, si su utilidad se valida, podría crecer hasta convertirse en proyectos grandes.
Compartió su experiencia desarrollando una aplicación con Django y HTMX, y explicó que, aunque prefiere React o Vue, HTMX puede ser una buena opción para desarrolladores backend. Evaluó que HTMX es más difícil de testear que una biblioteca moderna de frontend.
Expresó preocupación por la accesibilidad de HTMX y dijo que le gustaría estar seguro de su compatibilidad con lectores de pantalla. Resaltó que es más importante la experiencia real del usuario que el uso correcto de los atributos ARIA.
Agradeció que HTMX redujera el trabajo del desarrollador al abstraer de forma elegante ciertas tareas de JavaScript. Lo consideró una buena lección para manejar la complejidad.
Dijo que está intentando introducir HTMX en una empresa grande de desarrollo de software y que lo está usando como experimento mental en mentorías. Eso lo llevó a cuestionarse si realmente se necesita una SPA.
Estuvo de acuerdo con la idea de que "no tener nuevas funciones también es una función" y valoró positivamente que no sea necesario actualizar el software con frecuencia.
Expresó su esperanza de que las capacidades de HTMX se integren al estándar HTML y dijo que está impulsándolo a través del proyecto Triptych. Espera que se incluyan de forma nativa en el navegador.