陈徐毅
万维网World Wide Web作为互联网所提供的服务之一,在移动互联到来之前早已风靡全球,在浏览器日渐成熟、普及和国际标准的助推之下,其一度成为互联网全技术形态最大的应用。移动互联之后,App作为新的互联网技术形态与之抗衡,经历了多年的市场多元素对冲与平衡,Web技术与应用在移动端逐渐败下阵来。由于桌面领域与移动端用户市场两极分化加剧,失去了桌面消费级市场的Web曾被认为趋于式微。然而这些年Web频频传来“回春”的迹象。
2014和2015年HTML5的一针强心让Web技术重新在移动端活跃起来,此后几年Web作为技术混用在App主导的移动操作系统上逐渐站稳,而国际标准对Web技术的推动也从未间歇。今年4月,W3C发布了WebAssembly 2.0的首批公开工作草案;不久前,IETF正式颁布HTTP/3 RFC技术标准文档,编号RFC 9114;应用方面,Adobe也推出了网页版的Photoshop。尽管这些事件对移动端影响不大,但仍潜移默化地改变着开发者生态。
万维网曾经是互联网最大的应用体系,直到App时代的到来。许多人误以为Web技术被App所取代,实际上它仍活跃于原有的领域,只不过被更大的暂不属于它的市场影响了“出镜率”。
移动互联时代一个显著的特征是终端功用市场的两极分化。桌面终端用户越来越趋向于生产力应用,以及大型游戏等重度需求;移动终端则取代了原先桌面领域的大量消费级应用(即时通信、视频、信息流等),并开拓了新的更适用于智能手机的场景空间。
技术观点认为Web在移动端的体验远比App差,不仅响应速度慢,渲染成了很大问题,而且Web协议在对应智能手机各类独立元部件(蓝牙、摄像头、传感器等)方面并不成熟,这是Web对比App的先天不足。Web在桌面领域的技术标准推进了将近30年,当年的B/S力压C/S架构也曾一度为人津津乐道,这见证了其主导桌面时代的繁荣。但是智能手机的开发由苹果和谷歌先行,iOS和安卓的开发者并未青睐于Web技术栈,一方面起步的时候还没有H5、CSS3和Node.js,选择C和Java来主导新终端的工作既可靠又合理;另一方面则是App生态兴起后带来的技术惯性和市场壁垒影响了Web在移动端的切入程度。
Web依然是世界上最成熟的跨平台UI解决方案
市场观点认为Web开发者赚不到钱,厂商赚不到钱,App趋向互联网应用壁垒化更利于商业价值。移动App的商业重心是围绕着AppStore各类应用商店形成的覆盖厂商、开发者、用户、广告商多方稳定利益链,厂商控制平台主导分发分成,链条收敛形成稳固的市场壁垒。而Web对终端控制力弱,且生态极度碎片化,天然不利于商业盈利,这并非移动特例,比如桌面应用Steam分发平台的案例,Web很难承担起这类重度应用的平台分发工作。
尽管如此,Web在移动端的失利其本身并无可厚非,技术格局很多情况下是由利益主导,厂商、开发者、用户三方博弈纳什均衡决定了产品的形态演化。
当年浏览器大战,双方在自家浏览器中加入了大量功能,最终网景不敌IE。后来谷歌悄然绕过微软,Chrome架空了操作系统,一时间万维网生态空前丰富,同时也加剧了Web的碎片化。再后来苹果为避免重蹈历史覆辙,力推AppStore并实现了封闭化的App管理,Web生态被排挤出移动互联之外。
然而技术没有完美的形态,“There's an old engineering adage:Fast,good,cheap:pick two”这样的道理同样适用于Web与App的形态争议,追求一面的极致必须在另一面承受代价。App虽然占领了移动端,但终究不是完美的解决方案,這就说明了智能手机为什么需要小程序之类的轻应用,不少App内核也内嵌了H5。
矛盾在于开发者实际向往Web的简易部署,标准统一、跨平台,希望家家都上PWA(一种增强Web App的理念),统一环境,但是又碍于局限。跨平台的代价是显而易见的,内置千万标准的浏览器可以说是万维网集大成产物的体现,且又是PC时代的产物,App的开发需要基于移动终端原型,兼顾功耗和效率,而Web开发在此之前从不考虑这些。可以说,万维网的标准里没有基于移动终端的考量。
但是又有观点认为,技术都有进化的可能,假如Web生态起来了,说不定就没有Docker、Kubernetes这些容器流水线工具什么事了,DevOps的敏捷思想说不定要晚生十年。然而历史没有假如,技术进程前行的轨迹犹如矛盾螺旋。
不论如何,Web依然是世界上最成熟的跨平台UI解决方案,没有之一。如今Web生长在大量的原生应用之中,许多原生甚至只是薄薄一层皮,目前移动端流行的react native框架和桌面常用的electron,都是基于Web技术栈。Web+Native的混合App将是之后的常态,同时开发者和用户也希望Web在移动端能有更好的表现力,技术的多元与丰富是业界众望所求的。