首页 > > 24

模式落後 Safari成了新時代的IE?

2015-07-06
来源:网易科技

  Web開發者諾蘭·勞森(Nolan Lawson)近日撰文指出,蘋果在實施Web標准上明顯落後於其它的主流瀏覽器開發商,不少新興的API技術在Safari上都不見蹤影,Safari儼然成了新時代的IE。

  以下是文章主要內容:

  上周末,我參加了由諸多Web行業領袖發起的大會EdgeConf。大會設置了不少的研討會,聚焦新興的瀏覽器技術,大家圍繞Service Worker、Web Components、Shadow DOM、Web Manifests等相關技術展開了熱烈的討論。

  10多位與會者稱得上Web社區真正的活躍分子。各家主流瀏覽器的代表均有出席EdgeConf,如Chrome、Mozilla、IE和Opera。大家也興致勃勃,接連向主流瀏覽器開發商們發出諸如何時發出這樣那樣的API(應用程序接口)的問題。

  “屋子裏的大象”

  倒有一家公司沒有出席,他們可以說是沒有人願意提及的那個“屋子裏的大象”。大家並沒有直呼其名,而是稱其為“某家加州公司”或者“某家水果公司”。研討室中的筆記本幾乎都閃耀著那家公司奪目的logo,但卻沒有一人敢於說出它的名字。沒錯,說的正是蘋果。

  Web開發者普遍覺得Safari落後於其它的瀏覽器,而身處像EdgeConf這樣的會議,你對此甚至會有更加強烈的感覺,你會驚訝於它與其它瀏覽器的差距之巨。上面提到的API目前無一實施於Safari,蘋果也似乎沒什么意願那么做。

  即便蘋果真的采用新出的API,他們也往往只是隨便糊弄而已。就以IndexedDB為例,IndexedDB在5年多以前便被提出,2012年開始出現在IE、Firefox和Chrome上。而蘋果直到2014年年中才推出IndexedDB,無奈他們的實施卻出乎意料的糟糕,大家普遍覺得沒什么用處。

  如今,一年過後,蘋果修複了IndexedDB數個大漏洞中的兩個。他們聲稱IndexedDB不值得花功夫去做,因為它“派不上大用場”。要是瀏覽器支持方面做得一塌糊塗,當然沒有人會去使用IndexedDB啦。

  很難理解蘋果為什么會那樣。他們從不派人去參加Web相關的大會,他們的Safari博客也鮮有更新,因而在一年一度的WWDC(全球開發者大會)開幕之前,沒有人知道下一代的Safari會長什么樣子。感覺上,蘋果儼然聖誕老人——一年降臨一次給大家發些備受期待的禮物,至於派什么禮物就無從得知了。老實說,那些禮物近年來也越來越小份了,沒什么驚喜。

  近些年,蘋果Web方面的戰略最多只能說是“仁慈的忽視”。雖然憑借JSCore和全新的WKWebView,性能上有了巨大的提升,但各種新生的Web平台特性——線下存儲、推送通知和“可安裝的”網頁應用,Safari卻一個都沒有。這讓人容易將此解讀為蘋果故意破壞任何對其App Store商業模式的威脅,但這種說法似乎也說不過去,畢竟那部分業務基本收支平衡。另一種可能性是,他們只是在響應iOS開發者的要求——基本上就是:1)引入更多的原生API;2)快速,快速,快速。鑒於蘋果一向對內部事宜三緘其口,真相究竟如何誰也說不准。

  又一個IE?

  事實上,蘋果一直以來都不是Web的質疑者。2010年,喬布斯便曾公開諷刺Flash,稱HTML5才是未來。蘋果當時可謂Web的虔誠信徒。很多幫助網頁應用追趕上本地應用的早期特性,如ApplicationCache、WebSQL、觸控事件和觸控圖標,得到了開發者的熱情擁抱,當中甚至有很多都源自蘋果。

  同期WebSQL遭棄用,被IndexedDB取而代之的時候,其實有不少的蘋果員工站出來積極予以擁護,稱其對於網頁應用的高效運行不可或缺。從那些爭論可以明顯感覺得到蘋果內部在IndexedDB勝出後的巨大失落感。諷刺的是,蘋果幾乎是給了開發者削弱其專有平台的各種工具,而反過來,開發者排斥WebSQL,則給了他們重新思考戰略和叫停任何Web API新進展的機會。

  Application Cache也面臨著類似的情況,在不久的將來它可能會被Service Worker取而代之。蘋果對於Web還很有興致的時候,它一度贏得廣泛的瀏覽器支持。不幸的是,它只是個匆匆推出的半成品。要是蘋果還是跑在其它公司身後,恐怕Service Worker也會遭受IndexedDB般的命運。

  現階段,Web社區需要接受這樣一個事實:Safari成為了新時代的IE。微軟最近痛改前非,穀歌在Web領域一馬當先,Mozilla一如既往地快步前行。而蘋果則像是在一旁獨自唱著悲歌。我們是時候公開探討這個問題了,而不是顯得很忌諱,避而不談。蘋果是世界上最具價值的公司,他們還是承受得起一些打擊的。

  何以應對?

  那么,當一家完全控制iOS平台的主流瀏覽器提供商仍然堅守2010年的模式,表現得若無其事的時候,Web社區能夠做些什么呢?我認為有三個主要的解決機制:

  1)堅守2010年行得通的東西,並使用Polyfills來支持Safari。通過使用AppCache和PouchDB,你可以得到跟Service Worker幾乎一模一樣的特性。這種方案應該能夠吸引絕大多數的Web開發者。另一方面,這也不失為倒逼蘋果,讓他們有動力去進行技術升級強化的好方法。

  2)使用Service Worker等在Safari上不好使的技術,將其視作推動行業進步。阿萊克斯·拉塞爾(Alex Russell)在“可安裝的網頁應用”研討會上發表了一個很好的觀點:如果我們開發出了大量使用Service Worker的免費網頁應用,而且這些應用在Android上運行得非常好,而在iOS上只能湊合著用,那蘋果就會有興趣采用Service Worker,支持該API。只不過,雖然整體來說這對於Web社區而言室最好的結果,但要說服開發者去編寫只能覆蓋一半受眾的代碼絕非易事。

  3)為WebKit做貢獻。Safari的核心部分畢竟還是開源項目,因而C++開發者沒有理由不去親自實施那些新生的API。該方案主要的問題在於,WebKit並非Safari,蘋果還是可以決定不在他們的旗艦級瀏覽器實施WebKit特性。說回IndexedDB,它早早就獲得了穀歌的完好實施,蘋果前幾年完全可以直接納入穀歌的實施,但他們卻遲遲沒有行動,最終自己弄了個漏洞百出的版本。很難保證他們對於其它的外部貢獻做出同樣的事情。

  總而言之,真不知道有什么合適的解決方案。

  很多WebKit開發者目前在做的事情值得敬佩,但在我看來,面對蘋果,目前最好的策略或許是來硬的,而非來軟的。因此,我傾向於采納上述第二點提到的拉塞爾的解決方案,即開始促進新興的Web技術的推廣。

  如果Web社區能夠開始構建出一個生機勃勃的網頁應用生態系統,將蘋果排擠在外,那蘋果可能就會不得不像微軟那樣轉而作出改變。不然的話,開發者們就得自甘生活在2010年代的Web當中,任由Safari成為又一個可怕的IE。

[责任编辑:朱剑明]
网友评论
相关新闻