2019 年 PWA(Progressive Web App) 凉了吗?

Is PWA effectively dead in 2019?

Posted by Hux on November 19, 2019

这篇文章转载自我在知乎上的回答

作为 PWA 在国内的早期布道者实践者,我觉得挺凉的。 以下都是主观感受且 opinion is my own。

PWA(甚至整个 Web)似乎被 Google(Chrome)与「第三世界」绑到一起去了。「这世界还有多少人没上过网、没有 4G、没有 3G……印度、印度尼西亚、非洲、乌干达……」这便是这两年的 Chrome Dev Summit 的主旋律了。

而这或许也是现在整个 Google 的主旋律吧,于是便成了 Chrome 和 Chrome 的产品经理们的 KPI(OKR),美其名曰「为了互联网的下一个十亿用户」。我不是说关心第三世界这事不好,但问题在于你一边嘴上说着 「Open Web、大家的 Web」一边身体上却只想着把 Web 变成「你想要的那个 Web」,然后把其他 Web 的发展方向都「耽误」掉了

PWA 的商业案例至今为止,我感到 legit(正当)的仍然只有 twitter,是真正在按一个「给所有用户都能用」的标准来做的。Airbnb/Pinterest/Spotify 可能能及格,而其他的则要么是商业互吹(吹一波走人),要么就是利益(市场导向)一致(Instagram 以及逐年增多的印度系产品)。

我相信很多开发者和我一样对 PWA 的期待本来是作为 RN/Flutter 等跨平台开发的 alternatives(替代品),结果现在连几年前的 hybrid 方案 Cordova (Phonegap)、Electron的实力都没到, 不要说国内各种自家魔改的 Webview(容器、小程序)了。两年的时间本足以做大量这方面的工作 —— 留学前我还担心是不是两年后我就跟不上 PWA 的发展了,结果现在根本就没什么大动静 —— 每年 CDS 确实都仍然会扔几个新的有关 capability 的 API 出来, 但是跟了这么多年 Chrome Dev Summit 我也算是看清了这秀场的节奏 —— 每年扔出来的东西吧,第二年弃坑 2/3,剩下 1/3 就是遛狗 —— virtual list 说了几年了?类似 portal 这样的 navigation-transition 说了几年了?file system API 说了几年了?我吐槽的点在于,Google(Chrome)你年年画大饼,最后大部分有真正投入资源的,全是你那「第三世界」新兴市场相关的。作为 Web 开发者你一定知道,有多少新 API 落地到我们日常开发了?

Don’t just take my word. 你应该自己去听听这两年的 Chrome Dev Summit,是不是绝大多数的场次都围绕着对「低配」内存、CPU、网络环境的优化 —— 俨然一副「Web 就只适合在这么不行的地方用」的气息,你一个 Web 开发者都要针对 L1/L2 Cache 优化了你说我们怎么不直接写汇编呢?而单纯谈论 CSS/JS 等 Web 技术的发展,不带使用场景 bias 的场次比例一年比一年少。至于 WebAssembly/WebGL/WebXR?—— who TM care? 人家连网都上不了你还想玩 3D/VR 游戏?人家连电脑都没有你还想在 Web 上做生产力工具?WebAssembly 场靠着 Google Research 有点 AI 项目讲了讲 thread 和 SIMD 都能让我感觉到一种与整场会议违和的尴尬……而 3D, VR and AR 总共加起来就做了个六分钟的小短片播,把我乐得。

所谓的 Fugu Project(PWA 项目在 Google 的代号)在我眼里就是 Google「让 Web 成为他们在第三世界的开发平台」而准备的一个项目:官方提及 PWA 最爱提的用户场景不是 Web 的可索引性、可链接性、甚至都不是即开即用(on-demand),而是「用户因为没有流量和 wifi 所以不愿安装原生应用」 。那几个 dev advocate 反正每年就做些 P 用都没有的玩具在那里自娱自乐自 high,做个扫雷游戏然后说我们这个一路支持到功能机用键盘来玩哦……一向亲 JSer 的 Addy Osmani 的 Adaptive Loading 场也来一句「我们要为开 Data Saver(省流量模式、无图模式)的用户做优化!」,这世界大概是又回去到了 WAP 的时代吧……而项目带头人 Alex Russell,即便我仍然很感激您过去对 Web 的影响和贡献,但您这两年来动不动就是「怼框架怼友商怼空气」—— 你们这些垃圾框架,居然要 50 KB!你们这些垃圾开发者,用什么框架,Use the platform!(i.e. 用我们的 Web Component (的框架)!)你们这些垃圾浏览器,还不快点支持我们要的 API! —— 都是你们伤害了我的 W(K)e(P)b(I)!司马昭之心,路人皆知

quote @尤雨溪

他们在乎的是「下一个十亿用户」,中国显然不在其中呢

即便你也是 Web 开发者我也是 Web 开发者,但显然我们已经不是 Google(Chrome)想要支持的 Web 开发者了:当无数 Web 开发者起来为 JS 社区在应用框架的先进性上探索,当我们想要证明 Web 在今天的硬件上终于可以挑战 Native,当我们想要在动画和交互上挑战当年的 Flash,当我们认为 Web 技术已经可以胜任众多桌面软件,当社区期待 Web 能够积极跟进下一个新兴技术(whatever that is)甚至担当重任,当国人在谈论着 5G 的到来 Web 开发者应该做什么时 —— 这个当年挟 Web 以令 OS,推动 Web 平台 state-of-the-art 的 Google(Chrome)却变得让我不认识了。

Web 自诞生以来便就是个同床异梦的地方 —— Web 也因此永垂不朽;而对于 PWA 能在当前 Google 的主导下迅速发展成一个有竞争力的跨平台开发解决方案这事儿,或许只是其中的又一黄粱美梦罢了。

补充两点:

  • 我支持「小程序」的产品价值,也支持 PWA 作为 Web 开放标准一部分的技术价值。
  • PWA 目前主要靠 Google 推动是客观事实,且 PWA 的发展必须依赖平台(浏览器)的参与。