聲明:本文來自于微信公眾號“三易生活”(ID:IT-3eLife),作者:三易菌,授權轉載發布。
屏幕前的你,通常會從哪里下載PC軟件呢?對于許多朋友來說,顯然從軟件官網或各式各樣的下載站會更多,很少有人會專門從Windows系統中的微軟商店去下載。盡管在Windows10發布時,微軟曾希望能夠統一PC、Windows手機、Xbox游戲主機、HoloLens眼鏡的應用生態,因此打造了UWP(UniversalWindows Platform)應用。
然而此舉已經由時間給出了答案,越來越多的開發者用實際行動表明,UWP應用毫無希望可言。日前有消息顯示,B站的UWP應用“嗶哩嗶哩動畫”已停止維護,使用時會彈出停止維護的提示,并要求用戶下載嗶哩嗶哩Windows客戶端版,而后者則是基于Win32開發的程序。
這也就意味著繼騰訊QQ與網易云音樂之后,又一家大型互聯網企業放棄維護UWP應用。當然,UWP應用被開發者棄之如敝履絕不止于B站,甚至就連微軟自己也選擇了放棄。
在去年秋季,也就是Windows11發布一周年之際,微軟方面在Windows應用程序的開發文檔中敦促開發者轉向全新的Windows App SDK。并明確UWP不再作為開發基礎,其未來只會收到“錯誤、可靠性和安全修復”,不再引入新的功能,開發者如果想要在自己的UWP應用上使用最新的運行時、語言特性和平臺功能,就必須將應用程序遷移到Windows App SDK。
對于一款產品而言,進入維護期也就意味著產品本身被開發者邊緣化、處于事實上被放棄的狀態,從當初的Windows10Mobile到如今的UWP莫不如此。
那么從被寄予厚望到被實質性放棄,UWP到底是如何落到這般田地的呢?其實微軟沒有在移動互聯網時代完成“大象轉身”,就是這一切的關鍵,雖然他們嘗試了將Windows在PC互聯網時代的影響力移植到移動端,但可惜的是這種嘗試最終還是以失敗告終。
事實上,UWP是微軟大一統計劃的實踐,它的誕生就是為了在不同平臺提供統一的體驗而生。誠然對于Xbox的用戶而言,在玩游戲之外的其他方面,UWP應用的體驗相當出色,可問題在于,Xbox作為游戲主機是專門用來玩游戲的,用戶幾乎很少會在其他場景使用。而UWP應用真正的重心,則是借助Windows生態積累的龐大開發者群體和相關資源,來反哺Windows Phone/Windows10Mobile,也就是說移動端才是UWP成敗的關鍵。
然而遺憾的是,由于Windows10Mobile在與iOS和Android的競爭中敗下陣來,原本計劃是“兩條腿走路”的UWP應用“瘸了”,后續微軟與高通合作的Windows On ARM項目至今還是雷聲大雨點小。因此失去了移動端的代價,就是UWP兜兜轉轉后又回到了微軟已經浸淫多年的PC端。
但面向PC平臺為主的UWP開發,就會面臨一個很尷尬的問題,那就是在已經有了傳統win32程序的情況下,開發UWP應用就相當于是重復造輪子。
UWP應用在Windows101809版本后,其實已經擁有相當可靠的穩定性和更完善的API,進而實現了更強勁的性能、更低的資源占用,以及更高的安全性,但如果要以PC端為主戰場,那么UWP面臨的競爭對手就是.exe格式的win32程序了。而對于開發者來說,相比之下UWP應用的限制無疑更大、能實現的功能也更加有限。
由于微軟為UWP應用提供的API遠不如傳統的Win32豐富,例如UWP應用必須在App Container中以沙盒的形式運行,所以也難以獲取許多常見的系統權限,使得其功能也受到了一定的限制。
同時,由于UWP是為了跨平臺而生,所以UWP應用不需要背負Windows的歷史包袱既是好事、也是壞事,“輕裝上陣”無疑是一大優勢,但兼容性不佳則是劣勢了。Windows系統的重要賣點就是兼容性出眾,即便為此付出了系統冗余過大的代價,但老應用依然能在最新的Windows11上跑起來,就是它的優勢所在。
通常對于的中小開發者團隊來說,需要為UWP應用針對不同平臺進行全部的適配,這必然就會導致比針對不同平臺分別推出對應的版本要花費更多的成本。畢竟同樣的設備、同一批用戶的情況,開發者為什么要去開發兩個版本的應用呢?
如果單純靠砸錢就能成事,那么Windows10Mobile或許就不會以失敗告終。所以對于UWP來說,考慮到Windows10/11的市占率剛剛突破50%,也就意味著仍有大量用戶還在使用Windows8.1、Windows7,甚至Windows XP。兩相權衡之下,開發者自然就會選擇兼容性更出色的Win32方案。
再加上UWP應用這種安裝在固定位置、運行在沙盒環境、不能訪問其他應用內存的產物,也難以滿足開發者進一步挖掘用戶數據的“小心思”。
所以用一句話總結就是,UWP被開發者放棄是當初Windows10Mobile失敗的連鎖反應。而沒了移動端操作系統的結果,就是微軟自己都成了Android第三方開發者的情況下,幾乎就“拿捏”不了其他開發者。而Xbox和MR設備的應用場景又過于特化,難以支撐起除PC端的另一個應用生態。但被迫回歸PC端的UWP應用,在面對用戶基礎更好、功能更豐富的win32應用時,幾乎更是毫無競爭力。
當然,盡管UWP的失敗已經能夠蓋棺定論,但微軟打通不同平臺的意圖卻并沒有冷卻,Windows App SDK其實就是UWP項目的遺產。