由Opera之“死”談瀏覽器內核領域的多樣性
在不少死忠看來,轉投Webkit的那一刻開始,那個純正的Opera就已經不復存在。以Google和蘋果為靠山的Webkit在事實上已經贏得了勝利,尤其是在Android和iOS移動智能設備大舉盛行的今日。
在linlis(個人博客)看來,Opera的這項舉動無疑無疑有利于用戶和前端開發者,但是其中卻也包含著危機,有可能造成互聯網“多樣性”的損失,那么我們究竟應該做何抉擇呢?
最近,Opera宣布新版本采用Webkit內核在業內引發了不小的震動。飽受瀏覽器兼容折磨的前端工程師們紛紛叫好,對他們來說這意味著工作量的減少,并希望Firefox和IE都能夠跟上Opera的步伐,盡快轉投Webkit。
由于我在工作中也一直需要寫HTML和CSS,我非常能夠理解這樣的觀點。確實,在現在前端越來越復雜、用戶體驗要求越來越高的今天,前端工程師的在瀏覽器兼容上面的工作量是巨大的,他們必須保證網站在不同瀏覽器下都可以獲得盡量一致的體驗。
但是,既然大家都是基于 W3C 的標準來做瀏覽器,為什么不同的瀏覽器會產生這么多不同的結果呢?
這是一個非常有意思的問題,首先 W3C 是一個非常學術的標準制訂機構,他們并不會去涉及商業方面的事情,所以他們不會去過問瀏覽器生產商們,你們該怎么去做你們的瀏覽器,也就是說,如果瀏覽器廠商哪怕不遵守W3C的標準,也是可以的。
另外,W3C的標準并不是細致的,它是一個足夠開放的標準,因為本身CSS的理念就是開放的(它允許多個樣式表的層疊),比方說它不會去規定每個網頁默認的字體大小等很多屬性,而這些屬性的決定權,都交給了瀏覽器。瀏覽器們首先可以選擇性地遵守W3C的標準,其次他們自身又有很大發揮的余地,這就造成了每個瀏覽器下的網頁的兼容性問題。
再來看Webkit內核,如果你打開它的網站,你就會發現Webkit的團隊幾乎都是Google和蘋果的工程師,同時Webkit就是Chrome和Safari的內核。
瀏覽器內核界除了Webkit,還有IE的Trident內核、Firefox的Gecko內核和Opera的Presto內核,而今,Opera 放棄轉投了 Webkit,那剩下的主要就只有三家了(Webkit、Trident、Gecko),很有三足鼎立的局勢。
對的,也許你已經看出來了,Webkit就是那強大的魏國,因為他們背靠Apple和Goolge這兩座大山。如果你把目光轉移到移動設備上來,那么Webkit幾乎已經是一統天下了。在Webkit的推動下,兼容性問題確實變得越來越少了。
因為Webkit的市場占有率,我們幾乎肯定地會把前端的***個版本基于Webkit瀏覽器來做,而在移動設備上,我們幾乎可以不考慮兼容問題。從這個角度上來說,Webkit帶來了巨大的便利性,前端開發的效率極大地提升了。
我們不妨做一個架設,如果未來Firefox和IE都轉向了Webkit,會是怎樣?
對于整日埋頭于調整瀏覽器兼容性的前端工程師來說,他們絕對會歡呼的,這意味著再也不會有兼容性的問題了(可能還會有一些,但是不會很嚴重)。對于普通用戶來說呢?這依然是一件好事,因為他們會享受到一致的用戶體驗,甚至因為前端工程師精力的解放,網站的前端水平普遍會得到提升。
但是凡事都有兩面性,當我們享受了這些好處的時候,我們將接受Webkit的獨裁統治,事實上,在移動互聯網領域,已經基本是這樣一種情況。
當Webkit一家獨大的時候,它和W3C的關系也會改變,這對W3C標準的發展并無好處。因為Webkit基本上就是等于W3C的存在,Webkit將直接成為標準,瀏覽器內核領域將缺少了多樣性(diversity),而多樣性正是瀏覽器內核和W3C標準發展的重要條件,其實也是互聯網發展的重要條件。
看看Opera以往給互聯網做出的貢獻就能知道這種多樣性是多么重要。今年來流行的HTML5就是Opera***開始支持的,響應式設計(Responsive Design)也得歸功于Opera對Media Query的首先支持。所以,如果我們仍然希望保留這種多樣性,那么我們不應該希望Firefox和IE都轉去Webkit陣營。
這真是一種非常矛盾的選擇,一方面,我們的工程師和用戶都將享受統一內核所帶來的極大的便利性和用戶體驗上的提高,另一方面,是多樣性給互聯網內核和 W3C 標準的發展帶來的好處。
很多時候,我們考慮好處往往會迷失了雙眼,變得無法選擇。我們可以換一個角度來思考,兩種方案哪個方案所帶來的害處更多呢?如果兩害相權取其輕的話,這個問題似乎又不難選擇了。因為,我們希望一個更加開放自由的互聯網。