探索分叉网络:构建替代规范,明确多项目标以避现有网络弊端
引言本文档是一系列关于构建替代网络规范的非正式笔记旨在避开现有网络的诸多弊端同时保留其优点。需注意这不是正式规范内容可能随时间改变。网络由多个组件组成每个组件或许都要重新审视。目前我们先关注 HTML 规范截至 2026 年 5 月 6 日未压缩大小为 18.3 MiB其余部分后续再探讨。目标在构建规范之前我们要明确一系列目标这些目标将指导我们决定规范应涵盖和排除的内容。简洁性整个规范要简洁明了、篇幅短小这样才能以较低成本开发出多样化的浏览器和其他客户端。要在数十年内保持简洁很难甚至几乎做不到。一种办法是限制规范的长度字节数。我们在 Dillo 中用了这种技术将版本控制在一张软盘的容量内所以可以沿用此方法把完整规范压缩成 tar.gz 文件大小限制在 1.44 MiB。语义化版本控制当前的 [Web 规范](https://html.spec.whatwg.org/multipage/) 约每周更新一次这让编写符合规范且无需频繁修改的客户端变得极为艰难。相反规范应采用精确的语义化版本如 1.2.3。这样我们就清楚符合 1.2.3 版本的页面能由支持 1.2.3、1.2.0 或 1.3.0 版本的浏览器正确渲染但不支持仅支持 1.1.0 或 2.0.0 版本的浏览器。采用语义化版本能让开发者专注于标准本身而非特定浏览器的当前实现状态。比如你可以针对 1.2.0 版本进行开发因为已知约 90% 的浏览器支持该标准。已发布的标准绝不能更改。若发现拼写错误可通过更新补丁版本号修正引入向后兼容的新特性时更新次版本号进行重大变更时更新主版本号。这意味着你可以买 1.2.0 标准的印刷版在荒岛上依据此版本开发出完全符合标准的浏览器该浏览器始终能正确解析 1.2.X 版本的文档。严格的语法规则规范必须有清晰明确、易于解析的形式语法。页面可据此标准测试是否符合规范。不符合规范的页面不会被渲染客户端严禁接受任何不符合规范的页面。这样能避免为修正错误页面制定复杂的标准化规则还能促使规范在后续版本中修正自身错误。严格的语法规则或许会促使人们转向更易编写且容错性更高的语言如 Markdown这正是我们期望的效果。目标是简化解析器降低创建可操作内容工具的成本。特别地补丁版本号的变更只涉及措辞修改语法不变。尽可能复用 HTML要是能构建 HTML 的子集让它在现有软件中轻松运行那再好不过。但考虑到 HTML 解析的复杂性这可能实现不了。同样为 XML 文档创建形式语法也不容易。所以需要评估 HTML/XML 是否适合简单解析。抵御标准垄断网络存在一个问题一旦垄断企业找到从中获利的办法就会有动机控制标准并为自身利益修改。就网络而言这导致标准复杂度失控增加了新浏览器的进入门槛降低了市场竞争。我对如何避免这种情况有一些初步想法但需要从博弈论的角度深入研究。文本优先规范的目标是提供足够详细的信息让人们能像阅读印刷书籍或文章一样在人与人之间传递信息。书面文本应作为首选媒介因为它是最通用的信息编码方式可翻译、由计算机朗读或紧凑存储。文本应能根据屏幕大小自动换行确保同一文档在大小屏幕上都能正常阅读。无脚本化引入脚本功能是个错误现在我们可以避免。这并不限制用户使用交互式程序。例如目前在浏览器中用 JavaScript 加载的交互式地图可通过 [Geo 链接](https://en.wikipedia.org/wiki/Geo_URI_scheme) 在支持该协议的客户端中打开指定位置。同样只要有 [开放规范](https://en.wikipedia.org/wiki/Tiled_web_map#Standards)任何客户端都能使用服务器的地图切片。使用原生程序加载标准化文件或 URL 的优势在于它能针对使用的设备优化避免许多交互式网页“一刀切”的问题。非目标我们的目标不是逐功能地克隆网络而是创建一个规范让人们能在不运行完整虚拟机的情况下交换知识、笔记和其他形式的信息。 [- 返回](../index.html)