Opera轉(zhuǎn)投Webkit內(nèi)核 談瀏覽器的多樣性
最近,Opera宣布新版本采用Webkit內(nèi)核在業(yè)內(nèi)引發(fā)了不小的震動(dòng)。飽受瀏覽器兼容折磨的前端工程師們紛紛叫好,對(duì)他們來說這意味著工作量的減少,并希望Firefox和IE都能夠跟上Opera的步伐,盡快轉(zhuǎn)投Webkit。
由于我在工作中也一直需要寫HTML和CSS,我非常能夠理解這樣的觀點(diǎn)。確實(shí),在現(xiàn)在前端越來越復(fù)雜、用戶體驗(yàn)要求越來越高的今天,前端工程師的在瀏覽器兼容上面的工作量是巨大的,他們必須保證網(wǎng)站在不同瀏覽器下都可以獲得盡量一致的體驗(yàn)。
但是,既然大家都是基于 W3C 的標(biāo)準(zhǔn)來做瀏覽器,為什么不同的瀏覽器會(huì)產(chǎn)生這么多不同的結(jié)果呢?
這是一個(gè)非常有意思的問題,首先 W3C 是一個(gè)非常學(xué)術(shù)的標(biāo)準(zhǔn)制訂機(jī)構(gòu),他們并不會(huì)去涉及商業(yè)方面的事情,所以他們不會(huì)去過問瀏覽器生產(chǎn)商們,你們?cè)撛趺慈プ瞿銈兊臑g覽器,也就是說,如果瀏覽器廠商哪怕不遵守W3C的標(biāo)準(zhǔn),也是可以的。
另外,W3C的標(biāo)準(zhǔn)并不是細(xì)致的,它是一個(gè)足夠開放的標(biāo)準(zhǔn),因?yàn)楸旧鞢SS的理念就是開放的(它允許多個(gè)樣式表的層疊),比方說它不會(huì)去規(guī)定每 個(gè)網(wǎng)頁默認(rèn)的字體大小等很多屬性,而這些屬性的決定權(quán),都交給了瀏覽器。瀏覽器們首先可以選擇性地遵守W3C的標(biāo)準(zhǔn),其次他們自身又有很大發(fā)揮的余地,這 就造成了每個(gè)瀏覽器下的網(wǎng)頁的兼容性問題。
再來看Webkit內(nèi)核,如果你打開它的網(wǎng)站,你就會(huì)發(fā)現(xiàn)Webkit的團(tuán)隊(duì)幾乎都是Google和蘋果的工程師,同時(shí)Webkit就是Chrome和Safari的內(nèi)核。
瀏覽器內(nèi)核界除了Webkit,還有IE的Trident內(nèi)核、Firefox的Gecko內(nèi)核和Opera的Presto內(nèi)核,而 今,Opera 放棄轉(zhuǎn)投了 Webkit,那剩下的主要就只有三家了(Webkit、Trident、Gecko),很有三足鼎立的局勢(shì)。
對(duì)的,也許你已經(jīng)看出來了,Webkit就是那強(qiáng)大的魏國(guó),因?yàn)樗麄儽晨緼pple和Goolge這兩座大山。如果你把目光轉(zhuǎn)移到移動(dòng)設(shè)備上來,那么Webkit幾乎已經(jīng)是一統(tǒng)天下了。在Webkit的推動(dòng)下,兼容性問題確實(shí)變得越來越少了。
因?yàn)閃ebkit的市場(chǎng)占有率,我們幾乎肯定地會(huì)把前端的***個(gè)版本基于Webkit瀏覽器來做,而在移動(dòng)設(shè)備上,我們幾乎可以不考慮兼容問題。從這個(gè)角度上來說,Webkit帶來了巨大的便利性,前端開發(fā)的效率極大地提升了。
我們不妨做一個(gè)架設(shè),如果未來Firefox和IE都轉(zhuǎn)向了Webkit,會(huì)是怎樣?
對(duì)于整日埋頭于調(diào)整瀏覽器兼容性的前端工程師來說,他們絕對(duì)會(huì)歡呼的,這意味著再也不會(huì)有兼容性的問題了(可能還會(huì)有一些,但是不會(huì)很嚴(yán)重)。 對(duì)于普通用戶來說呢?這依然是一件好事,因?yàn)樗麄儠?huì)享受到一致的用戶體驗(yàn),甚至因?yàn)榍岸斯こ處熅Φ慕夥牛W(wǎng)站的前端水平普遍會(huì)得到提升。
但是凡事都有兩面性,當(dāng)我們享受了這些好處的時(shí)候,我們將接受Webkit的獨(dú)裁統(tǒng)治,事實(shí)上,在移動(dòng)互聯(lián)網(wǎng)領(lǐng)域,已經(jīng)基本是這樣一種情況。
當(dāng) Webkit一家獨(dú)大的時(shí)候,它和W3C的關(guān)系也會(huì)改變,這對(duì)W3C標(biāo)準(zhǔn)的發(fā)展并無好處。因?yàn)閃ebkit基本上就是等于W3C的存在,Webkit將直 接成為標(biāo)準(zhǔn),瀏覽器內(nèi)核領(lǐng)域?qū)⑷鄙倭硕鄻有裕╠iversity),而多樣性正是瀏覽器內(nèi)核和W3C標(biāo)準(zhǔn)發(fā)展的重要條件,其實(shí)也是互聯(lián)網(wǎng)發(fā)展的重要條件。
看看Opera以往給互聯(lián)網(wǎng)做出的貢獻(xiàn)就能知道這種多樣性是多么重要。今年來流行的HTML5就是Opera***開始支持的,響應(yīng)式設(shè)計(jì) (Responsive Design)也得歸功于Opera對(duì)Media Query的首先支持。所以,如果我們?nèi)匀幌MA暨@種多樣性,那么我們不應(yīng)該希望Firefox和IE都轉(zhuǎn)去Webkit陣營(yíng)。
這真是一種非常矛盾的選擇,一方面,我們的工程師和用戶都將享受統(tǒng)一內(nèi)核所帶來的極大的便利性和用戶體驗(yàn)上的提高,另一方面,是多樣性給互聯(lián)網(wǎng)內(nèi)核和 W3C 標(biāo)準(zhǔn)的發(fā)展帶來的好處。
很多時(shí)候,我們考慮好處往往會(huì)迷失了雙眼,變得無法選擇。我們可以換一個(gè)角度來思考,兩種方案哪個(gè)方案所帶來的害處更多呢?如果兩害相權(quán)取其輕的話,這個(gè)問題似乎又不難選擇了。因?yàn)椋覀兿M粋€(gè)更加開放自由的互聯(lián)網(wǎng)。