Atom 在关键之处比 RSS 更好
Atom 通常被视为一种在技术上更干净、更一致的 Web feed 替代方案,尤其是在处理 HTML、字符编码以及无歧义元数据时;但由于惯性和遗留支持(尤其在播客领域),RSS 仍然占主导地位。评论者指出,大多数现代 feed 阅读器都会透明地支持两者,最终用户几乎不在意这种区别,而像 JSON Feed 这样的新方案对开发者来说可能更实用。讨论还涉及如何在数据库中存储 feed 数据、轮询与更新策略,以及在标题中允许富 HTML(如代码或强调)所带来的问题。
Atom vs RSS:技术优势
- 许多人认为 Atom 的规范更严格、歧义更少,尤其是在编码、时间戳和混合内容方面,相比 RSS 更胜一筹。
- Atom 能更干净地处理标题中的
</&,并支持摘要和完整内容;这避免了在真实世界 RSS 源中常见的编码错误。 - 批评者指出,Atom 的 XML 正确性可能会让人感到“烦人”(例如 XHTML vs HTML5、要求绝对自链接),但支持者认为,正确的 XML 解析会让这些问题变得直接明了。
- 有人指出 RSS 存在多个不兼容版本,这削弱了其“向后兼容”优势的说法。
采用、命名与“更差即更好”
- 一个常见现象是:即便底层源实际上是 Atom,人们口头上也都会把它叫作“RSS”。
- 一些评论者把 RSS vs Atom 比作 VHS vs Betamax,或“更差即更好”:技术上更弱,但更早、更简单的方案赢了。也有人反驳说 VHS 实际上并不更差。
- 一种观点认为,如今使用 任何 feed 的人都很少(相对于所有互联网用户而言)。另一种观点则认为,RSS/Atom 用户的绝对数量可能比以往任何时候都高,只是占今天网络人口中的很小一部分。
开发者关注点:解析与存储
- 实用建议:
- 对于阅读器,解析 feed,并将规范化字段(标题、作者、日期、内容)存入各列。
- 也要保存原始 XML(例如 text/XML 列,或存到更便宜的 blob 存储中),以便在逻辑变化时重新处理。
- 使用 GUID 来检测新增/更新条目;不要因为条目从 feed 中消失就删除它们。
- 轮询时,先用 HTTP HEAD 检查内容是否变化,再用 GET;对于某些 feed,WebSub 可以提供推送。
- 有人指出,许多 feed 都是由脆弱的旧脚本生成的,因此会出现畸形的 XML/HTML 和编码错误。
标题、HTML 与 UI 一致性
- 一方认为:允许标题中包含 HTML(尤其是
<code>、<em>)在语义上很有用,而且 Atom 已经支持。 - 另一方认为:标题会出现在列表中;格式变化和 HTML 清理会让 UI 变得混乱且复杂。他们主张标题应该像 HTML
<title>一样工作(纯文本)。 - 还有人担心允许的 HTML 子集不一致,以及安全性/清理(sanitization)问题。
替代格式:JSON Feed、ActivityPub、Fediverse
- 有几位明确更喜欢 JSON Feed:更简单、没有 XML、字段更务实(例如 favicon/icon),并且是从阅读器的角度设计的。
- 也有人喜欢 Atom,但承认今天的 JSON 工具链更普及。
- ActivityPub/Fediverse 被简要提到为“新东西”,但没有深入讨论。
其他
- 播客被强调为一个仍然高度依赖 RSS 2.0 及其自定义扩展的领域;一些主要播客平台明确放弃了 Atom,或从未完整支持过它。
- 少数用户希望有更“主动”或类似推送的模型(例如类似 POP3、WebSub、本地优先/Fediverse 概念),而不是持续轮询。
- 还有人希望 feed 能标准化“全文 vs 摘要”的标记,并希望 HN 的用户评论也有 feed。