1、❌ Vite 没有取代 Webpack。光从下载量看,还有 5 倍以上的差距。那构建的未来是 Vite 吗?其实未必,Vite 的痛点是其始终是基于 JavaScript 生态,有明显的天花板,同时 Rollup 是他的最大软肋,由于 Build 阶段基于 Rollup 打包,所以速度上极慢,很多人在 Dev 用 Vite 而构建用 Webpack。如果 Rollup 能用 Rust 重写,可能会带来转机。前端构建基建的未来应该是基于 Rust 的。
2、❌ Deno 没有取代 Node。是个人都能看出来了吧。今年 Deno 为了市场份额,还做了不少兼容 npm 和 Node 生态的事。
3、❌ Low Code 没有取代 Pro Code。感觉 Low Code 的势头已经过去了,今年声音比较小。Low Code 在我看来更多是 Leader 和大老板喜欢,有卖点,能讲故事;而一线开发者并不喜欢,至少对于我来说是这样,能用 Pro Code 抽象的为啥要用 Low Code 抽象?就算体验做到极致,基于 Low Code 做产品毕竟是在别人画好的圈子里做事,你得很清楚边界在哪,什么能做,什么不能做,边界内可能能提效 20%,但一旦超出边界,可能降效 200%。从市场上看,开 Low Code 的公司可能可以赚点小钱,但赚不了大钱。
4、✅ Typescript 已取代 JavaScript。在我的视野中看来是这样,比如我们的项目应该是全量 TypeScript 的,至少新增项目是这样。我日常写前端代码,90%+ 都是 TypeScript 。
5、❌ Rust 没有取代传统 JavaScript 工具链。虽然有这个趋势,但目前还远没有取代或成为主流。同时我觉得 Rust 只会取代其中 CPU 密集型的那部分,IO 密集型的用 Node 同样不会成为性能卡点,同时 Rust 的上手门槛和维护成本相比 Node 是真的高,感觉只有大厂会愿意且有能力投。注:Rust 作为前端工具链也是能讲好故事的。
6、❌ CSS in JS 没有取代 CSS Modules。CSS in JS 有优势,但优势没有大到大部分前端切换放弃 CSS Modules 的程度。但我个人觉得 CSS in JS 是趋势,因为他解了不少 CSS Modules 不能解的问题。蚂蚁中后台这边经过多维度的权衡,已选择了 CSS in JS;同时 antd 5 这个大版本也选择了 CSS in JS。当然,也有可能螳螂捕蝉黄雀在后,他们都会被 Tailwind CSS 取代也不一定。
7、❌ web³ 没有取代 web² 。不懂 web³,热潮已过,现在依旧满世界的 web²。但还是不时有人站出来说 web³ 很赚钱。
8、✅ pnpm 已取代 npm 和 yarn。从我个人角度看是这样,1)pnpm 周下载 444w,2)我已多年没有直接用 npm,3)pnpm 确实解了 npm 存在的大量问题,包括幽灵依赖等诟病已久的问题,同时在 monorepo 等场景下也表现得更出色,还有速度非常快。值得一提的是,从速度角度看,bun 安装 npm 依赖的速度似乎比 pnpm 更快。
9、❌ swc 没有取代 babel 。但是有这个趋势,尤其是随着 Rust 工具链越来越多,swc 会占据更大份额。swc 很强大,但是相比 babel,API 层也是真难用,维护成本指数级上升。
10、✅ esm 已取代 cjs 。我是从编码的角度看的,但 cjs 在 npm 包产物里的占比还是占据绝对领导地位的。还有人手写 cjs 吗?应该很少了吧,大家都用 TypeScript 写代码,然后 cjs 可能是其中一种产物类型。为啥还需要 cjs?比如 bun blog 最近的一篇《CommonJS is not going away》中描述的,对于性能有极致要求的场景下,比如 server、框架和 cli,cjs 相比 esm 会更快,以 babel 为例,require('babel') 比 import 'babel' 快 2.4 倍。
11、❌ vue 3 没有取代 vue 2。原因是从下载量看,Vue 3 只有 Vue 2 的 1/3 。
12、❌ hooks 没有取代 external store 数据流。感觉数据流的时代过去了,至少现在很少有重数据流的项目。越累越多的项目倾向于用 react-query 或 swr 做服务器状态的同步,这种方案能解 80% 的传统数据流问题。同时,值得注意的是,如果 RSC 成为主流,可能连 react-query 或 swr 都不需要了。
13、❌ serverless 没有取代 server。应该没有吧,我了解不多。
14、❌ webide 没有取代 ide。webide 更多是一种辅助角色,不管是 VSCode 的在线版,还是 stackbliz、codesandbox 这种,都不会成为程序员的主要工具。我们内部的 VSCode 在线版 webide 倒是很多人用他来排查问题和临时修改代码,因为本地同时启动多个项目会卡。
15、❌ bundless 没有取代 bundle。略。参考 Vite 和 Webpack 的那部分。
16、❌ øJS 没有取代 Rich JS 。作为 0JS 的鼻祖,Astro 有点雷声大雨点小的感觉。Astro 的周下载量只有 8W 。0JS 是多页应用,个人不太看好多页应用(MPA),尽管有各种技术加持做缓存和预加载,但体验上始终不如 SPA。0JS 的最佳场景是容器应用,这类应用本身就是多页应用,基于此能进一步减少尺寸和提升可交互时间,那自然是好的。但需要注意的是,RSC 可能是这个问题更好的解。