我们2013年Opera使用Chrome时,失去了Opera。今年早些时候,Edge也遇到了同样的事情 当它也使用Chrome时。Mike Taylor 在我想要观看的一场演讲中将这些变化称为 “浏览器引擎世界正在减少多样性”。
所以,我们剩下的只有Chrome、Firefox和Safari。Chrome和Safari拥有相同的血统,但已经足够不同,发展也足够独立,并且彼此之间也足够独立,因此将它们视为彼此不同的有意义。
我知道表达这一点有更花哨的词语。例如,浏览器引擎本身拥有不同的名称,这些名称与浏览器的名称不同。
以Chrome为例,它基于开源项目Chromium,该项目使用渲染引擎Blink和JavaScript引擎 V8。
Firefox使用Gecko作为其浏览器引擎,它正在转变为Quantum,该引擎具有像Servo这样的CSS和渲染子部分。
Safari使用WebKit作为浏览器引擎,该引擎具有像WebCore和JavaScriptCore这样的部分。
这一切都有些复杂,我不确定自己是否完全理解。我的大脑只是将其视为主要浏览器名称下的所有内容。
从减少多样性的角度来看待这个问题的两个极端
- 这很糟糕。 减少多样性可能会阻碍生态系统竞争和创新。
- 这很好。跨引擎问题是世界上主要的生产力损失。减少到一个生态系统会更好。
无论如何,这都是不可逆转的。我们只能展望未来。
随机想法
- 也许多样性只是改变了范围。与其说浏览器引擎本身代表多样性,不如说我们剩下的引擎的分支可以相互竞争。也许从强大的基础开始是创新的好地方?
- 如果,上帝保佑,我们只剩下一个浏览器引擎,那么网络标准流程会怎样?人们担心的是,最后一个引擎不需要再担心互操作性了,它会肆意实现。但是,肆意实现是否意味着竞争环境永远不会恢复?
- 当浏览器在对用户有益但不影响网络标准的功能方面竞争时,这很棒。出色的密码管理器、用户保护功能、巧妙的书签想法、阅读模式、与支付 API 的干净集成、免费 VPN 等。这是 Opera 的策略,现在我们看到了更多类似的策略。 Vivaldi 致力于定制, Brave 加倍注重隐私和安全性,而 Puma 致力于盈利。
Brian Kardell 最近在他的“超越浏览器供应商”帖子中写了一些关于这些内容的文章。一个有趣的观点是,剩下的浏览器引擎都是开源的。这意味着它们可以并且确实接受外部贡献,这正是 CSS Grid 存在的原理。
WebKit 和 Chromium(Blink)中大部分 CSS Grid 的工作,并非由 Google 或 Apple 完成,而是由 Igalia 的团队完成的。
考虑一下:这项工作的优先级不是由供应商决定的,而是由有远见的彭博社投资决定的,该投资为这项基本上没有争议的工作提供了资金。
现在,这个想法还在继续
这不是一个独特的故事,它只是一个非常重要且高度可见的故事,值得宣传。事实上,仅仅在过去 6 个月里,Igalia 的工程师就在 CSS Containment、ResizeObserver、BigInt、私有字段和方法、响应式图像预加载、CSS Text Level 3、将 MathML 带到 Chromium、标准化 SVG 和 MathML DOM 以及更多方面做出了贡献。
我们在浏览器引擎多样性中失去的东西,可能可以在浏览器引擎的开放性和外部参与者的积极参与中找回。
我倾向于将浏览器引擎数量减少视为 Web 平台成熟的一种方式。
在我所有关于前端和后端区别的演讲中,我始终强调,我们在前端不知道我们的目标是什么。而后端开发人员总是知道他们的目标服务器是什么,以及该服务器托管的 PHP、Java 或其他什么版本。而且:只有一个解释器,它拥有 100% 的能力,并且没有错误。如果后端出现错误,那是你的错误。
前端有多么不同。我们拥有多个浏览器引擎,没有一个引擎能够完全理解 HTML、CSS 和 JS。即使它们能够理解,它们的知识和实现也会有所不同。操作系统的差异也会导致额外的差异,特别是针对表单控件的实现以及与辅助功能层的通信。
我的梦想是:如果所有浏览器供应商都能集中精力尽可能完美和互操作地将现有标准实现到所有现有浏览器中,那就太好了。
在我看来,Safari 纯粹是个笑话
– 每次更新都会出现新问题。
– 部分/未实现的标准。
– 滚动问题。
– 错误报告关闭并标记为“不会修复”。
– 桌面和移动设备之间存在不一致。
– 等等…
它基本上是新的 IE11,我们的代码库充满了 isSafari 和 if(getVersion()…) 调用,以及 -webkit- hacks。
举个例子,他们的最新更新(13)使我们的渐变图层从具有 overflow:hidden 的盒子中弹出。解决方法:translateY(0)…
我完全同意你的观点。我过去不得不为 Safari 的错误提出一些解决方案。它并不是很糟糕,但确实感觉它正在退化到 IE11 的领域。考虑到我主要在 Windows 上开发,这只会放大问题,因为使用像 Browserstack、其他模拟器或使用虚拟机运行 Safari 12+ 这样的工具非常令人讨厌。
虽然我同意垄断不是最佳选择,但为了多样性而牺牲权力比为了权力而牺牲多样性更糟糕
看看你 Mozilla
Chrome 和 Firefox 都由 Google 资助。而且,由于 Edge 现在也使用 WebKit,因此 Google 似乎已经垄断了 Web 标准。我不是说这是一件坏事,因为我非常喜欢 Google,但用你的话来说,“多样性是生活的调味品”。
如果只有 Chrome 存在,那么祝你好运跟上他们每周发布的各种新功能,这些功能仍在 TC39 上进行讨论。TC39 还有意义吗?如果你从现在起 10 年后开始开发浏览器,你需要实现多少东西?你的参考是什么?不,谢谢,谷歌全部掌控对我来说行不通。
一个重要的点经常被遗漏,那就是成本。开发和运营一个常青浏览器非常昂贵,这也是越来越少的组织能够负担得起它的一个很好的解释。
有趣的是,我们这些喜欢看到技术规范中不断添加功能的开发人员,促成了这种成本的上升。因此,也促使浏览器退出。
(如果供应商能够评论一下这种成本,无论是数百万还是数十亿美元,都是件好事。具体数字可以帮助我们理解现在维护浏览器的真正意义。)
你强调了很多很好的观点!浏览器引擎多样性降低意味着什么?
我认为 Edge 切换到 Chromium 引擎是一件好事。正如所述,多样性只是范围不同。微软已经明确表明了他们对 Chromium 以及对他们自己的分支的立场。
此外,只要参与 ECMA 的公司在推动 Web 标准,浏览器就可能处于安全状态。
将这种情况与 IE 和微软发生的事件进行比较。IE 是专有的,微软对浏览器市场份额有很强的控制力,微软对 Web 标准的贡献并不多。他们做了他们自己的事情。IE 很快就失败了。
而 Chromium 和 Google 则恰恰相反。Chromium 是开源的,Google 是 Web 标准的重大贡献者。诚然,Chrome 像当年的 IE 一样拥有非常高的浏览器市场份额,但更重要的是要注意的是开源软件以及对 Web 标准的贡献。开源软件意味着任何与 Google 无关的人也可以贡献。而 Google 与其他公司讨论 Web 标准也是一个鼓励的行为。
供应商环境更简单显然是好事。但是,如果 Google 处于领导地位,这种状况多久会变成反垄断问题呢?
很明显,大多数浏览器开发人员选择 Chromium 作为他们的引擎。苹果公司一如既往地坚持自己的做法,并且拥有大量的资金和人员来独立开发 WebKit。另一方面,由于 Firefox 的市场份额不断萎缩,Mozilla 应该更加担心 Chromium。Chromium 浏览器主导浏览器市场最大的问题是标准。正如他们所说,人多力量大,这使得 Chromium 能够制定标准,而不仅仅是遵守标准。房间里明显的大象是微软和谷歌的联合工程力量,共同开发了 Chromium。Firefox 团队能够跟上如此强大的工程师团队吗?这可能是 Mozilla 最大的担忧,而现在寻找合作伙伴似乎遥不可及。我建议 Mozilla 放弃 Gecko,转而使用 WebKit,并与苹果公司合作开发该引擎。否则,Gecko 似乎注定要失败。
除了… Mozilla 的引擎现在比 WebKit 强大得多。祝你好运,让苹果公司采用 Quantum 并与 Mozilla 合作。我也多次经历了“Safari 是新 IE”的痛苦。
我只是惊讶于,更多开发人员没有对苹果公司在 iOS 上强制所有浏览器使用 WebKit 感到厌恶。也许是因为大多数 iOS 用户甚至不知道 Edge、Opera 或 Chrome 没有使用它们的原生引擎,因为苹果不允许这样做。不幸的是,Android 也是如此,而且考虑到移动设备对如今网络的影响程度,我们对此要求存在一些问题。房间里另一头的大象是,Chromium 和 WebKit 都被认为是开源的,但主要由苹果、谷歌和微软等大型私营公司开发。除了在精神上被认为是开源之外,这两个引擎真的那么开放吗?