查看原文
其他

Chrome 将一统天下?

Peter Bright CSDN 2019-02-15

微软弃用自家的 edgeHTML 渲染引擎而转用 Google 的 Chromium,到底是好还是坏?

作者 | Peter Bright

译者 | 虎说八道

责编 | 屠敏

出品 | CSDN(ID:CSDNnews)

微软决定终止自家的 Web 渲染引擎的开发转而使用 Chromium,这意味着对 Web 的控制至少从功能上来看,它已经完全转让给了 Google。考虑到这些公司过去的行为,当前看起来,这真是一个令人担忧的事情。

Chrome 本身约占桌面浏览器市场份额的 72%、Edge 约占 4%、基于 Chromium 的 Opera 只有 2%,不再更新的 Internet Explorer 有 5%,而且只有可用于 macOS 的 Safari 大约 5%。当微软转型完成后,我们会发现 Chrome 和 Chrome 衍生产品占据大约 80% 市场份额,只有 9% 的 Firefox 能够积极维护市场平衡。

至于移动浏览器市场,好像正在发生同样的事情,不过由于 Safari 的存在,这个情况有所好转。Chrome 占 53%,Safari 占 22% 左右,三星浏览器占 6%,UC 浏览器占 9%,Opera 占 5%,另外 2% 属于 Android 浏览器。这也意味着移动浏览器市场的三分之二是属于 Chrome 和 Chrome 衍生产品。


实力强悍的山景风格


Google 已经是一家对互联网发展方向产生重大影响的公司。它拥有最受欢迎的浏览器 Chrome 和一些访问量最大的网站(特别是同名搜索引擎,以及 YouTube 和 Gmail),Google 在很多场合都利用其强大的技术能力部署专有技术以让其他同行要摆出不断追赶的姿势。

早在 2009 年,Google 就推出了 SPDY,它是 HTTP 的专有替代品,它解决了 Google 认为现有 HTTP/1.1 的某些性能问题。但 SPDY 是一种公司行为,Google 负责设计和功能,Google 的评估并不完全错误。SPDY 在未来几年被其他浏览器和 Web 服务器采用,Google 的协议变得普遍。

随后,SPDY 被用作 HTTP/2 的基础,HTTP/2 是由互联网工程任务组(IETF)开发的 HTTP 协议的主要修订版,该协会是与整个行业的成员开发互联网协议的联盟。不可否认 SPDY 确实对 HTTP 的协议升级做了很大的贡献,最终 IETF 在 SPDY 的基础上做了大量修改在 2015 年交付了协议。

HTTP/3 也经历了同样的故事。2012 年,Google 宣布了一项新的实验协议 QUIC,旨在解决现有 HTTP/1.1 和 HTTP/2 的性能问题。Google 在 Chrome 与 Google 产品进行通信时使用了 QUIC。同样,QUIC 成为 IETF 升级开发 HTTP 的基础。

Google 不仅是一再努力取代 HTTP 协议,而且还致力于打造新的移动 Web 加载标准。Google AMP(“加速移动页面”)是一种简化的 HTML,结合了 Google 提供的 JavaScript,旨在加快移动 Web 内容的加载速度。今年,Google 表示将尝试使用 Web 标准构建 AMP,并引入了一种新的治理模式,使该项目得到更广泛的行业支持。


坏角色?


Google 一次又一次试图将网络协议推向其控制的专有方向,以便在与 Google 浏览器结合使用时提高其在线服务的性能,巩固 Google 的市场定位并使其他所有人处于不利地位。几乎每一次,面对这样的对抗都是来自社区,至少到目前为止,结果一直是行业标准,从 Google 的手中夺取控制权。

但其他情况的解决方案并不令人满意,YouTube 一直是一个特殊问题来源。Google 控制了网络流媒体视频的很大一部分,该公司曾多次对 YouTube 进行更改,使其在 Edge 和 Firefox 中变得更糟。有时,这些更改改善了 Chrome 中的网站体验,但即便如此也并非如此。

此前,一个声称自己是前 Edge 开发者表示:在没有明显的提示下,Google 改变了 YouTube 网站,添加了一个覆盖每个视频的隐藏的空 HTML 元素。此元素使 Edge 浏览器在访问 YouTube 的时候变得很慢,它损害了使用 Edge 浏览器电脑电池续航能力。而这一变化并没有改善 Chrome 的性能,似乎没有任何实际的优势。它只是伤害了 Edge,而 Google 声称使用 Chrome 的计算机电池寿命优于 Edge。微软询问 Google 是否可以删除该元素,但并没有得到回应。

最新版本的 Edge 解决了在访问 YouTube 时的问题并恢复了对应的性能。但是微软必须做额外的工作以确保 Edge HTML 与 We b兼容。

另一个案例是:YouTube 使用称为 HTML 导入的功能来加载脚本。HTML 导入尚未被开发人员或浏览器广泛采用,ECMAScript 模块预计将扮演相同的角色,但它们可以在 Chrome 中优先使用。对于 Firefox 和 Edge,YouTube 会发送 HTML 导入的 JavaScript 实现,这会带来显著的性能降低。这意味着在 Chrome 中加载一秒钟的 YouTube 网页在其他浏览器中需要花费很多秒才能加载。

这些行为可能不是 Google 的故意而为,他们可能在优化产品的时候根本不关心其他浏览器。“Google first, who cares about the rest?”但这对于其他的浏览器产商来说,这种方式真的是公平的竞争方式吗?


强者恒强,弱者消退


微软的转型既给 Google 越来越大的份额,也削弱了微软作为反对声音的地位。虽然 Edge 和 Internet Explorer 的市场份额很少,但微软也保留了一些影响力。它的 IIS Web 服务器控制着重要的 Web 存在,并且在 Windows 中内置新协议仍然很有价值,因为它增加了对软件开发人员的可访问性控制。

但现在,微软转向支持 Google Chromium 开源项目。微软一直非常明确地表示,它采用 Chromium 是为了确保最大的 Chrome 兼容性,而且它正在开发新的工程流程,以确保它可以快速集成、测试和分发,以免落后于 Google 浏览器的位置。

但这一承诺与微软的发展密切相关:这意味着,即使 Google 将 Chromium 推向了微软不同意或反对的方向,微软也没有什么选择,只能跟随它。

Web 开发者历来只关注标准合规性等这样的琐事,以及在市场环境迫使他们使用在多个浏览器中测试页面的方法。这就是早年 Firefox 如此痛苦的原因:大多数开发人员只在 Internet Explorer 中进行测试,这使得 Firefox 兼容性很高。随着 Firefox 和 Chrome 的市场占有率挑战了 Internet Explorer 的主导地位,跨浏览器测试变得至关重要。


浏览器市场的斗争对开发者工作量的影响


当开发人员仅在一个浏览器中进行测试和设计时,所耗费的时间应该是最低的。但如果要到第二个浏览器中测试可能非常昂贵且过程复杂,第二个浏览器通常会出现对第一个浏览器的特定行为的不知情依赖,这需要进行大量更改以找到最佳平衡点。从一个浏览器移动到两个已经意味着必须解决最恶劣的非标准代码和对实现怪癖的依赖。

随着 Chrome、Firefox 和 Edge 的竞争,对 Web 开发人员增强了相当多的难度。但随着 Edge 的移除以及 Chrome 占据了大部分市场的份额,这使得开发人员开发支持 Firefox 的成本变得更加昂贵。

Mozilla 首席执行官克里斯·比尔德担心这种整合可能会让 Mozilla 生存变得更加困难。Mozilla 是一个确保网络处于竞争格局的组织,它们是为了让市场不受任何一家公司的控制。现在 Mozilla 的立场已经变得很尴尬了,它正在严重依赖谷歌的资金支持。

浏览器市场未来会出现怎样的格局呢?你怎么看?

原文:https://arstechnica.com/gadgets/2018/12/the-web-now-belongs-to-google-and-that-should-worry-us-all/

作者简介:Peter Bright 曾经就职于微软,主要从事于编程和软件开发,Web 技术和浏览器以及安全性测试。

本文为 CSDN 翻译,如需转载,请注明来源出处。

 热 文 推 荐 

 2018 年,JavaScript 都经历了什么?

 AI 女性界的“扛把子”,凭一己之力迫使 NIPS 改名

 如何用 Python 解读著名的“三门问题”?

☞ 面向对象编程,再见!

☞ 云计算到底是怎么玩的?

☞ 00后也会「玩」区块链,你对「朝阳」行业焦虑啥 ?| 圣诞特辑(文末有福利)

 何恺明等最新突破:视频识别快慢结合,取得人体动作AVA数据集最佳水平

 霸气!女程媛征男友的需求说明书!


print_r('点个好看吧!');
var_dump('点个好看吧!');
NSLog(@"点个好看吧!");
System.out.println("点个好看吧!");
console.log("点个好看吧!");
print("点个好看吧!");
printf("点个好看吧!\n");
cout << "点个好看吧!" << endl;
Console.WriteLine("点个好看吧!");
fmt.Println("点个好看吧!");
Response.Write("点个好看吧!");
alert("点个好看吧!")
echo "点个好看吧!"

喜欢就点击“好看”吧!


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存