历史在重演:从KHTML到WebKit,再到Blink

时间:2019-03-05 06:33:45 来源:新凤凰娱乐注册 作者:匿名


上周四,谷歌宣布从WebKit分支其浏览器渲染引擎Blink。许多人认为这就像是一片蓝天,甚至是一个晚期的愚人节笑话,但事实上这件事很难避免,而且这是历史的重复。

什么是WebKit?是谁呀?

WebKit是一个开源浏览器引擎。它的前身是KHTML,这是一种由KDE于1998年开发的排版引擎,最初用于Linux和Unix等开源操作系统。当时,Apple认为它需要开发自己的浏览器,所以在比较Gecko引擎和Netscape(现在是Firefox)的KHTML引擎后,选择后者是因为KHTML具有更清晰的架构并且比Gecko小。 Apple工程师Don Melton于2001年6月25日正式离开KHTML,并在Apple内部开始进行WebKit开发。

最初,Apple和KHTML之间的关系很好。 Apple推出了KHTML,并于2003年推出了Safari,这是一款配备WebKit引擎的浏览器。但随着时间的推移,在WebKit和KHTML之间交换代码变得越来越困难。 Apple将在很长一段时间后提交大量更改,并且没有副本,许多功能可能只会被开发一半。对于KDE,将这些更改集成回KHTML非常困难。此外,Apple要求KDE开发人员在阅读Apple代码之前签署保密条款,KDE很难接受这一点。 2005年,KDE开发者开始公开攻击Apple,并表示双方关系已完全崩溃。

在媒体报道此事后,苹果做出了一系列让步。 2005年,Apple宣布WebKit是完全开源的(WebCore和JavaScriptCore,以前只是直接从KHTML移动,是开源的)。 KDE和Apple之间的关系也有所改善。一些KDE开发人员已经开始为WebKit提交更改。 Apple的团队还为Apple恢复了许多特定的修复,并实现了平台层的抽象,以成为引擎的核心。代码可以在其他平台上运行。然而,KDE并没有忘记苹果的背叛。他们没有完全参与WebKit的开发。相反,他们在2010年底推出了KDE开发平台4.5,并且支持KHTML和WebKit。谷歌的参与

谷歌参与WebKit开发是在2008年推出Chrome浏览器之前和之后.Chrome使用WebKit引擎是Android团队的推荐,Chrome主要使用KHTML的WebCore。它不使用Apple在WebCore之外开发的任何东西,而是使用自己的多进程浏览器体系结构。 。

但毕竟谷歌拥有大量的资源和人力。在上周WebKit的分支之前,大约50%的WebKit变化来自Google开发人员。剩下的一半来自Apple,其余来自第三方开发商,如KDE。开发人员。虽然谷歌的开发者开始提交大部分WebKit变更,但WebKit的最终决策权力是苹果的。根据一些第三方WebKit开发人员的说法,Apple和Google开发人员在沟通时并没有普通开源开发人员的那种相互支持。相反,他们更像是狮子看着对方。气氛紧张。

在Blink引擎爆发消息后,黑客新闻立即开始对两位开发者发表评论。大多数评论员认为,Apple目前的WebKit变更提交政策对非Apple开发者持敌对态度,特别是在WebKit 2中。许多人认为WebKit 2完全是Apple单方面推出的产品,并且没有与Google和其他相关人员进行谈判在WebKit开发中。

苹果开发人员也回应了这一点,Apple WebKit团队领导Maciej Stachowiak说:

如果我们想讨论历史,我们开发WebKit 2的主要原因是因为Chromium(Chrome的开源版本)从未将其多进程架构集成到WebKit中。这些代码始终位于Chromium自己的目录中。

我们在编写任何WebKit2代码之前询问了Google用户。他们希望将对多进程架构的支持集成到WebKit中。他们的回答是否定的。在这种情况下,我们面临的选择是成为一个敌对的Chromium分支,或编写我们自己的多进程架构,或继续使用单进程架构。我们选择编写自己的多进程架构。如果Google当时同意整合他们的多进程架构,那么我们肯定会接受它,并且事情的发展可能与现在不同。

无论谁是对错,苹果和谷歌显然已经在WebKit中走了一段时间。 KDE是一个完全开源的开发社区,不会对Apple构成任何真正的威胁。如果Apple和KDE过去无法保持良好的关系,就不可能与Google合作,谷歌是一家在许多领域与Apple建立竞争关系的公司。虽然很多人都认为WebKit项目有点像柏林墙上的空白,但显然有点幼稚。

谁将拥有未来

我们对未来一无所知,但我们可以看到以下几点:

WebKit将提交比以前少50%的新代码。

大多数第三方WebKit开发人员都将加入Blink项目。

谷歌的平台就是互联网本身,它将把所有资源都投入到Blink的开发中,而苹果最重要的平台就是iOS。

当没有Apple的“合作者”时,谷歌可以利用自己的速度推进浏览器技术。想在浏览器引擎中放置Dart虚拟器吗?没问题。 Google Native Client?能够。因此,Blink支持的网络技术很快就会超越WebKit。

如果我必须下注,我敢打赌Blink正在逐步取代WebKit,因为Blink对谷歌具有战略意义,而WebKit只是苹果公司封闭花园中的一只开源黑羊。

我们从WebKit的这段历史中看到了什么?首先,大公司总是以自己的利益为导向。第二,最精明的工程师是开源项目工程师,尤其是Unix生态系统中的开源项目; Chrome的WebKit部分仍然是KDE编写的WebCore。