Google 强迫微软弃用 Edge 内核?
一场巨头之间的合作触发的“战争”......
去年 10 月,微软低调地上线了基于 Chromium 的 Android 版 Edge。
而一周前,微软 Windows 副总裁 Joe Belfiore 在官方博客对外宣布微软放弃基于 EdgeHTML 的 Web 渲染引擎的开发,转而让自家的桌面版 Edge 浏览器也将采用 Chromium 开源项目。
整体而言,微软动身去拥抱起 Google 的 Chromium,还是让不少开发者为之兴奋:
前端工作量 - 80%;
前端工程师终于要从兼容 IE 的噩梦中逃脱出来了;
犹记得被 IE6 支配的恐惧;
从 IE 到 Edge,存在的唯一功能就是用它下载个 Chrome,然后就结束使命了!
不过事情总是具有两面性,就在大家拍案叫好的时候也有部分业界从业者对浏览器引擎的减少感到担忧,同时还有人提出,为什么微软会改用更慢、更耗电的渲染引擎?
事实上,会有这种质疑声音也纯属正常。想当年 Opera 浏览器弃用自家 Presto 引擎转用 WebKit 时,不少开发者均发出一声惋惜,并表示 Opera 放弃自己浏览器的灵魂,放弃自己创建的一切开始,从此,它就和 360、猎豹等浏览器处于同一水平线了。至于采用 WebKit 或许只是纯商业行为。
而如今微软的这一举措,现实来看,在提高 Web 兼容性且有效地减少 Web 生态系统中碎片化问题的同时又何尝不是一种商业行为呢?况且选择应用较广的 Chromium 浏览器项目也不是第一次了,但令人惊讶的事,就在此时,有一位自称是前微软 Edge 团队软件工程实习生 Joshua Bakita 透露,微软放弃 EdgeHTML 渲染引擎切换到 Chromium 的原因之一是 Google 挖了坑,迫使微软不得不将浏览器内核基于 Chromium 项目开发。
微软换浏览器内核源于 Google 挖坑?
两天前,Joshua Bakita 在 Hacker News 上发表评论称,Google 不断改变他们的网络应用程序,导致这些程序无法在其他浏览器上兼容运行(https://news.ycombinator.com/item?id=18697824):
我最近在 Edge 团队工作,我们决定结束 EdgeHTML 的开发,原因是 Google 不断对其网站进行更改,导致其它浏览器无法跟进。
例如,它们最近在 YouTube 视频网站上添加了一个隐藏的空 div 参数,导致我们无法启用 fast-path 硬件加速(Windows 10 2018 十月更新中应该已经修复)。
在这之前,我们相当先进的视频加速功能,可以在电池续航方面领先于 Chrome 。但在他们搞破坏的那一刻开始,就开始宣传 Chrome 在视频播放的续航上优于 Edge 。
令人遗憾的是,Chrome 取得的领先优势,并非来自于巧妙的优化工作,而是 YouTube 网站上动了手脚。总而言之,他们只让网络变得更慢。
虽然目前无法确定他们是否有意为之,但我的很多同事都非常相信,他们亲自参与了调查。
作为补充,当我们发去质询时,YouTube 拒绝了删除隐藏空 div 代码的请求,但并没有进一步的说明。而这,仅仅是其中的一个案例。
其实在这事件发生之前,就有许多 Windows 10 用户指控,相比 Google 的 Chrome 浏览器,YouTube 运行在其他浏览器上时,确实会存在不兼容的现象。接着没多久,来自 Mozilla 的高管 Chris Peterson 在解释 Google 的 Polymer 框架设计实践时,似乎进一步验证了用户的指控:
Firefox 和 Edge 浏览器上的 YouTube 页面加载速度比 Chrome 浏览器慢 5 倍,因为 YouTube 的 Polymer 框架在重新设计之后依赖于 Chrome 专有的 Shadow DOM v0 API。
截止目前,该评论引发了网友的热议,甚至有人表示,如果是真的,微软应该起诉 Google,这不仅仅是出于企业自身利益考虑,还因为这种行为实在太恶劣了,应该给予制止。
Google 的今天,微软的昨天
倘若今天 Google 真的在 YouTube 上动了手脚,从而导致主流应用程序在其他浏览器上的不兼容,进而让其他企业使用自家开源浏览器的项目,那么这件事看起来还颇有讽刺意味。据外媒 The Register 报道,在 20 世纪 90 年代的第一次浏览器大战中,微软利用其市场的主导地位,一步一步消灭了彼时拥有最高达 90% 市场占有率的 Netscape Navigator 浏览器。
再者微软利用 Windows 操作系统的市场地位,将 IE 捆绑其中强加到每个人的 PC 上,然后,一旦 IE 浏览器成为浏览器市场的大玩家,就坚持选择实施不同的标准。
这导致网站设计人员需要为 IE 兼容自己的网站,在许多情况下,用户只得使用该浏览器才能正常浏览网站(“在 Netscape 中浏览最佳”或“在 Internet Explorer 中浏览最佳”这样的警告当时很常见)。
也正因此,微软因 IE 浏览器的地位遭到了美国和欧洲的反垄断调查。不过,就是在这个时期,Netscape 的衍生品 Firefox、Google 的 Chrome、Opera 等浏览器迅速崛起,这直接带来了两个结果,一是让 IE 不再被调查,二是这些浏览器逐渐瓜分了 IE 原有的市场份额。
如今,三十年河东三十年河西,Chrome 俨然成为这个市场的主导者,而 IE 的辉煌早已不再。正是在这样的一种局面下,许多人觉得今天的 Google 宛如昨天的微软,利用自己的主导地位来巩固对市场的控制。
Google 回应:YouTube 空白 div 只是为了修复 Bug
不过,据外媒 The Verge 报道,Google 对 Joshua Bakita 的说法表示质疑,并回应称,YouTube 空白 div 只是为了修复一些 Bug。
同时,YouTube 发言人在一份声明中说道:“YouTube 不会添加旨在破坏其他浏览器优化的代码,我们经常通过标准组织,Web 平台测试项目,开源 Chromium 项目等与其他浏览器供应商合作,以提高浏览器的互操作性。”
Chrome 的垄断让人不安
但是 Google 姗姗来迟的回应并没有消除很多开发者心中的质疑,而之所以会有这样的现状,究其根本,还是因为微软宣布将其浏览器引擎改用 Chromium 后,如今的 Google 拥有的控制力大到令人不安。
根据网站通讯流量监测机构 StatCounter 数据显示,Chrome 是目前最流行的浏览器,市场份额约为 61.77%,而相比之下,Firefox 为 4.92%,而 Edge 不在榜上,IE 也仅有 2.82%。
基于这种现状,其实在本月早些时候,Mozilla 的 CEO Chris Beard 就曾表达过自己的担忧:
Google 是个激烈的竞争对手,拥有才华横溢的员工,对独特资产拥有垄断控制。Google 在搜索、广告、智能手机和数据捕获方面的主导地位带来了明显一边倒的竞争环境。
从社会、公民和个人赋权的角度来看,将底层在线基础设施的控制权交给一家公司是非常糟糕的。这就是 Mozilla 存在的原因。我们与 Google 竞争并不是因为这是一个很好的商机,我们与 Google 竞争是由于互联网和在线生活的健康取决于竞争和选择。而这些依赖于消费者能够决定自己想要更好的东西并采取行动。
让 Google 变得更强大在许多方面都存在风险。答案主要取决于创建服务和网站的 Web 开发者和公司企业的所做所为。如果像 Chromium 这样的产品有足够的市场份额,那么 Web 开发者和公司企业就更容易决定不用担 心自己的服务和网站是否与 Chromium 之外的其他任何浏览器兼容。微软在 Firefox 发布前的 21 世纪初垄断浏览器市场后就发生了这种事,而这种事可能再次发生。
来源:fossbytes.com
微软使用 Chromium 带来的影响
现在要说 Google 会不会因为 Chrome 的市场份额逐渐增大而招致祸端,其实很难说。不过基于此次事件,微软虽没有正面回应前实习生的评论,但该公司表示,“Google 一直是一个很好的合作伙伴,我们期待微软的 Edge 的未来发展。”
事实上,对用户而言,撇开微软与 Google 的商业利益不谈,微软拥抱 Chromium 开源项目未尝不是一件好事。因为新的基于 Chromium 的 Edge 将会作为软件独立更新,这意味着开发者不必等待 Windows 10 操作系统更新后再去重新兼容 Edge 浏览器了。
对此,你怎么看?
参考:
https://fossbytes.com/google-accused-of-sabotaging-microsofts-edge-browser-by-ex-engineer/
https://www.theverge.com/2018/12/19/18148736/google-youtube-microsoft-edge-intern-claims
https://www.theregister.co.uk/2018/12/18/google_monopoly_abuse_claims/
CSDN云计算,提供云计算、大数据、虚拟化、数据中心、云计算产业咨询等服务。
热 文 推 荐
☞ 谁还能救小黄车?
☞ Python 分析 35 年的考研英语真题词汇,解读孤独的考研大军!
☞ 刚发布!Python 一二线城市月薪 15K 起!12 月再夺语言榜首
print_r('点个赞吧!');
var_dump('点个赞吧!');
NSLog(@"点个赞吧!");
System.out.println("点个赞吧!");
console.log("点个赞吧!");
print("点个赞吧!");
printf("点个赞吧!\n");
cout << "点个赞吧!" << endl;
Console.WriteLine("点个赞吧!");
fmt.Println("点个赞吧!");
Response.Write("点个赞吧!");
alert("点个赞吧!")
echo "点个赞吧!"