从腾讯到B站,UWP应用为何被大家弃之如敝履|百事通
屏幕前的你,通常会从哪里下载PC软件呢?对于许多朋友来说,显然从软件官网或各式各样的下载站会更多,很少有人会专门从Windows系统中的微软商店去下载。尽管在Windows 10发布时,微软曾希望能够统一PC、Windows手机、Xbox游戏主机、HoloLens眼镜的应用生态,因此打造了UWP(UniversalWindows Platform)应用。
(资料图片仅供参考)
然而此举已经由时间给出了答案,越来越多的开发者用实际行动表明,UWP应用毫无希望可言。日前有消息显示,B站的UWP应用“哔哩哔哩动画”已停止维护,使用时会弹出停止维护的提示,并要求用户下载哔哩哔哩Windows客户端版,而后者则是基于Win32开发的程序。
这也就意味着继腾讯QQ与网易云音乐之后,又一家大型互联网企业放弃维护UWP应用。当然,UWP应用被开发者弃之如敝履绝不止于B站,甚至就连微软自己也选择了放弃。
在去年秋季,也就是Windows 11发布一周年之际,微软方面在Windows应用程序的开发文档中敦促开发者转向全新的Windows App SDK。并明确UWP不再作为开发基础,其未来只会收到“错误、可靠性和安全修复”,不再引入新的功能,开发者如果想要在自己的UWP应用上使用最新的运行时、语言特性和平台功能,就必须将应用程序迁移到Windows App SDK。
对于一款产品而言,进入维护期也就意味着产品本身被开发者边缘化、处于事实上被放弃的状态,从当初的Windows 10 Mobile到如今的UWP莫不如此。
那么从被寄予厚望到被实质性放弃,UWP到底是如何落到这般田地的呢?其实微软没有在移动互联网时代完成“大象转身”,就是这一切的关键,虽然他们尝试了将Windows在PC互联网时代的影响力移植到移动端,但可惜的是这种尝试最终还是以失败告终。
事实上,UWP是微软大一统计划的实践,它的诞生就是为了在不同平台提供统一的体验而生。诚然对于Xbox的用户而言,在玩游戏之外的其他方面,UWP应用的体验相当出色,可问题在于,Xbox作为游戏主机是专门用来玩游戏的,用户几乎很少会在其他场景使用。而UWP应用真正的重心,则是借助Windows生态积累的庞大开发者群体和相关资源,来反哺Windows Phone/Windows 10 Mobile,也就是说移动端才是UWP成败的关键。
然而遗憾的是,由于Windows 10 Mobile在与iOS和Android的竞争中败下阵来,原本计划是“两条腿走路”的UWP应用“瘸了”,后续微软与高通合作的Windows On ARM项目至今还是雷声大雨点小。因此失去了移动端的代价,就是UWP兜兜转转后又回到了微软已经浸淫多年的PC端。
但面向PC平台为主的UWP开发,就会面临一个很尴尬的问题,那就是在已经有了传统win32程序的情况下,开发UWP应用就相当于是重复造轮子。
UWP应用在Windows 10 1809版本后,其实已经拥有相当可靠的稳定性和更完善的API,进而实现了更强劲的性能、更低的资源占用,以及更高的安全性,但如果要以PC端为主战场,那么UWP面临的竞争对手就是.exe格式的win32程序了。而对于开发者来说,相比之下UWP应用的限制无疑更大、能实现的功能也更加有限。
由于微软为UWP应用提供的API远不如传统的Win32丰富,例如UWP应用必须在App Container中以沙盒的形式运行,所以也难以获取许多常见的系统权限,使得其功能也受到了一定的限制。
同时,由于UWP是为了跨平台而生,所以UWP应用不需要背负Windows的历史包袱既是好事、也是坏事,“轻装上阵”无疑是一大优势,但兼容性不佳则是劣势了。Windows系统的重要卖点就是兼容性出众,即便为此付出了系统冗余过大的代价,但老应用依然能在最新的Windows 11上跑起来,就是它的优势所在。
通常对于的中小开发者团队来说,需要为UWP应用针对不同平台进行全部的适配,这必然就会导致比针对不同平台分别推出对应的版本要花费更多的成本。毕竟同样的设备、同一批用户的情况,开发者为什么要去开发两个版本的应用呢?
如果单纯靠砸钱就能成事,那么Windows 10 Mobile或许就不会以失败告终。所以对于UWP来说,考虑到Windows 10/11的市占率刚刚突破50%,也就意味着仍有大量用户还在使用Windows 8.1、Windows 7,甚至Windows XP。两相权衡之下,开发者自然就会选择兼容性更出色的Win32方案。
再加上UWP应用这种安装在固定位置、运行在沙盒环境、不能访问其他应用内存的产物,也难以满足开发者进一步挖掘用户数据的“小心思”。
所以用一句话总结就是,UWP被开发者放弃是当初Windows 10 Mobile失败的连锁反应。而没了移动端操作系统的结果,就是微软自己都成了Android第三方开发者的情况下,几乎就“拿捏”不了其他开发者。而Xbox和MR设备的应用场景又过于特化,难以支撑起除PC端的另一个应用生态。但被迫回归PC端的UWP应用,在面对用户基础更好、功能更丰富的win32应用时,几乎更是毫无竞争力。
当然,尽管UWP的失败已经能够盖棺定论,但微软打通不同平台的意图却并没有冷却,Windows App SDK其实就是UWP项目的遗产。