前言
你对小程序的感觉如何?你喜欢 uni-app/HBuilder 、Taro 吗?
现在,简单聊聊
- 造成我们开发困境的罪魁祸首是谁?
- 微信小程序是怎么从刚开始的好评如潮到如今的人人喊打的?
- uniapp/taro 等是救星还是帮凶?
想回答这几个问题之前,先要了解下小程序的历史,以及它的目的和初衷。
小程序怎么个事儿?
2017年1月9日 腾讯在自家即时通讯平台 "微信" 上推出了一种不需要下载安装即可在微信平台上使用的应用程序,所有企业、组织和个人以及政府机构都可以自由开发和发布,这时候的微信小程序还没有表现出任何天赋,大部分人都将他当成了微信的一个新功能而已,并没有太在意。
直到同年 12 月,腾讯官方发布了 "跳一跳" 小游戏,通过按压和释放,让角色在各色各样的底座上跳动,然而就是这样一款小游戏

上线未满一月,在 2017年12月28日,累计用户量达到了 3.1亿 。
跳一跳事件就像一颗核弹,瞬间让大家看到了微信小程序的巨大潜力,光速引爆了小程序/小游戏
概念。大量个人和企业开始涌入开发者行列。
2018年初,小程序全面爆发,小程序数量突破了 100 万,累计用户突破 6 亿,其中小游戏占比 28% 左右。2018 年 10 月,月活用户超过 4 亿,同比增长近 4900%
!
各式各样的小程序上线之后,短期内为早已有所准备的微信团队创造了巨大营收,成为了既微信支付、朋友圈广告之外的另一个支柱级盈利点,虽然还不及微信支付和广告收入,但是这也让微信团队对小程序更加重视了。
微信给小程序提供了便捷的入口、为其新开发了云开发服务....
到这,小程序的生态繁荣可以说达到了顶峰,所有的开发者都开心的写着小程序,但是慢慢的,大家发现了有点不对劲的地方。
开发者工具更新了一版又一版,基础库更新了一代又一代,我们的开发体验依旧没有上去,从模拟器演示卡顿 ,到真机调试断联 ,再到被警告 占领的控制台、对CSS某些属性的不支持

有的时候有一堆报错,我们在代码中找了几个小时的问题,最后通过重启微信开发者工具解决了。写的代码这也不支持,那也不支持,WXSS 像 CSS 又不是 CSS,WXML 像 HTML 又不是 HTML,搞得开发者焦头烂额。
这时候大概还没有人对小程序有脾气,毕竟是新东西,大家对它有一定的包容,很多时候还会认为是自己学艺不精。
正当大家对小程序的态度日渐转变时,马上要成为过街老鼠时, uniapp 跳出来了,其实 uniapp 也是 2018 年就正式发布了,但是直到大概 2020 年前后才广泛使用,这期间开发者可以说饱受折磨。
uni-app(由DCloud开发)它允许开发者使用 Vue.js 的语法编写小程序,越来越多的开发者抛弃了原生小程序,奔向 uniapp 的怀抱。
uniapp 的出现使得开发者体验上了一个大台阶,我们可以用熟悉的 web 技术去开发小程序。
跨平台框架时代
微信小程序爆发后,各大厂商都在忙着往自家 APP 里塞入一个小程序环境,一家一个开发者工具且互不兼容,这让小程序前端生态进一步割裂。

同时期,还有一众小程序跨端框架的出现,比如最著名的 uni-app(DCloud)、taro(京东)、MPVue(美团)等等。
至今仍然保持着一种微妙的平衡。
人都是有惰性的,大公司更不例外,如果什么都不用做就能赚钱,那就没有做任何事的必要。跨平台框架的出现,一方面给开发者带来便利,照顾到了开发者的惰性,另一方面给小程序团队一个不用继续修补的理由,照顾到了小程序团队的惰性。
这样一来,开发者用着跨平台框架,虽然不至于像 web 开发一样爽,但至少没有原生那么难受了,小程序团队则靠着几个免费的外援,硬生生把自己生态稳住了。
救星还是帮凶?
当今的小程序开发环境中,小程序它不管自己的兼容性好不好,也不管自己的开发者工具是否稳定流畅,它只管推出一些半成品功能,我相信做框架的人比我们还恶心,但是没办法,现在他们骑虎难下。
比如 2023 年发布的 skyline 渲染引擎,本以为小程序终于要好起来了,结果它给我们拉了一坨大的,虽然效果很丝滑,但也只是丝滑的屎罢了。拿一个经典坑来说,它默认元素是 flex 布局,开发者工具方向是columns ,而真机上是 row。
我记得当时首当其冲的 uniapp 和 taro 都声称支持了 skyline ,但是实际上手后发现并没有那么完善。甚至使用 skyline 的小程序放到低版本微信上,还会出现样式错乱的问题。
但是微信不管你这那的,小程序推出 skyline 兼容性不行,被骂的不是小程序本身,而是大家正在使用的第三方框架。
第三方框架的愿景和初衷我相信是好的,他们希望统一小程序生态,但是架不住各大厂商的内斗,没有统一标准,没有相互兼容,大家各干各的,当任务最终落到开发者身上时,带来的不是工资的提升、岗位的增加,而是工作量的剧增。
不妨设想一下,如果 uniapp 等从来没有出现,小程序的开发体验会是今天这样吗?显然不会,小程序会尽量提高自己的兼容性和开发体验以保住这个来之不易的来财之路。
如果把小程序比喻成狗屎,那可以把第三方框架比喻成糯米,开发者用糯米包着屎,比较容易下咽,在外行人看来,我们好像在吃粽子。在某种意义上,现在这种组合还真就是粽子,你不嚼还好,一嚼就露馅了。
第三方框架的目的和愿景是成为救星,但是客观上却成了帮凶,让那帮拉屎的拉的肆无忌惮。
可否破局?
我们都知道,所谓小程序,就是在某个古老的 chrome 内核上的一种套壳。它只是加了更多的所谓 "特色功能" 的限制,真可谓是屎上雕花,它本质就是在浏览器上保存的一系列网页收藏,恰巧这个浏览器还带有聊天功能罢了。
但是话又说回来,小程序也确实降低了企业和个人的开发成本,以前要做一个独立应用,必要做一个安卓 app,一个 ios app,代价非常大。而原生应用和前端技术又有较大的差异,所以小程序、uniapp 这种东西能活的这么好,甚至还出现了诸如 finclip 这种第三方小程序容器,现在随便招一个月薪 3k 的大学生,他可以帮你把各个平台的小程序、加上移动双端全给你干了。
现在整个小程序圈看起来欣欣向荣,我们做项目,总也绕不开小程序,仿佛没有小程序,我们的业务就不能正常进行。
如果说要打破开发者目前的困境,几乎是不太可能的,我们也无法去预想和讨论这件事,只能默默的吃下这颗屎馅儿粽子。
结语
简单说到这里,三个问题也差不多回答了俩了,剩下一个问题我相信大家心里也有了答案,我们评论区见。
番外
uni-app (DCloud ) 早在 2012 年就开始研发小程序底层技术,搭建了跨端 WebView 框架,2015 年推出"流应用"商业化解决方案(类似小程序),并开放给合作伙伴使用,是实实在在的小程序鼻祖。
参考资料
www.reuters.com/breakingvie...