myblog
myblog copied to clipboard
谈谈小程序的优势
有一段时间我在面试的时候经常问的一个问题:小程序相比于web的优势是什么? 很多面试者都会从体验、性能、生态等方便来回答,比如这些回答:
- 小程序能带来沉浸式体验,并且依托微信提供的API实现媲美原生应用的功能
- 小程序可以实现预加载,打开速度更快
- 小程序能利用微信生态获得更多用户
这些确实是小程序的优势,但是这是web无法实现的么?大家稍微想一下就知道,这些功能显然也能通过web+JSAPI来实现。那么既然web能实现,为什么还要费力的弄出一套小程序体系呢?或者换个问题来问,小程序能实现什么web无法实现的功能呢?
小程序真正无法被标准web替代的特性是两个:
- 生态隔离,小程序使用微信定义的一套运行时框架,无法在其他应用中运行,这样就可以构建出一套微信独有的生态系统,形成护城河。如果使用纯web实现,那么几乎任意APP都能运行,就会把微信建立的生态免费给其他应用享用,这显然不是微信愿意看到的。
- 审核机制,或者叫安全性。 小程序所有代码必须打包提交给微信审核,并且不允许加载远程JS,这样可以从技术层面限制APP的功能,你要做的任何功能都必须经过微信同意,避免挂羊头卖狗肉的情况。如果是纯web,除了一个域名外,很难限制其内部功能,难保今天提交的是一个小游戏审核通过了,明天给换成了一个菠菜网站。
而这两个恰恰是web的优势:跨平台和动态更新。微信借助web标准实现了小程序的跨平台和动态化,但是通过一套全新的小程序生态限制开发者享用这两个优势。 归根结底,小程序要解决的,本质上不是一个技术问题,而是一个商业问题。小程序可以借助web的能力实现,是因为web生态已经足够繁荣,它也可以借助Java等任何其他技术体系,甚至自研一套,只要这套技术体系能达到它的目的即可。