2020 全球 JS 调查报告

435 阅读5分钟

2020年,JavaScript仍然很糟糕,整体上还是设法向前发展了。由于语言本身Optional Chaining(可选链操作符)和Nullish Coalescing(空值合并操作符)等新功能而不断改进,因此TypeScript的广泛采用通过普及静态类型将事物推向一个全新的高度。

在框架方面,就在我们认为一切都已解决的时候,Svelte进来并用前端的全新方式震撼一切。在多年的webpack统治下,甚至构建工具也显示出新活动的迹象。

但是这次的区别是,相对而言,“老”后卫什么都没走。Svelte和Snowpack很棒,但是React和webpack也很棒。可以肯定的是,它们最终也会成为JavaScript大流氓的牺牲品,但是不会持续很多年。

因此,让我们享受这里所拥有的一切:一个不断完善的强大生态系统!

一、技术现状

2016 -- 2020年趋势图,每条线从2016年到2020年(较粗一端为2020年)。纵轴越高,表示一项技术被更多的人使用,横轴越大,表示有更多的用户想要学习,或者曾经使用过,还会再次使用。

从上图中可以看出随着年限的的增长,webpack、Express、React、TypeScript、Jest位于榜单前列。

二、编译为js的语言

1、满意度:

根据上图可知,第一名:TypeScript、第二名:PureScript、第三名:Reason

2、感兴趣度

根据上图可知,第一名:TypeScript、第二名:Reason、第三名:Elm

3、使用率:

根据上图可知,第一名:TypeScript、第二名:Elm、第三名:Reason

4、总结:

根据以上统计可以看出,TypeScript依旧独领风骚,其次就是Elm,但是PureScript也是一个值得关注的增强类型语言。

三、前端框架和库

1、满意度:

根据上图可知,第一名:Svelte、第二名:React、第三名:Vue.js

2、感兴趣度:

根据上图可知,第一名:Svelte、第二名:Vue.js、第三名:React

3、使用率:

根据上图可知,第一名:Svelte、第二名:Angular、第三名:Vue.js

4、总结:

正如开头所说,svelte的出现真的是对前端行业的冲击,原以为三大框架(ReactVue.jsAngular)包揽所有的时候,它出现了,一度成为了第四名(使用率),但是从兴趣度和满意度来看,它未来的潜力不可估量。

四、数据层

1、满意度:

根据上图可知,第一名:GraphQL、第二名:Apollo Client、第三名:Vuex

2、感兴趣度:

根据上图可知,第一名:GraphQL、第二名:Apollo Client、第三名:XState

3、使用率:

根据上图可知,第一名:Redux、第二名:GraphQL、第三名:Apollo Client

4、总结:

使用排名比较高的状态管理依旧是ReduxVuexMobx数据管理GraphQLApollo,并且XState横空出世。

五、后端框架(服务器上的JavaScript):

1、满意度:

根据上图可知,第一名:Next.js、第二名:Express、第三名:Fastify

2、感兴趣度:

根据上图可知,第一名:Next.js、第二名:Express、第三名:Fastify

3、使用率:

根据上图可知,第一名:Express、第二名:Next.js、第三名:Gatsby

4、总结:

Express依旧是统治地位,而NextNuxt这些服务端渲染的框架也逐渐成为大家的所选的框架。

六、测试框架:

1、满意度:

根据上图可知,第一名:Testing Library、第二名:Jest、第三名:Cypress

2、感兴趣度:

根据上图可知,第一名:Jest、第二名:Storybook、第三名:Cypress

3、使用率:

根据上图可知,第一名:Jest、第二名:Mocha、第三名:Storybook

4、总结:

JestMocha在使用量上依旧是统治地位,但是新增Testing Libray很强劲。

什么是Testing Library ?用于 DOM 和 UI 组件测试的一系列工具,主要 API 包含 DOM 查询,更可以和其他测试工具(jest、cypress)配合,用于更多场景(react、vue、svelte)。而它是 React 的官方推荐。

我们推荐使用React Testing Library[2],它使得针对组件编写测试用例就像终端用户在使用它一样方便。

七、打包工具:

1、满意度:

根据上图可知,第一名:esbuild、第二名:Snowpack、第三名:TypeScript

2、感兴趣度:

根据上图可知,第一名:Snowpack、第二名:esbuild、第三名:webpack

3、使用率:

根据上图可知,第一名:webpack、第二名:Gulp、第三名:TypeScript

4、总结:

虽然短时间内webpack使用量还处于霸主地位,这一年打包工具的发生了巨大的变化。可以说这里发生了天翻地覆的变化。从ParcelSnowpack,再到后来的esbuild,每一个都是打包的好手,至于Vite为什么没有在其中,我猜想,Vite最开始只是为了解决Vue单个框架的方向,受众面不够广泛(现在它已经支持了多种框架的打包了)。

八、移动和桌面端(适用于移动设备和桌面应用程序的JS):

1、满意度:

根据上图可知,第一名:Electron、第二名:Capacitor、第三名:React Native

2、感兴趣度:

根据上图可知,第一名:Electron、第二名:React Native、第三名:Native Apps

3、使用率:

根据上图可知,第一名:React Native、第二名:Cordova、第三名:Electron

4、总结:

Electron依旧是桌面端的第一选择,CordovaReact Native也是移动跨端的热门选择。但是新出的Capacitor值得关注。

九、常用的工具函数库有

根据上图可知,第一名:Npm、第二名:ESLint、第三名:Prettier

十、JavaScript引擎/运行时/执行环境

根据上图可知,目前主要使用Node.jsBrowser

十一、编辑器

根据上图可知,目前VS Code依旧是统治地位。