在Web开发领域,我们的世界变化很快,但我们能确定2021年将带来什么?通过仔细研究2020年开发者调查的数据,我强调了我认为JavaScript的大故事将会是什么。
让我们深入研究并探索我从数据中获得的见解。
包管理
去年,我建议我们注意PNPM的兴起,它的目的是避免版本冲突,并与monorepos玩得很好。它有一些热情的拥护者,去年在Github上达到了9.5k颗星,所以它显然赢得了开发者的青睐。然而,我觉得它不太可能在2021年在使用上展开激烈竞争,考虑到嵌入式Yarn和NPM在项目中的应用,以及它们为发布新功能投入了多少精力。其中一些功能是直接针对PNPM开发的,特别是Workspaces。这恰恰说明了竞争在推动开源软件前进的过程中是多么重要。
测试
在2019年,Cypress和Puppeteer作为高新作品脱颖而出,在2020年他们都继续取得成功。不过,微软带来了一款新的E2E测试工具Playwright,这款工具似乎是突然出现的,仅在2020年就获得了不到2万颗星。作为世界上最大的软件公司之一,他们有影响力广泛推广他们的产品,但这只是部分解释了该工具的流行。主要原因是它的功能集和Puppeteer的简单迁移路径。
自从纳德拉接任首席执行官以来,微软已经养成了生产流行且强大的开源工具的习惯。VSCode有人知道吗?
JavaScript的味道
我去年说过,TypeScript已经缓慢但肯定地接管了JavaScript世界,这一趋势正在加剧。无数的开源项目都急切地将其列为受支持的特性。Deno是2020年Github上最受欢迎的项目,它自带Typescript编译器。去年,我建议我们关注PureScript,因为它所执行的静态类型和函数式编程的兴趣。然而,2020年的吸收并不那么强烈,Github上只有641个新星,兴趣下降了3%。从TypeScript与竞争对手之间巨大的使用差距来看,感觉语言战争已经结束,微软的产品已经胜出。在社区多年的深思熟虑和语言过剩的氛围下,任何新人都很难得到我们的关注。
看到社区聚集在这里,我感到宽慰。现在,我们避免不同超集的干扰,更多地关注语言本身。
UI框架
Vue是2019年最明星的框架,这在当时是个大新闻,也传递了一个明确的信息:开发者喜欢它。2020年也是同样的故事。不过,从NPM的下载量来看,React的市场份额依然巨大。
还有两个有用的指标:GitHub上的标签和招聘广告。目前在GitHub上有超过80k的仓库标记为“React”,相比之下,有25k的仓库标记为“Vue”。看看就业市场,去年5月Career Karma报道称,在美国Indeed.com上,React开发者有1000个工作机会,而Vue开发者只有1025个。React无处不在,并且经受住了一些激烈的竞争。
在不提及Svelte和Angular的情况下,我无法结束本节。Angular仍然非常受欢迎——去年它获得了13300颗新星,在NPM上每周的下载量接近250万次。鉴于React的主导地位,这可能会让一些人感到惊讶,但这些数据值得认可。相比之下,斯威特非常年轻,但在JS状态满意度图表中名列前茅。然而,由于React和Vue开发者的陡峭学习曲线,我预计它在2021年只会有小幅增长。
后端
现在这是一个复杂的空间,用于静态网站生成的框架与用于API制作的框架并列。如果我们把它细分一下,看看只用于服务器的框架,我们可以看到Express仍然以5.15万颗星的成绩稳居第一。然而,Nest在2020年以惊人的1.03万新星爆发,使其总数达到3.36万。开发者之所以对它情有独钟,是因为他们被它的舆论方式所吸引,它可以加快开发速度,简化维护。哦,我有没有提到它使用了TypeScript?
从全栈框架的扩散来看,这个领域正在进行一场非常重要的人心之争,因为它们对架构、性能和工作方式的影响非常大。NextJS和Gatsby这两个基于React的框架,在使用量上还是比VueJS的同类框架要受欢迎不少,但这只是证实了我们对UI框架生态系统已有的了解。真正值得注意的是,Gatsby的满意度下降了多少。坊间证据表明,它的DX令人困惑,尽管网上有大量证据驳斥这种说法。随着Vercel开发NextJS并将静态站点生成等功能添加到它的工具库中,我认为它今年会越来越强大。
构建工具
这个领域现在有一些值得注意的竞争。尽管Webpack的DevX受到了抱怨,但它在很长一段时间内都是最高的,而且在各大厂商中的使用率仍然是最高的。去年,我们看到Rome挑战这个领域,今年我们看到esbuild、Snowpack和Vite在新星榜上崭露头角。Esbuild的职责很简单:加快构建时间。这显然对许多工程团队来说真的很有价值,也解释了为什么会走向它。
虽然GitHub星星是一个指标,但在JS状态调查中,Snowpack在兴趣榜上名列前茅,但更重要的是,它是满意度榜的联合榜首。虽然使用率可能还很低,但我觉得它的时代即将到来。Snowpack和Vite的流行传递了一个重要信息:原生ES模块正在被社区重视。这是一个巨大的话题,因为它对构建过程、缓存和开发/生产模块对称性的影响。
状态管理
如果没有它的状态管理器,什么UI框架是完整的呢?撇开复杂性与未来验证的争论不谈,这个领域特别有趣,因为Redux正受到两个角度的挑战:React本身和独立的新来者。根据我的个人经验,我知道React的Hooks和上Context API有多么强大,但它们也有自己的局限性。不管怎样,它们都是React开发者的热门话题,几乎有一半的前端参与者表示他们在使用它们。
总结
在去年的文章中,我探讨了整合的主题。在经过多年的模式、框架和库的分歧之后,感觉我们在模式和实践上正在结盟。虽然我觉得这个趋势在2020年还会继续,但很明显,JavaScript的流行已经导致了工具在市场上的扩散,而这些工具以前是其他语言的专利;越来越多的E2E测试和机器学习工具就说明了这一点。
2020年数据中出现的关键主题是,JavaScript的格局正在被大型软件厂商定义。微软的TypeScript正在成为一个行业标准,建立在它基础上的项目有更好的成功机会,NestJS和NextJS(不要混淆)就是很好的例子。
JAMStack方法的影响和对速度的需求也是影响因素,静态网站生成器和ESbuild等工具迅速崛起。
由于特性、浏览器支持、运行时和不断扩大的数字领域的快速发展,JavaScript的版图一直在扩大。
原文地址:https://www.toutiao.com/i6940982866834784805/