JavaScript在2022年的发展方向
哪些JavaScript框架、功能和工具受到开发者的青睐,哪些正在被淘汰?让我们来看看最新的 "JavaScript现状 "调查结果。
自2016年以来,"JavaScript现状"调查承担了一项艰巨的任务,即询问JS人群在构建应用程序时使用的各种框架、技术和功能。这项艰巨工作的最新化身发生在2022年春天,现在已经有了结果。这些结果提供了一个关于JavaScript空间的有趣数据的金矿。以下是一些关键的亮点和收获。
React之后是什么?
框架--前端、后端和全栈--在过去几年中一直是JavaScript的一个非常活跃的领域。这在某种程度上已经稳定下来了,但仍有不少新项目进入这个领域。
在前端,React仍然是领导者,在使用和认知方面排名第一。然而,React在兴趣方面仅排名第四,在保留方面排名第三。哪些前端框架享有最高的兴趣和保留率?它们分别是Svelte和Solid。这标志着与去年相比,Svelte在这两个类别中的排名略有变化。Svelte和Solid正在争夺后起之秀的称号。
Angular在保留率和兴趣方面显示出不祥的迹象,排名接近底部,位列第9。然而,它在实际使用方面仍然排名第二,在知名度方面排名第三。Vue仍然是一个强有力的竞争者,在所有类别中都有一个不错的排名。
总的来说,前端的故事是渐进式的完善,而不是革命性的动荡。
那么在后端呢?Next.js发起了全栈JavaScript运动,在知名度和使用率上都仅次于Express。当然,将Next与Express进行比较是不完美的。Express只是一个服务器端的框架,是基于Node的HTTP的主力。Next则完全是另一种动物,它允许客户端和服务器的构建和连接。
在开发者的兴趣和保留方面,SvelteKit在该领域处于领先地位,在这两个类别中均排名第一。在兴趣方面,新加入的Remix和Astro获得了第2和第3名的成绩。静态网站生成器Gatsby在认知度和使用方面仍然保持在第3位,但在兴趣和保留方面下降到第13位。
与Vue本身的风格相似,Vue的全栈框架Nuxt在认知度和使用率方面排名第4,兴趣和保留率方面排名第9。Astro除了在保留率方面排名第3之外,在兴趣方面也排名第2。Fastify框架在保留率方面排名第3。
不可阻挡的TypeScript和tsc
最强劲的趋势之一是TypeScript的持续增长,以及对其命令行编译器tsc的更多认识和使用。在过去的几年里,TypeScript已经从一个有趣的想法变成了一个标准。超过11000人回答了关于JavaScript口味的问题,其中98.6%的受访者认为TypeScript是他们从其他东西编译成JavaScript时使用的技术。
剩下大约6000名调查者,即大约30%的人没有回答这个问题,估计是那些使用香草味JavaScript的人。当然,在使用TypeScript的开发者中,有相当一部分人仍在使用普通的JavaScript。不过,从这个问题中得到的启示是,69%的受访者在某种程度上以某种形式使用TypeScript。
tsc作为构建工具(即通过tsconfig.json文件将TypeScript编译为JavaScript)的崛起在流行度/满意度象限中得到了体现,这表明tsc在这两方面都是一颗新星。
榆树的流行需求
另一个与编译成JavaScript的语言有关的有趣发现是Elm的流行。Elm是一种针对网络开发的巧妙的函数式语言,因其能够实现快速和流畅的应用而受到高度评价。但它也是一个停滞不前的项目,几个月来没有任何提交。经验之谈?显然,Elm的基本思想仍然是可取的和受欢迎的。也许一个新的领导者可以接手这个项目,并将其发扬光大,使整个生态系统受益。
榆树的前景从它赢得 "最多写入者 "的奖项中得到了强调。即使Elm在调查的问题答案中不是一个明确的选择,用户也非常喜欢它,以至于他们把它写进去。
空值凝聚的凝聚
JavaScript开发者非常喜欢nullish凝聚和可选链。这并不难理解。这两个特性使重复性的需求变得更简单、更简洁,分别在值设置中精确地处理空值,并在链式属性引用中避免空指针异常。(关于这两个特性的更多信息可以在这里找到。)动态导入也已经发展成为一个众所周知的特性,尽管没有那么广泛的使用。这是可以理解的,因为懒惰加载模块并不是一个常见的需求。(更多关于动态导入的信息,请点击这里)。
阴影DOM和Lit
在浏览器API方面,WebSockets是众所周知的,也是被广泛使用的,将近70%了解它们的开发者说他们使用过它们。Shadow DOM也有类似的情况,大约70%的人知道这个功能,其中近66%的人使用过它。Shadow DOM是一个特别有趣的功能,因为它代表了React等框架、W3C标准和浏览器实现之间的边界。
说到影子DOM,Lit框架明确建立在浏览器影子DOM和网络组件规范的基础上,从2020年到调查日,Lit框架正显示出从默默无闻中小幅上升。
用Jest测试
JS生态系统中的一颗新星是Jest测试框架。在2020年的调查中,Jest是最受好评的技术之一,而最新的调查显示,它在这方面只是略有退步,而使用它的开发者数量却在上升。
Jest内置于create-react-app工具中,它也是其他React测试工具的基础。这推动了它的大部分采用,但当React的受欢迎程度趋于平缓时,Jest却在继续增长。这是因为Jest并不局限于React,它在一系列其他框架以及vanilla JavaScript和TypeScript的使用中都很受欢迎。
构建工具之争
Webpack一直是JavaScript构建管道的事实上的国王,目前的调查反映了这一点。然而,它也显示,虽然使用Webpack的开发者数量似乎保持稳定,但更多的开发者对它表示不满。导致这种不满的一个因素可能是期望:一个简单的事实是,当更多的人使用任何流行的工具,当更多的人被要求 使用它,因为它已经成为标准,它就越是倾向于作为一个应该完美工作的工具而受到批评。
但是,Webpack满意度下降的一个更大的因素可能是Vite进入了这个领域。Vite是构建JavaScript应用程序的一种华丽的新方法,旨在解决Webpack的一些缺点。它似乎做得很好,因为像SvelteKit这样高调的项目已经采用了它,而且Vite实际上赢得了今年的State of JS最佳保留奖。
Snowpack、Rollup和Parcel也在蚕食Webpack的心智份额,但在知名度和愿意再次使用方面最引人注目的是esbuild(在这里了解更多关于esbuild的信息)。另一个新的竞争者是SWC,它在开发者中的兴趣也在急剧增长。
JS开发者来自哪里
毫不奇怪,美国是全球大部分开发者的家园。但你能猜到哪个国家排在第二位吗?如果你猜是德国,那就对了,有6.6%的受访者表示他们来自那里。德国紧随其后的是俄罗斯,占6.2%,法国和英国分别占5.7%和5.4%。令人惊讶的是,中国仅占受访者的1.6%。
也许这里最大的收获是JavaScript和一般软件开发的日益全球化性质。当然,这是一个值得庆祝的事情。从尼泊尔到尼日利亚,都有一个奇妙的国际编码员分布,令人惊讶的是,还有一个孤独的JS编码员从南极洲赶来报道。
JavaScript中发生了很多事情
正如调查的作者Sacha Greif所承认的,"调查永远只能代表JavaScript生态系统中很小很小的一部分"。此外,调查的公开形式很容易在所涉及的项目中得到推广,甚至是公然的游戏。与其说是硬性的排名,不如说这些结果应该被看作是总体趋势。
JavaScript状态调查是为了确定网络开发生态系统的趋势,目的是帮助开发者做出明智的选择,而且它似乎确实达到了这个目的。也许更有用的是,该调查可以作为一种很好的方式来调整有趣的技术和项目,否则你可能会完全错过。
这肯定会成为有趣的阅读。希望Sacha Greif和他的团队在明年--以及在未来的许多年里--继续他们英勇的努力。