htmx 的未来

Carson Gross, Alex Petros

开端…

htmx 的起源是 intercooler.js,这是一个围绕 jQuery 构建的库,它基于 HTML 属性添加行为。

对于不熟悉它的开发者,jQuery 是一个久负盛名的 JavaScript 库,它在浏览器实现非常不一致的时代,使得编写跨平台 JavaScript 变得容易得多,当时 JavaScript 还没有现在许多便利的 API 和功能。

如今,许多 Web 开发者认为 jQuery 是“遗留软件”。尽管尊重这种观点,jQuery 目前在 75% 的所有公共网站 上使用,这个数字远远超过所有其他 JavaScript 工具。

为什么 jQuery 一直如此普遍?

以下是我们认为促成其持续成功的三个技术原因:

htmx 是新的 jQuery

当然,这是一个荒谬(且傲慢)的声明,但这是 htmx 团队努力追求的 理想

特别是,我们希望模仿 jQuery 的这些技术特性,这些特性使它成为 Web 开发者工具包中低成本、高价值的添加。Alex 已经 讨论了 “构建 100 年 Web 服务”,我们希望 htmx 成为正好适用于该用例的有用工具。

使用 jQuery 构建的网站在线时间很长,使用 htmx 构建的网站应该能够做到同样(或更好)。

今后,htmx 将以其 现有 用户为导向进行开发。

如果你是 htmx 的现有用户——或正在考虑成为一个——这就是含义。

稳定性作为一项特性

我们将努力确保 htmx 在 API 和实现上都极其稳定。这意味着接受并 记录当前实现的 quirks

升级 htmx 的人(即使从 1.x 到 2.x)应该期望事情继续如前一样工作。

在适当的情况下,我们可能会添加更好的配置选项,但不会更改默认值。

无新特性作为一项特性

我们将越来越倾向于不接受库核心中的新拟议特性。

人们不应感到升级 htmx 的压力,除非有特定 bug 需要修复,他们应该感到安心,2025 年写的 htmx 将与 2035 年及以后写的非常相似。

当新浏览器特性可用时,我们将考虑新核心特性,例如我们 已经在支持的浏览器上 使用 实验性的 moveBefore() API。

然而,我们期望大多数新功能通过 htmx extensions API 进行探索和交付,并在 适当情况下努力使 extensions API 更强大。

季度发布

我们的发布计划今后将大致为季度。

htmx 不会有死亡行军式的升级,也没有理由监控 htmx 发布以获取主要 功能变更,就像 jQuery 一样。如果 htmx 1.x 对你工作良好,就没有理由觉得你 需要升级到 2.x。

推广超媒体

htmx 不旨在成为构建 Web 应用和服务 的完整解决方案: 它 泛化超媒体控件,大致就是这样。

这意味着改进 htmx 的一种非常重要的方式——并且还有大量工作要做——是通过帮助改进人们 与 htmx 结合 使用 的工具 和技术。

这样做使 htmx 显著更有用,而 无需 对 htmx 本身进行任何更改。

支持补充工具

虽然 htmx 在你的 HTML 中提供了一些新工具,但它对构建你的 网站的其他重要方面没有意见。htmx 的一个旗舰特性是它不规定你使用什么后端或数据库。

htmx 与许多后端兼容,我们希望 帮助使超媒体驱动开发对所有这些后端更好地工作。

htmx 已经帮助改进的超媒体生态系统的一个部分是模板引擎。当 我们 首次撰写 关于“模板片段”如何使定义部分页面 替换变得简单得多时,它们在模板引擎中还是相对罕见的特性。

如今片段要常见得多,那篇论文 经常 被引用 作为 构建该特性的灵感来源。

编写基于超媒体的应用的体验还有许多其他改进方式,我们将 致力于识别和推广这些努力。

写作、研究和标准化

虽然 htmx 今后不会发生剧变,但我们将继续积极宣传超媒体的想法。

特别是,我们正试图通过 Triptych 项目htmx 的想法 推入 HTML 标准本身。在理想的世界中,htmx 功能会融入 Web 平台本身。

当然,今天写的 htmx 代码将永远继续工作,但从长远来看,或许无需 包含库即可通过超媒体实现 类似的 UI 模式

Intercooler 是正确的

intercooler 文档的结尾,我们说过:

许多 JavaScript 项目以令人眼花缭乱的速度更新。Intercooler 不是。

这不是因为它死了,而是因为它(大部分)是正确的:基本想法是正确的,实现 至少足够正确。

这意味着项目不会有持续的活动和 churn,而是 一个 stewardship 关系:现在的主要目标是不搞 砸它。文档将得到改进,测试将被添加,小型新声明性特性将在边缘添加,但不会有大规模重写或持续更新。这与软件行业 总体以及前端世界特别是形成对比,后者有可笑水平的 churn。

Intercooler 是 Web 开发的一个坚固、可靠的工具。

撇开 第三段结尾的讽刺 不谈,这种思考 非常适用于 htmx。事实上,或许更适用,因为 htmx 是一个独立的软件,从 intercooler.js 的经验(和错误)中受益。

我们希望看到 htmx 以其自己的小方式,加入像 jQuery 这样的巨头行列,成为 构建你的 100 年 Web 服务 的坚固、可靠工具。

</>