StateOfJS 最新发布了 2022 年 JavaScript 现状调查报告指出,Solid 和 Qwik 等新兴前端框架正在挑战 React 的权威。该报告基于对近 40,000 名 Web 开发人员的调查,数量几乎是去年的两倍。
JavaScript 可能发展得很快,但 JavaScript 开发人员的发展速度貌似更快,因为许多相对较新的特性已经显示出了很高的采用率。报告把 JavaScript 的特性分成了语言、浏览器 API 和其他特性三个部分。下图根据分类划分,显示了各种特性的采用率;外圈的尺寸代表了了解这个特性的用户数量,内圈的尺寸代表了实际使用这个特性的用户数量。
其中,Nullish Coalescing 使用率最高,达到了 81.7%。其次分别为 Top Level await ()(67.5%)、String.prototype.replaceAll()(64.6%)、Progressive Web App(64.4%)。
JavaScript 2022 大调查以象限图表示了 JavaScript 各技术这几年来的发展情况。每条线的使用时间从 2016 年到 2022 年。更高的分数意味着更多的人使用了这项技术;而右边的分数意味着更多的用户想要学习它,或已经使用过并且会再次使用它。
1、JavaScript 现状 —— 前端框架
React 仍然是使用最广泛的前端框架,使用率为 81.8%,领先于第二名 Angular 的 48.8% 和第三名 Vue 的 46.2%;Svelte 的使用率从 2019 年的 7.8% 增长到 21%。开发人员最感兴趣的框架是 Svelte (69.8%)。在渲染框架中,Next.js 排名第一(48.6%),领先于 Gatsby 23%,但 “兴趣” 使 Next.js 与 SvelteKit 和 Astro 大致持平。
Svelte 和 Solid 在留存率方面处于领先地位,分别为 89% 和 90%。React 的留存率从 2019 年的 89% 下降到 83%,而 Angular 的留存率在此期间略有增长,达到 42%,但这仍远低于 2016 年的 68%。
2、JavaScript 现状 —— 后端框架(服务端)
在服务端,排名靠前的渲染框架是 Next.js,占 48%;其次是 Gatsby 占 23%,Next 占 18%。然而,Astro 和 SvelteKit 分别以 92% 的留存率高居榜首,其次是 Next.js,为 90%。Gatsby 的留存率从 2019 年的 90% 下降到 2022 年的 38%。
3、JavaScript 现状 —— 测试
Jest 以 68.3% 的使用率蝉联最常用的单元测试框架榜首位置;但 Vitest 和 Testing Library 等新兴工具也不甘示弱,留存率分列榜一榜二。
4、JavaScript 现状 —— 移动和桌面
Electron 和 React Native 的使用率最高,各占 35% 左右。和其他领域一样,新兴技术 Tauri 的留存率依旧是最高的;这是一个相对较新的开源工具包,用于使用 HTML、CSS 和 JavaScript 等 Web 技术构建跨平台桌面应用程序。Tauri 在 7 月发布了 1.0 版,其核心库是用 Rust 编写的,该项目的重点是提高安全性和减少资源使用。Tauri 应用程序具有一个 Rust 二进制文件,用于管理窗口、webview 和对操作系统的调用。与更知名的 Electron 相比,Tauri 更小、更快,并且越来越受欢迎。
5、JavaScript 现状 —— 构建工具
在 2021 年的报告中,Vite 不仅以 98% 的满意度首次亮相,且第一年的使用率就已达到了 30%。2022 年的 Vite 表现依旧不俗,留存率为 98.4%,兴趣为 81.7%,使用率约为 50%。Webpack 仍然以 84.8% 的使用率领先,但 Vite 赢得了 “采用率最高的技术” 的调查,得分逐年上升。
6、JavaScript 现状 —— Monorepo 工具
此次调查也展示了有关 monorepo 工具的数据。其中,pnpm、Turborepo 和 Nx 的留存率最高,Rush 和 Lerna 最低。受访者对 Turborepo、pnpm 和 Nx 的兴趣最浓厚;但使用率方面基本相反,Yarn Workspaces 最高,为 26.3%。
此外,在回答有关 JavaScript flavors 问题的 27,000 人中,98.9% 的人表示他们使用 TypeScript。第二名是 Elm,只有 2.3%。 关于 JavaScript/TypeScript 平衡方面,有 20.7% 的受访者表示仅使用 TypeScript 编写代码,而仅使用 JavaScript 的受访者比例为 8.2%。
受访者使用最多的非 JavaScript 语言是 Python,其次是 PHP、Java、Rust、Go、C# 和 C/C++。