自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

歷史在重演:從KHTML到WebKit,再到Blink

系統(tǒng) 瀏覽器
上周四,谷歌宣布將停止使用WebKit作為Chrome瀏覽器的渲染引擎,并開發(fā)自己的網(wǎng)頁渲染引擎“Blink”,很多人覺得這像是晴天霹靂,但是其實這件事情是難以避免的,而且是歷史的重演。

上周四,Google宣布從WebKit 分支出自己的瀏覽器渲染引擎 Blink。很多人覺得這像是晴天霹靂,或者甚至是遲到的愚人節(jié)笑話,但是其實這件事情是難以避免的,而且是歷史的重演。 

什么是WebKit?它到底是誰的?

WebKit 是一個開源的瀏覽器引擎。它的前身是 KDE 在 1998 年開發(fā)的排版引擎 KHTML,最初用于 Linux 和 Unix 等開源操作系統(tǒng)。當時蘋果覺得需要開發(fā)自己的瀏覽器,所以在比較了 Netscape(現(xiàn)在的 Firefox)的 Gecko 引擎 和 KHTML 引擎后,選擇了后者,因為 KHTML 擁有更清晰的架構(gòu),而且比 Gecko 更小巧。蘋果工程師 Don Melton 在 2001 年六月 25 號正式從 KHTML 分支出來,在蘋果內(nèi)部開始了 WebKit 的研發(fā)。

開始的時候,蘋果和 KHTML 的關(guān)系還是不錯的。蘋果將 KHTML 發(fā)揚光大,在 2003 年推出了裝備 WebKit 引擎的瀏覽器 Safari。但是隨著時間的推進,WebKit 和 KHTML 之間交換代碼變得越來越困難。蘋果會間隔很長時間之后,提交一大批更改,而且沒有文案,很多功能可能只開發(fā)了一半。對于 KDE 而言,將這些更改整合回 KHTML 是相當困難的。此外,蘋果要求 KDE 開發(fā)者閱覽蘋果代碼之前必須簽署保密條款,KDE 也很難接受這一點。在 2005 年,KDE 開發(fā)者開始公開攻擊蘋果的做法,并稱兩方的合作關(guān)系已經(jīng)徹底瓦解了。

事情被媒體報道之后,蘋果做出了一系列的讓步。在 2005 年,蘋果宣布將 WebKit 完全開源(之前僅有從 KHTML 直接搬來的 WebCore 及 JavaScriptCore 是開源的)。KDE 和蘋果的關(guān)系也得到了一些改善,有一些 KDE 的開發(fā)者們開始為 WebKit 提交更改,蘋果的團隊也復(fù)原了很多為蘋果特定的修正,并且實現(xiàn)了平臺層的抽象化,使引擎的核心代碼可以在其他平臺上運作。但是 KDE 沒有忘記蘋果的背叛,他們沒有完全加入 WebKit 的開發(fā),而是在 2010 年底推出了 KDE 開發(fā)平臺 4.5,并列支持 KHTML 和 WebKit。 

[[69680]]

Google的介入

Google 加入 WebKit 的開發(fā)是在 2008 年 Chrome 瀏覽器推出前后的事情。Chrome 瀏覽器使用 WebKit 引擎是 Android 團隊的建議,而 Chrome 主要用的其實還是從 KHTML 那里來的 WebCore,它不太用 WebCore 之外蘋果開發(fā)的東西,而是使用自己開發(fā)的多進程瀏覽器架構(gòu)等。

但是 Google 畢竟資源和人力雄厚,在上周從 WebKit 分支之前,大約 50% 的 WebKit 更改來自于 Google 的開發(fā)者,剩下的一半大多數(shù)來自于蘋果,其余來自于第三方開發(fā)者,比如 KDE 的開發(fā)者。雖然 Google 的開發(fā)者開始提交大部分的 WebKit 更改,但是 WebKit 的最終決策權(quán)還是蘋果的。據(jù)一些第三方的 WebKit 開發(fā)者透露,蘋果和 Google 的開發(fā)者在交流時沒有一般開源開發(fā)者的那種相互支持,反而更像兩頭相互打量的獅子,氣氛比較緊張。

Blink 引擎的新聞爆出之后, Hacker News 上立刻開始有雙方的開發(fā)者發(fā)表評論。多數(shù)評論認為蘋果目前的 WebKit 更改提交政策對非蘋果的開發(fā)者是有敵意的,尤其在 WebKit 2 這塊。更有很多人認為 WebKit 2 完全是蘋果單方推出的一個產(chǎn)品,而且根本就沒有和 Google 以及其它參與 WebKit 開發(fā)的人進行協(xié)商。

蘋果的開發(fā)者也對此給予了答復(fù),蘋果 WebKit 團隊領(lǐng)頭人 Maciej Stachowiak 說:

如果我們要討論歷史的話,我們開發(fā) WebKit 2 的最主要原因是因為 Chromium(Chrome 的開源版)從來沒有將它的多進程架構(gòu)整合到 WebKit 里。這些代碼一直在 Chromium 自己的目錄中。

我們在寫任何 WebKit2 代碼前就問了 Google 的人,他們愿不愿意將多進程架構(gòu)的支持整合到 WebKit 中,他們的答案是否定的。在這種情況下,我們面臨的選擇是做一個懷有敵意的 Chromium 分支,或者寫我們自己的多進程架構(gòu),或者繼續(xù)使用單進程架構(gòu)。我們選擇了寫自己的多進程架構(gòu)。

如果當時 Google 同意整合他們的多進程架構(gòu),那么我們肯定是會接受的,事情的發(fā)展可能也會和現(xiàn)在不太一樣。

無論誰是誰非,蘋果和 Google 這兩家在 WebKit 中明顯已經(jīng)各走各的路有一段時間了。KDE 是一家完全開源,對蘋果沒有任何實質(zhì)性威脅的開發(fā)團體。如果當年蘋果和 KDE 都不能夠維持良好的合作關(guān)系,它是不可能和 Google,一家在多個領(lǐng)域與蘋果有你死我活級別競爭關(guān)系的公司,有什么良好合作的。雖然之前有很多人認為 WebKit 項目有點像柏林墻上的一個缺口,但這明顯有點天真了。

誰將擁有未來

未來的事情我們誰也不知道,但是我們能夠看到的有這幾點:

  • WebKit會比以前少50%的新代碼提交。
  • 絕大多數(shù)第三方WebKit開發(fā)者會加入Blink項目。
  • Google的平臺是互聯(lián)網(wǎng)本身,它會將所有資源傾注到Blink的開發(fā)之中,而蘋果目前最重要的平臺是iOS。
  • 當沒有蘋果這個“合作者”之后,Google可以用它自己的速度來推進瀏覽器科技。想在瀏覽器引擎中放一個Dart 虛擬器?沒問題。Google Native Client?可以。所以Blink支持的網(wǎng)絡(luò)科技很有可能很快超越WebKit。

如果我非要下賭注的話,我會賭 Blink 逐漸取代 WebKit,因為 Blink 對于 Google 是有戰(zhàn)略性意義的,而 WebKit 對于蘋果來說只是它封閉性花園中一只開源的黑羊。

從 WebKit 的這段歷史,我們還看到了什么?第一,大公司永遠以自己的利益為導(dǎo)向。第二就是,最牛掰的工程師是開源項目的工程師,尤其是 Unix 這個生態(tài)系統(tǒng)里的開源項目;Chrome 用的 WebKit 根本還是 KDE 寫的 WebCore,和蘋果基本沒有什么關(guān)系。

 

責任編輯:黃丹 來源: 36氪
相關(guān)推薦

2016-11-28 16:23:23

戴爾

2023-12-20 14:44:33

軟件開發(fā)DevOpsNoOps

2011-05-25 14:59:35

if elseswitch case

2015-03-16 10:12:15

移動詐騙電信行業(yè)315晚會

2020-05-17 13:59:37

物聯(lián)網(wǎng)工業(yè)物聯(lián)網(wǎng)工業(yè)4.0

2023-02-07 12:58:51

谷歌Chrome瀏覽器

2017-09-12 15:26:44

2020-08-13 17:18:20

Kubernetes邊緣容器

2019-04-11 15:45:08

ReactMixin前端

2021-08-12 18:48:31

響應(yīng)式編程Bio

2016-07-11 11:36:10

2009-07-01 10:11:04

.NETLINQ

2024-12-23 08:00:45

2023-05-24 09:00:28

DTW邊緣計算APEX

2025-02-05 09:55:29

2024-09-23 21:48:57

2023-04-06 09:42:00

LispHTMLQwit

2019-09-09 16:33:10

華為

2024-09-18 15:19:54

數(shù)據(jù)倉庫數(shù)據(jù)飛輪醫(yī)療數(shù)據(jù)

2024-09-26 09:32:48

數(shù)據(jù)倉庫數(shù)據(jù)中臺數(shù)據(jù)飛輪
點贊
收藏

51CTO技術(shù)棧公眾號