實施Web標(biāo)準(zhǔn)明顯落后 Safari成了新時代的IE?
Web開發(fā)者諾蘭·勞森(Nolan Lawson)近日撰文指出,蘋果在實施Web標(biāo)準(zhǔn)上明顯落后于其它的主流瀏覽器開發(fā)商,不少新興的API技術(shù)在Safari上都不見蹤影,Safari儼然成了新時代的IE。
本文引用地址:http://butianyuan.cn/article/276903.htm以下是文章主要內(nèi)容:
上周末,我參加了由諸多Web行業(yè)領(lǐng)袖發(fā)起的大會EdgeConf。大會設(shè)置了不少的研討會,聚焦新興的瀏覽器技術(shù),大家圍繞Service Worker、Web Components、Shadow DOM、Web Manifests等相關(guān)技術(shù)展開了熱烈的討論。
10多位與會者稱得上Web社區(qū)真正的活躍分子。各家主流瀏覽器的代表均有出席EdgeConf,如Chrome、Mozilla、IE和Opera。大家也興致勃勃,接連向主流瀏覽器開發(fā)商們發(fā)出諸如何時發(fā)出這樣那樣的API(應(yīng)用程序接口)的問題。
“屋子里的大象”
倒有一家公司沒有出席,他們可以說是沒有人愿意提及的那個“屋子里的大象”。大家并沒有直呼其名,而是稱其為“某家加州公司”或者“某家水果公司”。研討室中的筆記本幾乎都閃耀著那家公司奪目的logo,但卻沒有一人敢于說出它的名字。沒錯,說的正是蘋果。
Web開發(fā)者普遍覺得Safari落后于其它的瀏覽器,而身處像EdgeConf這樣的會議,你對此甚至?xí)懈訌娏业母杏X,你會驚訝于它與其它瀏覽器的差距之巨。上面提到的API目前無一實施于Safari,蘋果也似乎沒什么意愿那么做。
即便蘋果真的采用新出的API,他們也往往只是隨便糊弄而已。就以IndexedDB為例,IndexedDB在5年多以前便被提出,2012年開始出現(xiàn)在IE、Firefox和Chrome上。而蘋果直到2014年年中才推出IndexedDB,無奈他們的實施卻出乎意料的糟糕,大家普遍覺得沒什么用處。
如今,一年過后,蘋果修復(fù)了IndexedDB數(shù)個大漏洞中的兩個。他們聲稱IndexedDB不值得花功夫去做,因為它“派不上大用場”。要是瀏覽器支持方面做得一塌糊涂,當(dāng)然沒有人會去使用IndexedDB啦。
很難理解蘋果為什么會那樣。他們從不派人去參加Web相關(guān)的大會,他們的Safari博客也鮮有更新,因而在一年一度的WWDC(全球開發(fā)者大會)開幕之前,沒有人知道下一代的Safari會長什么樣子。感覺上,蘋果儼然圣誕老人——一年降臨一次給大家發(fā)些備受期待的禮物,至于派什么禮物就無從得知了。老實說,那些禮物近年來也越來越小份了,沒什么驚喜。
近些年,蘋果Web方面的戰(zhàn)略最多只能說是“仁慈的忽視”。雖然憑借JSCore和全新的WKWebView,性能上有了巨大的提升,但各種新生的Web平臺特性——線下存儲、推送通知和“可安裝的”網(wǎng)頁應(yīng)用,Safari卻一個都沒有。這讓人容易將此解讀為蘋果故意破壞任何對其App Store商業(yè)模式的威脅,但這種說法似乎也說不過去,畢竟那部分業(yè)務(wù)基本收支平衡。另一種可能性是,他們只是在響應(yīng)iOS開發(fā)者的要求——基本上就是:1)引入更多的原生API;2)快速,快速,快速。鑒于蘋果一向?qū)?nèi)部事宜三緘其口,真相究竟如何誰也說不準(zhǔn)。
又一個IE?
事實上,蘋果一直以來都不是Web的質(zhì)疑者。2010年,喬布斯便曾公開諷刺Flash,稱HTML5才是未來。蘋果當(dāng)時可謂Web的虔誠信徒。很多幫助網(wǎng)頁應(yīng)用追趕上本地應(yīng)用的早期特性,如ApplicationCache、WebSQL、觸控事件和觸控圖標(biāo),得到了開發(fā)者的熱情擁抱,當(dāng)中甚至有很多都源自蘋果。
同期WebSQL遭棄用,被IndexedDB取而代之的時候,其實有不少的蘋果員工站出來積極予以擁護(hù),稱其對于網(wǎng)頁應(yīng)用的高效運行不可或缺。從那些爭論可以明顯感覺得到蘋果內(nèi)部在IndexedDB勝出后的巨大失落感。諷刺的是,蘋果幾乎是給了開發(fā)者削弱其專有平臺的各種工具,而反過來,開發(fā)者排斥WebSQL,則給了他們重新思考戰(zhàn)略和叫停任何Web API新進(jìn)展的機會。
Application Cache也面臨著類似的情況,在不久的將來它可能會被Service Worker取而代之。蘋果對于Web還很有興致的時候,它一度贏得廣泛的瀏覽器支持。不幸的是,它只是個匆匆推出的半成品。要是蘋果還是跑在其它公司身后,恐怕Service Worker也會遭受IndexedDB般的命運。
現(xiàn)階段,Web社區(qū)需要接受這樣一個事實:Safari成為了新時代的IE。微軟最近痛改前非,谷歌在Web領(lǐng)域一馬當(dāng)先,Mozilla一如既往地快步前行。而蘋果則像是在一旁獨自唱著悲歌。我們是時候公開探討這個問題了,而不是顯得很忌諱,避而不談。蘋果是世界上最具價值的公司,他們還是承受得起一些打擊的。
何以應(yīng)對?
那么,當(dāng)一家完全控制iOS平臺的主流瀏覽器提供商仍然堅守2010年的模式,表現(xiàn)得若無其事的時候,Web社區(qū)能夠做些什么呢?我認(rèn)為有三個主要的解決機制:
1)堅守2010年行得通的東西,并使用Polyfills來支持Safari。通過使用AppCache和PouchDB,你可以得到跟Service Worker幾乎一模一樣的特性。這種方案應(yīng)該能夠吸引絕大多數(shù)的Web開發(fā)者。另一方面,這也不失為倒逼蘋果,讓他們有動力去進(jìn)行技術(shù)升級強化的好方法。
2)使用Service Worker等在Safari上不好使的技術(shù),將其視作推動行業(yè)進(jìn)步。阿萊克斯·拉塞爾(Alex Russell)在“可安裝的網(wǎng)頁應(yīng)用”研討會上發(fā)表了一個很好的觀點:如果我們開發(fā)出了大量使用Service Worker的免費網(wǎng)頁應(yīng)用,而且這些應(yīng)用在Android上運行得非常好,而在iOS上只能湊合著用,那蘋果就會有興趣采用Service Worker,支持該API。只不過,雖然整體來說這對于Web社區(qū)而言室最好的結(jié)果,但要說服開發(fā)者去編寫只能覆蓋一半受眾的代碼絕非易事。
3)為WebKit做貢獻(xiàn)。Safari的核心部分畢竟還是開源項目,因而C++開發(fā)者沒有理由不去親自實施那些新生的API。該方案主要的問題在于,WebKit并非Safari,蘋果還是可以決定不在他們的旗艦級瀏覽器實施WebKit特性。說回IndexedDB,它早早就獲得了谷歌的完好實施,蘋果前幾年完全可以直接納入谷歌的實施,但他們卻遲遲沒有行動,最終自己弄了個漏洞百出的版本。很難保證他們對于其它的外部貢獻(xiàn)做出同樣的事情。
總而言之,真不知道有什么合適的解決方案。
很多WebKit開發(fā)者目前在做的事情值得敬佩,但在我看來,面對蘋果,目前最好的策略或許是來硬的,而非來軟的。因此,我傾向于采納上述第二點提到的拉塞爾的解決方案,即開始促進(jìn)新興的Web技術(shù)的推廣。
如果Web社區(qū)能夠開始構(gòu)建出一個生機勃勃的網(wǎng)頁應(yīng)用生態(tài)系統(tǒng),將蘋果排擠在外,那蘋果可能就會不得不像微軟那樣轉(zhuǎn)而作出改變。不然的話,開發(fā)者們就得自甘生活在2010年代的Web當(dāng)中,任由Safari成為又一個可怕的IE。
評論