小程序是取代原生开发吗?我觉得答案肯定是否定的,就跟 web 开发至今无法取代桌面开发一样,做 web 的都应该清楚,web 端基于安全以及稳定性等角度考虑,浏览器/webview 是做了很多限制的(譬如你不能直接访问用户的文件),同样的道理,微信为了确保整个环境的稳定可靠做了一些更加严格的限制,例如打包后文件总大小不能超过 1MB。
对于开发者来说,真正的问题并不是谁能取代谁,或者谁比谁更好这种不可能存在答案的笼统问题,而是要从应用实际需求以及自身能力等角度去权衡使用哪种方式更为合适。本文从一些基本的特点出发帮助开发者更好的做出自己的选择:
小程序的优势- 相对简单的技术,封装完善的开发框架和开发工具,远低于原生的开发成本
- 相比与 web 技术更容易实现优质的用户体验,例如:页面切换以及本地文件管理等功能(web 的主要问题是兼容性处理起来很麻烦)
- 基于微信庞大的用户群,相比于原生 app 更容易推广
- 支持扫码即用,不像 app 一样需要费劲下载,非常适合线下消费场景
小程序的一些问题
- 部分 API 设计的比较难用(例如 canvas), 这块其实微信团队在新版已经优化了
- 开发工具难用,其实我比预想的要好那么一点,至少他们后来加入了自动刷新支持
- 功能受限,没有 dom,只能使用小程序自己那套组件,想做点效果都很可能做不了,想想确实挺悲哀的
- 无法自动化测试,保证可用性,后续可能会有相关工具开发出发,暂时只能靠祈祷了
- 性能问题,如果你有图片过大或者请求响应缓慢等问题,它该卡还是会卡。小程序本身由于采用了多层架构的方式,所以如果你服务层和页面传递过多数据的话,可能会有卡顿的问题
- 安全问题,小程序强制使用 https 是非常明智的做法,这能大大减少可能的安全隐患,只是你所有的页面数据以及请求数据对于微信都是透明的,他们拿你数据做什么就不是谁能控制的了了
- 审核问题,对于正规的公司的常规项目应该不会有太大问题,我司的几个小程序都是当天就通过了
小结
如果你以前是做 web 开发的,你会发现小程序除了一些样式和 js 基础的库可以重用外,基本都是要重写的,而且还不能用 Dom 等接口,开发体验是很蛋疼的。
如果你以前是做 app 开发的,你同样会发现小程序的 API 各种局限,根本无法发挥你那天马行空的创造欲望,基本上能做的只是些无聊的业务逻辑。更为可怕的是,这种独家的技术不可能对人才有持续的需求,因为它本身必然会被更加标准、开放、灵活的 PWA 等技术所取代。
如果你没做过开发,老实说我不清楚还有没有比小程序更为糟糕的入门编程语言,因为它封装的太多太多,而我们实际能做的太少太少。
广告
小程序开发是一个苦力活,所以为了帮助广大开发者更有效率的开发出自己的小程序,我实现并开源了:
chemzqm/wept web 端小程序实时开发工具
chemzqm/wxapp.vim 微信小程序 vim 插件
希望大家更快更好的开发小程序,赶上这波转瞬即逝的红利 :P