01|有些标准死得很安静
前面几篇写的,大多是那种热闹的冲突。
有人吵。
有人骂。
有人在邮件列表里掀桌子。
可 Web 标准史上,还有一种更冷的死法:
规范在。文档在。草案也在。就是主流引擎越来越不想碰。
这种死法没有前缀危机那么喧哗,却更让人心里发凉。因为它说明一件事:
W3C 把纸写出来,并不等于浏览器一定会买单。
如果你要找一个最典型的案例,CSS Regions 几乎就是教科书。
它的愿景很美,写出来的时候也很像未来。
可真正走到浏览器引擎的维护现场,它却越来越像一块沉重、昂贵、谁都怕接手的设备。
第七篇就讲这个。
不是“CSS Regions 是什么”,而是:
为什么一项看上去很高级、很合理、甚至已经被写进标准流程的能力,最后会被主流引擎公开嫌弃到直接拆掉。
02|Adobe 想要的是“网页终于像杂志”
你先得承认,CSS Regions 的梦想并不难理解。
它想解决的,是 Web 上一个很老派、很出版业的问题:
文字能不能像杂志排版那样,从一个区域自然流到另一个区域?
不是简单的多列。
而是那种设计师很熟悉的感觉:文本绕着图片走,从一个版块流到另一个版块,排版像一篇真正被设计过的文章,而不是被浏览器随手堆出来的一页网页。
这正是 Adobe 特别在乎的东西。
你把 Adobe 的出身想一想,就不难明白它为什么会盯上这条路线。它长期活在排版、出版、设计工作流里,天然就想把 Web 往“更像成熟出版媒介”的方向推。
所以在 Regions 这件事上,Adobe 不只是提倡者,还是非常重要的实现推动者。它往 WebKit 里贡献代码,和规范推进也绑得很紧。后来很多资料提到这段历史,都会说得很明白:Adobe 基本是 Regions 这条线的头号布道者。
如果你站在 Adobe 那边看,这件事甚至带着点理想主义色彩:
Flash 那些曾经理所当然的版面控制能力,能不能别靠插件了,直接进开放 Web?
这问题本身,一点都不荒唐。
甚至可以说,很有诱惑力。
03|Google 想要的却不是“更像杂志”,而是“更像操作系统”
真正的矛盾,不在 Regions 能不能讲通。
而在于 Google 对 Web 的想象,和 Adobe 并不是同一种未来。
到了 2013 到 2014 年 这个时间点,Blink 已经从 WebKit 分出来了。Google 对 Blink 的要求也越来越明确:更快、更轻、更适合移动设备、更适合应用场景。
这里你就能看出两边世界观的差异。
Adobe 想的是:
“网页能不能更像精致排版成品?”
Google 想的是:
“Blink 能不能在手机上更快、更省电、更像一块能跑应用的平台?”
这两种想法平时可以并存。
可一旦某个功能开始变得很重、很复杂、很拖性能,它们就会正面撞上。
CSS Regions 偏偏就是这样的功能。
它不是一个加个属性、补个解析器的小玩意儿。它牵扯到文本流转、碎片化、布局算法、渲染管线,一旦真往引擎深处扎进去,复杂度就会上来。
而复杂度这个东西,在规范文档里通常写不出杀气。
在维护代码的人眼里,却是实打实的工伤。
04|2014 年 1 月:Google 公开说,这玩意儿不值得
真正让这件事变成公开事件的,是 Eric Seidel 在 Blink 开发讨论里的表态。
时间是 2014 年 1 月。
他的意思非常直,也非常伤人:
- CSS Regions 不该在 Blink 里发货
- 它带来了大量当前和未来的复杂度
- 这份复杂度和它带来的收益严重失衡
- Blink 2014 年的重点是移动端性能
- Regions 不但和现有性能优化不合拍,还会妨碍后续简化和优化
更扎心的是那些具体数字。
Seidel 提到,他试着把 Regions 相关代码从本地 checkout 里拆出来,结果非常吃惊:光移除 Regions 相关改动,补丁就有一万多行;而且大约一半代码还散在 140 多个文件里。
这组数字太有画面感了。
你几乎能想象一个工程师坐在电脑前,本来想“我先看看这功能到底有多重”,结果越看脸越黑。
这也是 Google 当时最真实的态度:
不是说 Regions 没有价值,而是说它的价值,不值这个维护成本。
你从后来媒体的标题里都能闻到这种嫌弃。
Ars Technica 直接写:
Google plans to dump Adobe CSS tech to make Blink fast, not rich
翻译过来几乎就是:
“Google 打算把 Adobe 这套东西扔了,好让 Blink 快一点,而不是更花哨一点。”
这标题已经很不客气了。
但它确实抓住了冲突的核心。
05|Adobe 说:你嫌重,是因为你把难题全算到我头上了
如果故事只停在 Google 这边,那它会看起来像一场干脆利落的技术裁员。
但 Adobe 那边并不认。
它的反击逻辑也很有力。
大意是:
你看到的复杂度,不全是 Regions 独有的负担。很多和内容碎片化相关的复杂性,本来就是 Web 排版系统迟早要面对的。
换句话说,Adobe 觉得 Google 这是在把一整类底层难题,全打包甩锅给 Regions。
而且从 Adobe 的角度看,这件事还有另一层难堪:
我辛辛苦苦把一套能力推进到实现和标准流程里,代码都贡献了,结果你分叉出 Blink 之后,反手说这功能太重,不玩了。
这会让人非常不爽。
所以当时支持 Regions 的人反应也很激烈。CNET 等报道里甚至提到,Adobe 一方认为 Google 的处理方式过于 draconian,也就是近乎“下手太狠”。
你可以把这场争执想成一次很典型的标准化失配:
- 提案方觉得:这能力代表 Web 的未来,复杂一点正常
- 引擎维护方觉得:未来没问题,但你不能让我现在就背这么重的锅
两边其实都不是在说谎。
他们只是站在不同的账本前面记账。
06|最致命的一点:标准并不能强迫引擎喜欢你
这件事最值得写进“CSS 江湖”的,不只是 Adobe 和 Google 吵了一架。
而是它把一条很多人不愿意承认的现实摆在了台面上:
标准不是命令。
哪怕你已经有草案、有编辑、有规范文本,甚至已经进了 W3C 的轨道,只要主流引擎认为:
- 成本太高
- 复杂度太分散
- 性能代价太重
- 维护意义不大
它照样可以不买单。
这就是 CSS Regions 让人背后发凉的地方。
因为它不是“某项提案太早夭折”。
它是已经走到相当靠前的位置了,甚至一度进过实际引擎,却依然能在现实压力下被主流实现公开拆掉。
这跟前缀危机完全不是同一类问题。
前缀危机是:实现跑太快,规范追不上。
Regions 这件事是:规范在前面站好了,实现却扭头说,这条路我不走。
后一种情况,其实更让人无力。
因为它说明,标准化的胜利,从来不是文档发布那一刻,而是主流实现愿意长期为它交维护费的那一刻。
07|为什么说它成了“纸上标准”的代表作?
因为 CSS Regions 特别像一种标准化幻觉。
从远处看,它什么都有:
- 愿景很动人
- 需求很真实
- 规范有文档
- 实现也不是零
可一旦你走近看,会发现它缺最关键的东西:
持续而广泛的主流引擎承诺。
没有这个,再漂亮的文档也可能只是纸上富贵。
所以 CSS Regions 这件事,特别适合拿来提醒所有写标准史的人:
别把“规范存在”误写成“行业接受”。
这两件事,差得远。
W3C 可以证明一件能力值得被讨论。
浏览器引擎才会决定它值不值得长期活在生产世界里。
而现实往往残酷到一点也不浪漫。
它不管你是不是优雅。
它只问:
“你重不重?你值不值?你会不会拖慢我别的目标?”
Blink 在 2014 年给 CSS Regions 的答案,显然是:
太重了,不值。
如果你只记一句,那就记这句:
CSS Regions 最扎心的地方,不是它被删了,而是它证明了:标准写出来,不等于主流引擎会陪你把梦做完。
编者注(事实核对):CSS Regions 的规范文档仍可在 CSSWG drafts 查到,表明其并非“从未存在”的提案。2014 年 1 月 Blink 团队围绕 Regions 的公开讨论、Eric Seidel 关于复杂度、移动性能优先级、以及 “1 万多行、140+ 文件” 的说明,可由 blink-dev 讨论串与相关媒体报道互证。Adobe 方面关于复杂度与 fragmentation 绑定、以及对 Google 处理方式的不满,见同期报道与讨论。文中将其概括为“纸上标准”,是对“规范存在但主流实现缺乏持续承诺”这一现象的写作性总结,不是 W3C 官方定性。
关键人物速览
- Eric Seidel:Blink 团队的重要工程师。第七篇里那句“这东西不值得 ship”的态度,最集中地体现在他的公开讨论里。
- Mihnea Ovidenie:Adobe CSS Regions 团队的重要成员之一。站在 Adobe 一侧,他代表的是“这项能力值得 Web 拥有,而且复杂度不该全算到它头上”的立场。
- Andrei Bucur:Adobe CSS Regions 团队成员之一。与 Mihnea 一样,属于 Regions 路线的直接推动者。
- Håkon Wium Lie:这一次不是作为 CSS 创始人出场,而是作为 Opera 一侧对 Regions 持批评态度的重要声音出现。
- Adam Barth:Blink 相关讨论中的关键人物之一。他代表的是另一种非常现实的判断:为了性能和简化,某些标准一致性成本也可能被主动放弃。
参考与延伸阅读
CSS Regions Module Level 1(当前 drafts)
https://drafts.csswg.org/css-regions/Blink 开发讨论:CSS Regions in Blink: status, future work
https://groups.google.com/a/chromium.org/g/blink-dev/c/kTktlHPJn4Q/m/0r4yjDGWJFEJArs Technica:Google plans to dump Adobe CSS tech to make Blink fast, not rich
https://arstechnica.com/information-technology/2014/01/google-plans-to-dump-adobe-css-tech-to-make-blink-fast-not-rich/CNET:Reversing course, Google rejects Adobe Web publishing tech
https://cnet.com/tech/services-and-software/reversing-course-google-rejects-adobe-web-publishing-techChromium Code Review:Remove CSS regions support
https://codereview.chromium.org/134473008I Programmer:Google Removes CSS Regions From Blink - An Optimization Too Far
http://www.i-programmer.info/news/191-htmlcss/6889-google-removes-css-regions-from-blink-an-optimization-too-far.html
下篇预告:为什么有些 CSS 熬成了标准,有些却死在半路上。