HTML5与原生应用,问题从来不在谁取代谁
原生应用和 HTML5 之间到底谁更牛的争论可以说一直就没有断过。在原生应用风光时,HTML5 被看着是一个陷阱;而在 HTML5 风光时,原生应用又会被认为是“已经死了”。随着前两天微信公众平台开放微信内网页开发工具包,HTML5 眼看着又要迎来新一波的风光期,那么它和原生应用之间真的就是一个你死我活的关系么?
如果我们回顾一下原生应用和 Web 服务在桌面操作系统上的进化历史,就会发现,移动端的原生应用和 HTML5 之间的关系到底会往哪里走,这其实是有迹可循的。
当 1983 年第一台配备鼠标和图形界面的电脑 Apple Lisa 出现时,超文本协议尚未诞生,网络系统还停留在实验室里,电脑用户也就用不上后来的互联网。这个时候,在电脑操作系统之上,厂商之间的竞争自然是停留在原生应用,也就是软件层面。
熟悉这段历史的读者应该不会忘记上世纪 80 年代微软和莲花软件公司在办公软件领域的竞争。作为一款在 DOS 时期就被广为使用的电子表格软件,莲花在 80 年代早期可谓红极一时;不过最终微软利用操作系统的优势,凭借 Excel 等 Office 系产品不断夺走莲花的市场,后者也就输掉了这场办公软件竞赛。在互联网进入民用阶段后,类似的案例还发生在浏览器领域。微软同样凭借操作系统的优势用 IE 浏览器击败了一度在市场上占据主导地位的网景浏览器。
当然,随着互联网的普及,厂商在操作系统之上的竞争也开始从软件层面蔓延到 Web 服务上,一些早期需要本地软件才能完成的事情慢慢通过网络服务也可以解决,无论是像图片处理这样简单的功能还是像协同办公这样复杂的产品你都能找到对应的 Web 服务。这些竞争不但为用户提供了更多的选择,也推动了整个 Web 技术的发展。
不过,虽然 Web 变得更强大了,但一个显而易见的事实是,在桌面操作系统上,本地应用并没有因为 Web 技术的发展就被用户抛弃了。对于一些常用的产品,用户还是会安装本地客户端,以便可以即时的使用它,这并不会因为网络上有同类的 Web 服务而改变。用户不愿意在本地安装的大多只是那些需求频次比较低或者更适合在浏览器场景下使用的产品。
当智能手机操作系统和应用生态环境进化到一个相对稳定的状态后,用户在手机上使用原生应用和 Web 服务的状态其实会和在电脑上大致类似。
在以前,虽然 HTML5 经历过快速发展期,但原生应用在移动设备上可以说是一直占据着主导地位,这一点和目前 PC 端的状态并不一致;而随着原生应用数量的不断增加、智能手机增长红利的消失,这些现实环境会让那些新诞生的低频次需求 app 永远无法获得可观的增长曲线和活跃度。这个时候开发者就不得不根据用户的需求频率和使用场景来调整产品形式,进而原生应用和 HTML5 产品在手机端的关系也就有望回归到一个和 PC 上类似的相对稳定状态。
事实上,无论是在桌面端还是移动端,对于那些低频率的需求,用户都更倾向于通过 Web 服务来解决而不是专门装一个原生应用摆在屏幕上。这也就在底部需求上决定了当前这种各类服务都倾向于做一个原生应用的思路终会遇到瓶颈,Web 服务的机会总会到来。
在 PC 端,由于互联网的诞生相对晚,而且配备鼠标和大屏幕的设备更方便软件之间的自由切换,所以原生应用和 Web 服务一路走下来的关系会相对清晰。但在移动端,由于移动互联网服务在 iPhone 和 Android 诞生之前就出现了,而且应用之间的切换远不如 PC 端那样方便,这些因素让原生应用和 Web 服务之间的演进变得错综复杂,以至于引爆这一波 HTML5 热潮的是微信这样内置网页浏览器的超级 app 而不是手机浏览器。
虽然有各种各样的因素掺杂其中,但从大环境来看的话,在手机上原生应用和 Web 服务的关系同样是先经历原生应用间的竞争,接着 Web 服务找到超级 app 这样的载体得以进化,解决某些状态下的低频需求。整体路径和 PC 端其实很相似,只是这类 Web 服务的载体并没有像在电脑端那样主要发生在浏览器中就是了。所以,谁取代谁从来都不是问题真正之所在。