爲什麼Safari瀏覽器這麼不受Web開發者待見?

{"type":"doc","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"時至今日,IE 6的種種遺留問題仍然困擾着不少Web開發人員。這款雖然經典但卻毛病多多的瀏覽器大大降低了開發者的生活質量,甚至有激進的觀點認爲它幾乎毀掉了整個互聯網。總之,IE真的很差勁,它相當於是逼着Web開發者在冰天雪地中爬坡前行……經歷過的估計都懂。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"但就算沒經歷過那個時代,如今的Web API開發人員也面臨着類似的難題——只不過這一次,難題來自蘋果。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"蘋果的Safari瀏覽器在支持Web功能方面遠遠落後於其他競爭對手,這種落後到底達沒達到當初IE的“高度”仍有爭議,但不少人已經把Safari視爲IE“精神”留下的現實映射。而且可以肯定的是,Safari當中的WebKit引擎確實遠不及其他瀏覽器方案。根據"},{"type":"link","attrs":{"href":"https:\/\/wpt.fyi\/compat2021?feature=summary&stable","title":"","type":null},"content":[{"type":"text","text":"Web Platform Tests公佈"}]},{"type":"text","text":"的儀表板,基於Chrome的瀏覽器能夠支持94%的測試套件、Firefox支持91%,而Safari僅支持71%。在桌面端,問題似乎不大;畢竟用戶可以隨時切換到最經典的谷歌Chrome(甚至 Vivaldi)。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"但是,在iOS設備上,情況就沒那麼簡單了。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"iOS對於瀏覽器的壟斷"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"根據蘋果App Store中發佈的規定,“用於瀏覽網頁的應用必須使用適當的WebKit框架與WebKit JavaScript。”換句話說,無論選擇Safari還是Chrome,iPhone用戶們實際上使用的都是Safari\/WebKit這對弱智組合。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"蘋果在iOS上壟斷了瀏覽器選擇權,這是微軟在IE身上永遠沒能實現的終極目標。在Windows中,用戶至少還可以安裝Firefox。"},{"type":"text","marks":[{"type":"strong"}],"text":"但即使在iOS上使用其他瀏覽器、包括Firefox,我們用到的在本質上也仍然是WebKit"},{"type":"text","text":"。或者說,只要大家選擇了iOS設備,那麼Safari就將永遠伴你左右。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"而真正讓Web開發者們頭疼的,則是蘋果緩慢的開發週期。蘋果最快也要每六個月左右才更新一次Safari。而基於Blink的Chrome系瀏覽器則每六週更新一次(很快將進一步縮短爲每四周更新),Firefox每四周更新一次,Brave甚至每三週就迎來一波更新。如此一來,蘋果不僅是添加新功能的速度太慢,這樣的開發週期也讓簡單的bug修復成果得等上好久才能正式登陸用戶設備,而某些受到Safari bug影響的網站可能需要等待一年才能解決問題。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"再深入觀察,我們會發現Web Platform Tests數據還暴露出Safari的另一大短板——即使WebKit能夠實現某項功能,其效果也往往不夠完整。以漸進式Web應用程序(PWA)爲例,其目標是希望能讓Web應用的使用體驗無限接近於原生移動應用。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"用於構建PWA的相關API可以實現全屏運行(無瀏覽器UI)、發送通知與警報、離線狀態運行以及通過主屏幕圖標啓動等等。目前最具知名度的PWA案例當數Twitter與Uber。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"蘋果已經爲開發人員實現了構建PWA所需要的大部分功能,但其中仍有着不少侷限性。比如蘋果還沒添加對發送通知和主屏幕應用圖標的支持,因此"},{"type":"text","marks":[{"type":"strong"}],"text":"本質上可以說Safari還沒有實現某些真正能讓網站用起來像原生應用的核心功能。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"也正是因爲蘋果這種故意削弱WebKit來護着自家App Store業務的行爲,引發了開發領域的激烈爭論。因爲如果蘋果老老實實推出所有支持功能,開發者就能構建起更好的Web應用,那到時候沒人買原生應用了怎麼辦……蘋果在iOS App Store中可是擁有30%的佣金抽成。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"熱衷於做Web應用的開發者們對上述問題自然是非常關心的,但蘋果則不然——他們是世界上財力最雄厚的企業之一,並不擔心自己的倒行逆施行爲會惹惱Web開發者羣體。更重要的是,蘋果在保護自身利益的同時,還把新API支持功能的缺失解釋成保護用戶隱私……打着這面大旗,其他人也確實不好多說什麼。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"Safari真的在拯救Web嗎?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Safari的支持者以及蘋果本身都堅定認爲,之所以不支持那些新型API,是爲了避免開發者訪問用戶的USB端口、藍牙裝置、電池狀態及NFC傳感器等,進而導致廣告商利用這些信息不斷侵蝕本已很脆弱的互聯網隱私。就算不擔心隱私,這些API也會減弱手機的電池續航能力。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"我本人並不是iOS用戶,但蘋果在隱私問題上的堅定立場確實讓我相當心動。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"我承認,我非常討厭現代網絡,但我對隱私問題也不太擔心,**畢竟使用移動設備本身就代表着與隱私的背離。**我重視隱私,但如今網站可靠性低、速度慢而且對用戶抱有敵意等整體趨勢已經讓這種重視毫無意義。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"我非常不喜歡JavaScript驅動的Web API所帶來的體驗,所以已經開始在瀏覽過程中禁用JavaScript,這樣網絡能瞬間恢復最初漂亮、簡潔的狀態,而蘋果肯定特別欣賞我這樣的用戶。我用過很多無需JavaScript即可加載的網站,而且堅決不碰那些強制要求使用JavaScript的站點。沒錯,既然Invidious(YouTube的開源前端替代產品)都能在無需JavaScript的前提下加載YouTube內容,爲什麼YouTube自己不行?我不在乎具體理由,但寫了個腳本保證自己總會被重新定向至Invidious或者PeerTube。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"我想說的是,在這個問題上我是支持蘋果的;但我也承認,蘋果這種Safari落後性源自保護用戶隱私的說法壓根站不住腳。雖然我覺得蘋果不會非常擔心Web開發者能損害到App Store的根本利益,但其中的種種負面可能性也確實不得不防。於是,蘋果出於利益做出了選擇,再把它強行解釋成是在保護用戶隱私。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"這些新API正在快速入駐其他瀏覽器,所以在一段時間之後,微軟IE當初的慘劇估計會重新上演。而大家也都清楚故事的結局:微軟輸了,其他瀏覽器都在快速發展,只有微軟IE徹底無人問津。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"如果蘋果也沿着這條路走下去,那他們不僅會輸、甚至可能拖着整個Web一起陷落。因爲蘋果支持者們有一點是對的:如果蘋果願意接受谷歌Blink的主宰,那其他競爭廠商也只能服從。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"那這位新“主宰者”的能力究竟如何?Web開發者Tim Perry最近寫了一篇名爲《Safari不是在保護Web, 而是正殺死它》的"},{"type":"link","attrs":{"href":"https:\/\/httptoolkit.tech\/blog\/safari-is-killing-the-web\/","title":"","type":null},"content":[{"type":"text","text":"文章"}]},{"type":"text","text":",他表示,過去每種瀏覽器都會提供自己的擴展API。但如今,“Chrome已經深入人心,他們不斷提供更強大、更易於使用的擴展API,人氣也一路水漲船高。而Firefox與Safari,它們放棄了自有API,轉而接納Chrome的API。這相當於允許谷歌憑一己之力塑造Web擴展標準。”是的,當沒人敢站出來對抗市場領導者時,就會發生這種情況。“如果情況沒有大的變動,那麼谷歌的主宰之勢將愈演愈烈。這絕不是什麼好消息。”"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"寫在最後"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"必須有人站出來阻擋谷歌和Blink瘋狂的擴張腳步,確保不斷湧現的API真能給Web用戶帶來助益。這一點對蘋果用戶很重要,對谷歌用戶乃至Web開發者也同樣重要。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"大部分現代Web功能的開發是悄然進行的,期間鮮有爭論。Blink開發者會在Chrome當中以開發者標記的形式發佈這些新功能。這已經成爲一種共識和習慣,再要辯論或調整恐怕已經非常困難。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"我倒不是說蘋果的動機就真有多高尚,但他們對Safari的堅持至少還能逼迫谷歌在統一Web標準流程的霸業上放緩腳步……但蘋果方面也得做出改變,否則Safari有可能步IE的後塵。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"我的這些想法可能太過理想,但正如Web倡導者(前Opera佈道師)"},{"type":"link","attrs":{"href":"https:\/\/brucelawson.co.uk\/2021\/set-safari-free\/","title":"","type":null},"content":[{"type":"text","text":"Bruce Lawson所言"}]},{"type":"text","text":",“如果蘋果允許Safari真正參與競爭,對於Web開發者、企業、消費者乃至整個Web領域的健康狀況都將是個好消息。”"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"如果蘋果能夠調整功能開發當中的透明度(減少)與加快響應速度,那它一定可以更多地在新 API 的發展中發揮作用。而且如果蘋果真的擔心API影響到用戶隱私,就該用行動捍衛自己的觀點、反擊谷歌、拿出一套有競爭力的Chrome替代品。這可能不容易,但卻是今後Web還能健康發展的唯一希望。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"原文鏈接:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"link","attrs":{"href":"https:\/\/www.theregister.com\/2021\/10\/22\/safari_risks_becoming_the_new_ie\/","title":"","type":null},"content":[{"type":"text","text":"https:\/\/www.theregister.com\/2021\/10\/22\/safari_risks_becoming_the_new_ie\/"}]}]}]}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章