3 pontos por GN⁺ 2025-01-07 | 1 comentários | Compartilhar no WhatsApp
  • O htmx começou originalmente com intercooler.js, uma biblioteca baseada em jQuery que oferecia recursos dinâmicos usando apenas atributos de HTML
  • Entre os motivos de o jQuery ter sido usado por muito tempo em muitos sites estão implantação simples, uma API consistente e a possibilidade de uso parcial e flexível

htmx é o novo jQuery

  • O htmx também tem como objetivo ser uma biblioteca estável e durável como o jQuery
  • Com a meta de construir serviços web que durem 100 anos, foi projetado para permanecer útil e sustentável sem mudanças grandes
  • Estabilidade como recurso
    • A principal política de atualização do htmx é manter a estabilidade da API e da implementação
    • Ao atualizar de uma versão anterior para uma nova, busca-se uma abordagem centrada no "usuário existente", garantindo que tudo continue funcionando sem mudanças
  • Sem novos recursos como recurso
    • O htmx não se propõe a adicionar recursos indiscriminadamente ao núcleo
    • Quando necessário, resolve-se isso com APIs novas suportadas pelo navegador ou extensões, mantendo o core simples
  • Lançamentos trimestrais
    • Lançamentos novos serão feitos a cada trimestre (aproximadamente a cada 3 meses)
    • Não há obrigação de atualizar; se você usa a versão 1.x sem problemas, pode mantê-la

Promovendo hipermídia

  • O objetivo central do htmx não é ser uma solução completa para aplicações web, e sim tornar o controle hipermídia mais genérico
  • Para isso, é preciso melhorar a integração com motores de template, backend e banco de dados fora do htmx
  • Mesmo sem adicionar novos recursos ao htmx, se as ferramentas ao redor enriquecerem o ecossistema hipermídia, o htmx acaba ficando mais útil na prática
  • Apoiar ferramentas complementares
    • O htmx já oferece parte da funcionalidade apenas com atributos HTML, mas decisões como backend e banco de dados ficam totalmente a cargo do usuário
    • Ele foi projetado para funcionar com diversos backends, apoiando padrões de desenvolvimento com foco em hipermídia
    • Enfatiza o conceito de "fragmentos de template" para facilitar a substituição parcial de páginas, contribuindo para o avanço do ecossistema de engines de template
    • Hoje já há muitos exemplos de engines de template oferecendo funcionalidade de fragmento
    • Ainda há muitas formas de melhorar a experiência de escrita de aplicações web baseadas em hipermídia
    • O htmx concentra-se em estimular o avanço de ferramentas e tecnologias ao redor do núcleo, para fazer crescer todo o ecossistema
  • Escrita, pesquisa e padronização
    • O htmx pretende disseminar e evoluir ideias de hipermídia em vez de expandir sua própria funcionalidade
    • Procura fazer com que as ideias do htmx sejam refletidas no padrão HTML por meio de iniciativas como o projeto Triptych
      • No fim das contas, espera que a própria plataforma web passe a suportar nativamente recursos semelhantes aos do htmx
    • O código htmx escrito hoje continuará compatível ao longo do tempo, mas espera-se um dia em que seja possível implementar padrões de UI semelhantes sem depender de uma biblioteca

Intercooler estava certo

  • O projeto vem sendo mantido desde os tempos do intercooler.js com uma postura de "stewardship", evitando grandes mudanças e evitando quebrar o que já funciona
  • O htmx herda essa filosofia e busca sobreviver por muito tempo como uma ferramenta robusta e confiável

1 comentários

 
GN⁺ 2025-01-07
Comentários do Hacker News
  • Compartilhou uma experiência de portar de HTMX para Hotwire, avaliando que a ideia do HTMX é boa, mas a execução deixa a desejar. Mencionou que há muitos bugs, que a compatibilidade com recursos da web e do navegador não é boa e que a documentação é escassa. Após portar para Turbo e Stimulus, conseguiu uma base de código mais estável e fácil de entender.
  • Concorda com a tendência de enfatizar estabilidade e observou que construir sobre abstrações instáveis aumenta a chance de bugs no futuro. Isso pode não importar em projetos pequenos, mas, se a utilidade for comprovada, eles podem crescer para projetos grandes.
  • Compartilhou experiência desenvolvendo uma aplicação com Django e HTMX, dizendo que prefere React ou Vue, mas que o HTMX pode ser adequado para desenvolvedores de backend. Considerou que o HTMX é menos fácil de testar do que bibliotecas modernas de frontend.
  • Expressou preocupação com a acessibilidade do HTMX e disse querer ter mais confiança na compatibilidade com leitores de tela. Enfatizou que a experiência real do usuário é mais importante do que apenas o uso correto de atributos ARIA.
  • Agradeceu porque o HTMX reduziu o trabalho do desenvolvedor ao tratar certas tarefas de JavaScript com abstrações elegantes. Avaliou que isso oferece uma boa lição para lidar com complexidade.
  • Disse que está tentando adotar o HTMX em uma empresa de software em grande escala e que a utiliza em mentorias como um experimento mental. Isso faz com que se questione se uma SPA é realmente necessária.
  • Concordou com a ideia de que “a ausência de novas funcionalidades é uma funcionalidade” e avaliou positivamente o fato de não haver necessidade de atualizar software com frequência.
  • Expressou o desejo de que recursos do HTMX sejam incorporados ao padrão HTML e disse que está avançando nessa direção por meio do projeto Triptych. Espera que eles sejam incluídos nativamente no navegador.