詳解瀏覽器內(nèi)核WebKit誕生6年編年史

2011-08-05 15:09:18來源:雷鋒網(wǎng)編譯自appstorm作者:

  回首六年前,2005年,網(wǎng)絡和現(xiàn)在完全不同。那時,瀏覽器大戰(zhàn)正如火如荼,雖然Netscape戰(zhàn)斗英勇,但微軟和Internet Explorer的地位看起來越來越穩(wěn)固?雌饋砘ヂ(lián)網(wǎng)正要落入這個邪惡帝國手上,還有一點,地球人已

  回首六年前,2005年,網(wǎng)絡和現(xiàn)在完全不同。那時,瀏覽器大戰(zhàn)正如火如荼,雖然Netscape戰(zhàn)斗英勇,但微軟和Internet Explorer的地位看起來越來越穩(wěn)固?雌饋砘ヂ(lián)網(wǎng)正要落入這個邪惡帝國手上,還有一點,地球人已經(jīng)阻止不了微軟了。

  然后在2005年6月7日,在WWDC上,Bertrand Serlet走上講演臺推出了并不被人看好的產(chǎn)品——蘋果的瀏覽器的靈魂——Safari,它是開源產(chǎn)品。它被稱為WebKit。看起來,蘋果仍然無法阻止微軟作威作福,但是之后,他們走上了一個那時沒人預料到的完全不同的方式。

  略想一下:蘋果公司是出了名的神秘兮兮,為什么他們主導一個開源項目?要回答這個問題,要正確地看待這個開源如何成功的,我們必須回頭看看WebKit的根源。但如果我沒觸碰到WebKit的現(xiàn)狀,未來的發(fā)展,那就是我的失職。過去的知識很重要,因為它可以幫助我們了解現(xiàn)在,并更好地為未來作好準備。

  誕生于開源

  瞧瞧,現(xiàn)在幾乎所有人都認為WebKit來源于蘋果公司,它是Safari瀏覽器的靈魂,不是嗎?但這些代碼的確不是在蘋果總部的秘密巢穴里碼出來的。它實際上源于他處,早在1998年,這些后來成為WebKit的代碼其實是KDE開源項目的KHTML和KJS引擎的一部分。最初,KHTML和KJS是較早采用khtmlw(The KDE HTML Widget)引擎的項目。雖然之前發(fā)布的程序引擎W3C將“DOM”和“CSS”兩者都標準化了,但仍有不少工作要做,因此支持這些功能成為一個重要的優(yōu)先事項。

  幾乎整個1999年,由Lars Knoll牽頭,掀起了一個KHTML風潮。盡管需要不少艱巨的工作,KHTML的支持者和開發(fā)人員都不希望輕易地放棄這個項目。但這些艱苦的工作帶回了豐厚的回報。到2000年的春天,出現(xiàn)了一套嶄新的瀏覽器內(nèi)核——KHTML和KJS ——準備在新版本的KDE上實施。他們就是后來被某個位于Cupertino的“水果”公司采摘的開源項目。

  蘋果式待遇

  2003年1月,在舊金山的Macworld Expo主題演講中,Steve Jobs宣布蘋果KHTML引擎的端口——WebCore開放源代碼。同一天,Safari的首席設計師Don Melton給公布于KDE開發(fā)者郵件名單上的KHTML和KJS – KDE的首席開發(fā)員發(fā)送了一封郵件。之后便成立了蘋果的Safari團隊,而且很顯然兩方面對于能使用這個開源代碼來創(chuàng)建Safari都感到高興和自豪。對代碼的效率以及開發(fā)員所實現(xiàn)的技術,Melton信件中充滿了溢美之詞。它看起來像一個美妙婚姻的開始。

\

  然而,時間快進到兩年前,我們發(fā)現(xiàn)這場婚姻似乎也開始觸礁。

  開源社區(qū)是建筑于激情,善意,自我犧牲之上。它并不適合每一個人。要想在此取得成功——或者在這個社區(qū)成為一個腕——你必須要了解這些性格特征,并將自己置身其中。蘋果也是一個社區(qū),但它有自己的文化和目標。KHTML和蘋果公司的WebCore的嘗試合作出現(xiàn)問題,也是可以理解的。

  與蘋果公司經(jīng)常在WebCore做出一些變化不同,KDE社區(qū)似乎對KHTML引擎“端口”上的改變所需的時間和精力無動于衷。2005年春,合作于 KHTML的兩個開發(fā)者Zack Rusin 和Carewolf都在博客文章表達了他們的挫折感,不僅在于蘋果的“合作”方式,而且也針對KDE社區(qū)關于合作關系的看法。

  那時,蘋果公司現(xiàn)有的合作建立的開源項目開展得并不順利。他們努力想成為開源社區(qū)的好公民,但它在KDE社區(qū)的眼中確是不足?雌饋硖O果的開放源碼的嘗試是失敗的。KHTML和KJS是蘋果創(chuàng)造的偉大基甸,但這也證明蘋果幾乎不可能以社區(qū)為所用所享的方式去“回饋”社區(qū)。

  開源,以蘋果的方式

  細細觀察蘋果公司的運作方式,其方法看起來非常簡單。他們精美的創(chuàng)作其實就是不斷重復的細化打磨過程。他們有一個對他們來說運轉良好的系統(tǒng);叵肫饋,也難怪試圖融入開源世界對他們來說并不成功。

  但蘋果并不是一個完全無情的公司。他們知道,他們目前在Web技術的進步的核心就是開源社區(qū)的工作成果。所以到這里我們就回到了故事的開頭, 2005年6月7日蘋果宣布WebKit開放源代碼。

  WebKit起初就是WebCore和JavaScriptCore代碼庫,后來還加入一些東西。連同源代碼控制樹以及錯誤跟蹤工具,所有用來創(chuàng)建有效的 Web瀏覽器的代碼是開源的。即使從哲學的角度看,這種粘性似乎讓蘋果更具團隊精神變得理所當然。這個由蘋果組織和驅動的項目,不定期發(fā)布一些代碼供所有人使用,讓蘋果在保持其臭名昭著的“控制欲”的同時,還為其在媒體界贏得了開源之名。

  而且還將此名聲充分利用。

  崛起,出局和離開

  從那時起,事情開始了微妙的變化。這雖非吹枯拉朽的態(tài)勢,但確是漸進而不可逆轉的過程。 WebKit開始掠奪瀏覽器市場。當然,它不純粹關乎市場份額數(shù)字——至少不會是第一關注點。

  WebKit正贏得網(wǎng)民們的心。而蘋果,這家一直以設計界的倡導者和伙伴的身份所世人所知的公司,也開始到處討好網(wǎng)頁設計師。WebKit非常靈活,十分迅捷,能夠實現(xiàn)新的標準和技術,仿佛是為它們的構想和發(fā)明而生。這與Internet Explorer非常不同。而Web社區(qū)鐘情于此。這是從未間斷過的傳統(tǒng)。最近,我們還看到WebKit的諸多創(chuàng)新,推動許多新的CSS3規(guī)范,并率先采認HTML5規(guī)范。

  WebKit開始出現(xiàn)Safari以外的在其他地方。2005年11月,諾基亞為其S60平臺發(fā)布了一個基于WebKit的網(wǎng)頁瀏覽器。隨著iPhone 在2007年1月發(fā)布,WebKit手機應用方面聲勢更加壯大。其在iOS平臺上得到的增長,更是前所未有。而且蘋果公司將其寵兒WebKit作為 Mobile Safari的基礎非常具有意義。而殺紅了眼的手機廠商后來的所作所為更是亙古未有。

  2007年11月,也就是iPhone亮相的10個月后,谷歌發(fā)布了收購的一項成果:Android操作系統(tǒng)。雖然無論在蘋果及其iPhone所涉及哪個領域,Android都想跟它拼個你死我活,但它還是那么一點點的別扭——其瀏覽器也是由WebKit支持的。這個兩個競爭對手都受益于這個開源項目。但真正的驚喜是,蘋果正是這個開源項目的幕后主導者。而且他們干得還真漂亮。

  顯然,谷歌很喜歡WebKit里面的東西,因為2008年秋天,谷歌自主開發(fā)的瀏覽器Chrome測試版開始受到互聯(lián)網(wǎng)的熱捧。沒錯,這也是基于WebKit的。你現(xiàn)在應該能看到WebKit所描繪的宏偉藍圖了吧?

  2009年7月7日,這是一個有趣的命運轉機,因為谷歌宣布了一項新的項目。他們已經(jīng)開始啟動了其稱作“Chrome操作系統(tǒng)”的項目運作。它的誕生就是為了爭奪微軟和蘋果的市場的,而它卻是由——你猜對了,WebKit支持的。這也是WebKit故事最吸引人的方面之一。 WebKit由開源出生,經(jīng)過極具競爭力的蘋果制作和打磨,而現(xiàn)在卻是谷歌用于與蘋果競爭的未來計劃的基礎。是不是開源軟件都那么吸引人呢?

  一年后,也就是2010年,黑莓也進入到手機WebKit行列,并宣布為黑莓第六版操作系統(tǒng)提供新瀏覽器。同樣,耐人尋味的是:智能手機市場的三個巨頭 ——蘋果,谷歌和RIM ——都將WebKit作為任何智能手機的關鍵功能——網(wǎng)頁瀏覽器的骨干應該有任何智能手機。想來,谷歌和RIM都需要為此感謝蘋果。蘋果,你知道的,這個來自Cupertino的神秘兮兮的公司。

  當然,不僅僅是那些地位顯赫的公司充分利用了這個WebKit開源項目。還有不少其他小公司的瀏覽器也是建筑于WebKit之上,例如Midori,Shiira和Epiphany。

  但最迷人的地方之一還是WebKit的應用還不僅嚴格限于瀏覽器。一個高質量,開放源碼的瀏覽器的存在,讓許多獨立的應用程序開發(fā)人員將基于瀏覽器的功能納入到應用程序。OS X上最好的在線RSS閱讀器——Reeder,就是使用WebKit代碼提供feeds閱讀時的無縫體驗。或者還可以更具創(chuàng)造性的方式使用它,就像 Valve的Steam平臺使用WebKit來渲染其用戶界面。

  亦敵亦友

  現(xiàn)在,RIM公司采用WebKit非常有趣。谷歌將其今后的成長和規(guī)劃明顯的押寶在它之上更是真正的迷人之處。但蘋果還有另一個競爭對手,其競爭關系也是越演越烈,也在狠狠地挖掘WebKit:Adobe。

  是的,甚至連iOS的死敵——Flash——也已接受該渲染引擎,將其納入其應用程序的Creative Suite,而且甚至還給這個代碼庫添磚加瓦。

  不過,蘋果和Adobe之間的關系,可以在另外一篇文章中進行討論。我只是覺得像Adobe這種關于網(wǎng)絡建于什么之上都有不同意識形態(tài)的公司也可以在 WebKit中找到共同點。這是WebKit項目之所以偉大的一種見證:其維護,質量及其最初開發(fā)者所采用的和今天編寫和維護代碼的工藝。

  國王已死,國王萬歲!

  還記得我先前總結的蘋果之所以致力于開源的WebKit的首要原因嗎?對了,就是要將微軟拉下馬,撼動其瀏覽器市場的王座。不過確實沒有那么“確鑿的證據(jù)”。當然也沒有關于蘋果高管或Safari瀏覽器開發(fā)者之間交流了如何干掉IE瀏覽器的秘密圖謀。這只是我的直覺,我的猜測,不過我認為這還是蠻合理的。更重要的是,我還可以提供一些冰冷生硬的數(shù)字證明,即使這不是其開源WebKit的背后初衷,它也肯定是最終的結果。

  來自Net Applications的數(shù)據(jù)顯示,Internet Explorer在2005年占據(jù)著驚人驚艷的89%的瀏覽器市場份額,而當年WebKit剛剛開源,F(xiàn)在,這個數(shù)字下降到相對并不起眼的54%。相比之下,2005年,唯一的基于WebKit的瀏覽器——Safari僅有可憐的1.7%的市場份額。但到如今,基于WebKit的瀏覽器占近20%。

  不過,這些統(tǒng)計數(shù)字很明顯地偏向于桌面瀏覽器。手機操作系統(tǒng)的網(wǎng)頁瀏覽器狀況如何?又說明什么問題呢?好吧,手機瀏覽器中基于WebKit的瀏覽器占超過 62%的市場份額。 Opera Mini以22%的份額占據(jù)第二的位置,微軟的那個瀏覽器甚至沒有足夠的使用量,無法納入統(tǒng)計。而“其他”瀏覽器的市場份額為15%。

  如今,你很難找到對高新技術產(chǎn)業(yè)感興趣的人否認手機領域才是未來真正的王國。而且Webkit已經(jīng)有一個強大的存在,很難想象WebKit團隊持續(xù)創(chuàng)新的努力會很快改變。

  總結

  當然,關于WebKit,還有不少本文未有涉及到的。如果你讀到了最后,我得承認倍感榮幸。我已盡我所能去完整而準確地講訴這個故事,但仍然有很多細節(jié)未被納入其中。

  要想獲得KHTML的原編碼者中的兩人的觀點和想法,以及WebKit開源后一年他們的立場,你可以在雅虎上觀看他們的介紹。想要跟上有關WebKit項目的最新進展,沒有比Surfin’Safari的博客更好的地方啦。

  最后,親愛的讀者,如果你喜歡這篇文章,請發(fā)表評論。我很想聽到有關這個領域——比如網(wǎng)頁方面的歷史——你更多的見解;蛘,也許你討厭它,認為它過于累贅。如果你認為有需要,也不妨直言。

  英文原文:http://web.appstorm.net/general/opinion/the-history-of-webkit/

贊助商鏈接: