关于ZAKER 融媒体解决方案 合作 加入

2020 年最值得学习的顶级 JavaScript 框架和专题

36氪 01-24

神译局是 36 氪旗下编译团队,关注科技、商业、职场、生活等领域,重点介绍国外的新技术、新观点、新风向。

编者按:JavaScript 在前端的地位不可撼动,相关职位的薪资待遇也在稳步提升。在这种繁荣的局面下,各种框架和工具层出不穷,一时间令初学的开发者眼花缭乱,不知该做何选择。为此,从事软件开发教学创业的 Eric Elliott 通过分析 Google 搜索趋势、State of JS Survey、Stack Overflow 等调查数据,以及 NPM 下载量、汇总的职位发布情况等,给出了有助于获得一份 JS 编程工作的相关推荐,并且对未来十年的前沿技术进行了展望。原文发表在 medium 上,标题是:Top JavaScript Frameworks and Topics to Learn in 2020 and the New Decade

如果您想获得一份出色的 JavaScript 工作,或者想跟上 2020 及今后 10 年的重要技术,那这篇文章你找对了。本文的目的不是要告诉你哪些技术栈和框架是 " 最好的 " 或者最受欢迎的技术,而是要介绍一下哪些技术栈和框架能为你在 2020 年及今后拿到一份好工作提供最佳机会。

我们会研究各种来源的数据:

按照主题跟踪 Google Search 趋势

State of JS Survey 的数据

Stack Overflow Survey 调查

Npm 下载量

汇总的职位发布情况

这些指标都不完美,但就我们的目的而言,npm 下载量和职位发布情况最为重要,当我们把这些指标汇总起来看的时候,就能清晰一致地描绘出 JavaScript 技术的版图和趋势。根据这些指标来选择要学习什么框架是个好主意吗?那要取决于你的目标是什么。

既然我们有一个明确的目标——为求职者寻找学习的投资回报率——那这项任务就比告诉每个人什么是最好的要容易多了。尽管没有对所有目的而言都是最佳的东西,但客观地定义什么能为你实现特定的具体目标提供最大的机会还是比较容易的。我们不妨看一些数据。

首先是 JavaScript 的学习

在你开始太过操心技术栈之前,还是请先学习好 JavaScript 以及怎么用它来编写软件吧。如果你还没有办法解释什么是函数组合,什么是对象组合,什么模块,请从此处开始(https://medium.com/javascript-scene/composing-software-the-book-f31c77fc3ddc)。一切软件开发都是组合:我们把一个庞大而复杂的问题分解成可以用软件的建构块(函数、对象、模块等)解决的小问题。然后再把这些解决方案组装成我们的应用。我们的 2020 就先从充分了解 JavaScript 和软件组合开始吧。

React 统治了 2019,很有可能还会统治 2020

我喜欢 npm 下载量这个指标,因为它能够很好地说明框架使用的活跃度 *。业界常用的框架中下载量方面的得分会高得离谱,因为用户是在本地机器上跑 npm install 的。

注:此处并不包括 jQuery ,因为很多 jQuery 项目都是不用 npm 的老项目,所以不管怎样它都会被严重低估。把 Svelte 放进来是为了让大家看看它在市场当中的相对地位如何,并解释为什么它会缺席图表的其他地方——因为还没有足够的数据可供 Svelte 做出有意义的展示。比方说,Google 搜索趋势里面还没有这个主题。

招聘广告汇总

此图统计了目前提到了某个特定框架的职位空缺。*

按 UI 框架统计的岗位需求

跟去年相比,React 的领先优势扩大了,而 Angular 和 jQuery 都输给了 Vue 。这个饼图显示了每个框架的相对就业市场份额:

顶级框架在工作市场的份额

2019 年,JavaScript 开发人员的平均工资再次上涨,从 11.1 万美元年收入增加到 11.4 万美元。

* 统计方法:在 Indeed.com 上搜索求职情况。为了消除假阳性,我把搜索跟关键字 " 软件 " 进行配对以增强相关性,然后乘以1.5(这大概是编程岗位列表中使用了 " 软件 " 与与不使用 " 软件 " 的之间的差异。 )所有搜索结果页均按日期排序,并抽查过相关性。这里得出的数字不是 100%准确的,但是对于本文来说,这种精度已经足够好了。

Google 搜索趋势

就像你可能会想到的那样,搜索兴趣 * 多少反映出就业市场的份额情况,但有一些有趣的差异。我们可以清楚地看到,从 2017 年到今天,大家对 jQuery 的兴趣正在减弱,而对 Vue.js 的搜索兴趣出现了强劲增长。以下是搜索的份额情况:

跟招聘广告一样,React 有很大的领先优势,吸引了前端框架 36%的搜索量,其次是 Angular(约 27%)和 jQuery (25%)。对 Vue.js 的搜索兴趣比其在招聘市场的份额要大得多,但该数据通常与排名中的招聘市场数据一致。看来我们已经成功地证实了这一点。

* 研究方法:所有术语、数据均按主题而不是搜索字收集,以便从无关的关键字匹配中排除掉假阳性。

未来值得关注的框架

跟其他受欢迎但使用不那么广泛的框架(比方说 Svelte 或 Vue,这两个的满意度排名都很高,但行业采用率相对较小)相比,更多的岗位要找的是具备 React 技能的人。

学习 Svelte 或 Vue 可能显得很酷——但是,如果你的目标是找到一份工作的话,如果你先去学习 React 就会有更好的机会。

尽管如此,Svelte 和 Vue 在《State of JavaScript 2019》调查当中都获得了很高的用户满意度分数。在过去,React 的用户满意度得分高预示着会抢占当时占主导地位但满意度得分相对不高的 Angular 的份额。

2019 年,React 的用户满意度排名最高,用户满意度达到了 89%。紧随其后的是 Svelte(88%)和 Vue.js(87%,低于去年的 91%)。Svelte 或 Vue 不太可能抢夺太多的 React 用户,但是还有有很多的 Angular 和 jQuery 用户可能会变节转投 Svelte 或 Vue ,从而在 2020 年推动这两个框架取得进一步的强劲增长。

可以肯定的是,掌握 React 会增加你在 2020 年找到并保住好工作的几率。

TypeScript 与JavaScript

毫无疑问,过去几年的时间里 TypeScript 的增长非常迅速,根据 State of JavaScript 调查,89%的 TypeScript 用户会再次选择使用这门语言,有 66%的受访者要么用过 TypeScript ,要么对使用 TypeScript 感兴趣(略低于去年的 71%)。

但是,尽管大家对 TypeScript 很感兴趣,且使用率似乎也在迅速增长,但是招聘市场对具备 TypeScript 经验的要求还不高。只有约 7%的 JavaScript 招聘广告的岗位描述中提到了 TypeScript。当然这可能会低估了对 TypeScript 职位的需求情况,因为招聘经理一般预期 JavaScript 开发人员掌握起 TypeScript 来不会有太大麻烦 所以有可能不会在岗位描述中提及 TypeScript 。

但我个人坚持认为学 TypeScript 这门语言的投资回报率可能会比较低,甚至是负的。这有可能会降低而不是提高生产率,并且,如果您已经有 TDD,代码审查和设计审查等很好的漏洞预防措施的话,则用 TypeScript 编程不太可能会带来显著的减少漏洞的好处。

话虽如此,并不缺少对 TypeScript 的热爱,所以你当然不应该怕它,或者因为人家用的是 TypeScript 而不是 JavaScript 而拒绝别人求职。由于 TypeScript 是 JavaScript 的超集,所以从 JavaScript 转到学 TypeScript 并不像学习完全不同的语言那样具有挑战性。

想在 2020 年的就业市场竞争中脱颖而出你也许不需要学习 TypeScript,但是 TypeScript 引擎相当有用,哪怕对于标准 JavaScript 也是如此。

我每天用 Visual Studio Code 的时候都用他来给标准 JavaScript 提供智能感知。甚至还可以利用 JSDoc (TypeScript 引擎可理解并解释这种类型注释)或外部 d.ts 文件来增强这种智能感知,VS Code 会自动获取你所使用的模块的 TypeScript 定义。

注:用 TernJS 和 Atom 这么多年我也一直享受着类似的好处,但是这种结合缺乏 TypeScript 引擎 + VS Code 的维护性和社区支持。

如果你还没用过 Visual Studio Code,你可以先试用一下 VS Code。顺便说一句,VS Code 在 JSState 调查受访者心目当中是 JavaScript IDE 市场的领导者,占有 57%的市场份额(其次是 WebStorm ,占有 14%的市场份额)。

数据管理

Redux 在状态管理器的竞赛中仍然具有领先优势,但是 GraphQL 和 Apollo 在满意度和兴趣方面是增加的。预计 2020 年 GraphQL 会继续保持增长。

话虽如此,哪怕你用的是 GraphQL ,我仍然认为使用 Redux 状态管理有充分的理由,而且我认为即使不用框架,每个人都将从学习 Redux 中受益。

GraphQL 是近年来流行的查询语言。它的语法简单,但是由于它是跨整个技术栈使用的,而且学这个东西意味着必须学习怎么把它连接到数据存储层,因此集成可能会令人生畏——但这是值得付出的努力。

GraphQL 不会在短期内完全取代 JSON REST API,但是它在 2019 年的增长甚至变得更快了,我预计这种强劲的增长会持续到2020 年。

后端

Express 是主导性的 Node 框架,用户满意度很高,2020 年 Express 不会遇到重大的挑战者,但是随着无服务器(serverless)的兴起,我预计在新的十年到来之际,Express 的统治地位会逐渐下滑。

Next.js 是一个一开始建构在 Express 基础之上的全栈 React 框架,但此后已从 Express 转换到到无服务器和静态优化,然后就像疯了一样发展起来。

当我们把 EricElliottJS.com 从 Express 换到无服务器的 Next.js 时,我们的托管费用降低了 90%,而且页面加载速度也加快了。所以我再怎么强烈推荐这个都不够。我们现所有的应用都是用 Next.js 和 Zeit 托管的。

测试

Jest 和 Cypress 分别单元测试和功能测试最受欢迎的工具,但是我个人非常喜欢 RITEWay 和 TestCafe 。RITEWay 是单元测试之禅 :一个始终回答了每个单元测试必须要回答的 5 个问题的测试框架。

跟 Cypress 一样,TestCafe 也是一种功能测试工具,这个工具不需要你跟 Selenium 纠缠不清,但是拥有更好的跨浏览器支持和一个很酷的测试记录器 / IDE。我强烈建议 QA 小组试试 TestCafe 。

函数工具

Lodash 、Ramda 、Immer、Redux 以及 RxJS 都是我经常使用的函数工具。

Ramda 在 2019 年进步神速,它提供了一些 Lodash 所没有的工具,比如 lenses(透镜)和 transducer(变形器)。RxJS 通过 pipeable 运算符提供 transducer 风格的函数性。

Immer 使得在不改变 JavaScript 对象的情况下对其进行操作变得很容易。而 Redux 是一种状态管理工具。

2020 年的技术格局

在接下来的十年时间里,有几种新兴技术即将对人类生活产生巨大影响。以下是这些技术最新发展情况的概要:

AI

人工智能也许是有史以来最具变革性的技术。不同的学者和自以为是的亿万富翁都把 AI 说成是奇迹般的乌托邦,或者人类的终结。

这肯定是我们所知的人类的终结,但也可能是人类与机器之间美好合作的开始。我们才刚刚开始瞥见 AI 可能会变成什么样子。其中有些令人恐惧(比方说深度伪造),而另一些则非常有用(比方说 Adobe Premiere 对视频编辑的新的 auto-reframe 功能)。事实上,到目前为止,人工智能既极其可怕又极其有用。人工智能会继续制造一些令人恐惧的事情,但是通过人工智能改善人类生活的潜力是巨大的。潘多拉的盒子已经打开,再也无法关闭,所以我希望你善加利用好 AI,用来解决重要问题和改善生活。

2019 年在 AI 领域取得了许多重要突破。近年来,研究团队一直在各种视频游戏领域争相实现超人的表现,但有些游戏类型对 AI 来说仍然充满挑战,比方说像《星际争霸》II 这样的策略游戏。DeepMind 的 AlphaStar 程序利用跟人类玩家能用到的相同资源,在 Battle.net 官方服务器实现了大师级的水平。《星际争霸》是一款复杂的游戏,需要进行长期的策略思考,这种能力曾经被认为是 AI 所不能及的。战略思维代表了通向通用 AI 道路上的一个重大的里程碑。

如果说把资源用到游戏上看起来似乎很愚蠢的话,不妨想想 DeepMind 这样的项目在文本转语音方面也取得了令人难以置信的进步, AI 代理和私人助理被赋予了表现更自然的声音,但同样重要的是,通过这样可以把声音还给那些失声的人。

人工智能还被用来诊断癌症,预测蛋白质折叠(可用于了解疾病和发现新药),恢复残疾人的肢体控制,生成逼真的图像等。

无人车

无人车在变革性 AI 技术当中应该有自己的一席之地。这个生态体系的大玩家主要包括 Cruise、Uber、Waymo、NuroAurora 以及福特等。这项技术仍处在初级阶段,过分乐观已给这个行业带来了真正的问题,但毫无疑问,2020 年代我们将见证超越人类水平的自动驾驶能力。2015 年我曾对自动驾驶技术做出过预测:

" 到 2045 年的时候,一俩人开的车看起来会像马拉的双轮单座车一样。"

现在距离这一预测已过去 5 年,我想我可能低估了自动驾驶汽车进入市场的速度。Waymo 的车在 2018 年的行驶里程超过了 100 万英里,美国已经有 24 座城市的道路上有无人车上路。现在我的预测是到 2025 年,多个制造商将会推出多种 L5 级(全自动)的车型。请密切关注 Tesla、通用、福特及宝马的表现。

在过去十年的时间里,AI 研究论文的出版量增长了 10 倍,现在,AI 正在把实用、有用的工具交到主流用户手中,预计这种趋势在未来十年仍将持续。

我们已经开始看到 AI 能做到一些几年前大多数人都不敢相信的事情。预期 AI 在 2020 年代会取得更大的奇迹。

区块链和加密货币

2019 年对于区块链和加密货币来说是具有里程碑意义的一年。区块链技术开始进入主流。我预计 2020 年会有更大的发展并为主流所采用。

对用户友好,实现无需许可,无需银行的借贷的 DeFi (去中心化金融)出现了爆发式增长。目前,有 6.5 亿美元(包括 4.5 亿美元的无银行贷款)被锁定进 DeFi 合同里面,而 2019 年是该技术出现的元年。随着越来越多的人投资于加密货币,我预计将来会出现更多有加密支持的 DeFi 贷款。

大家可以在不牺牲自己的加密货币投资机会成本的情况下获得流动性,或利用 DeFi 贷款对加密货币进行杠杆投资(投资的风险 / 回报均增加了)。

加密货币和区块链技术正在突破主流。比特币和以太坊的日活地址在 2018 年 1 月达到了顶峰,随后一年,由于市场下跌,大家的兴趣变弱了(每上涨 10 倍之后,加密货币的价格就会大幅回落,然后又会在下一个周期攀爬到比上一个高峰高出 10 倍的新高)。

比特币和以太坊区块链上的日活地址数

Square 的 Cash App 的 Android 下载量已超过 1000 万次,在有着出色 UX 的简单 app 里面,用户可以购买,出售,接收比特币。

Coinbase 的 Android 下载也超过一千万。

Brave 推出了内置的以太坊钱包,月活用户数一下子从 2019 年 10 月的 870 万增加到 11 月底的 1040 万。

因为有了 Sliver.tv 和 DLive,2000 万视频游戏迷正在利用 Theta 网络进行去中心化的流媒体直播。

2019 年我最喜欢的进展是 Fortmatic 的推出。不管你是不是在开发加密应用,你都可以用 Fortmatic 来替换用户身份验证并提高安全性,并且摆脱被供应商锁定,还可以增加诸如端到端加密,签名交易等功能。

如果你打算在 2020 年开发新应用,不妨考虑一下 Fortmatic,而不是再得输入自己的用户名 / 密码进行身份验证(2020 年没人应该再这样做了),或者把身份验证这件事交给 Google、Facebook 等。

我曾经写过一篇文章讨论如何利用加密技术来改善应用的身份验证和安全性。我很期待在 2020 年能看到主流应用开始采用 Fortmatic 等技术。

2019 年以太坊轻松赢下了智能合约平台大战的胜利。我预计 2020 年以太坊仍将继续占据主导地位。

扩展现实(XR)

自 2015 年以来,我每年都对 AR 未来充满希望我,从小就梦想着它的实现。将来,XR 将会取代手机。这只是个时间问题。需要多长时间仍然有待讨论,但似乎这种转变可能会在未来十年内出现。甚至可能在未来 5 年内开始。

随着 VR 与 AR 之间的界限逐渐模糊,该行业现在正在把整个领域泛指为 XR(扩展现实)。自问世以来,ARKit 和 ARCore (分别是苹果和 Google 的增强现实 SDK)自引入以来已取得了长足的发展。月活用户数已从 2017 年的 4700 万增长到 2019 年 5 月的 1.5 亿。

WebAR 在 2019 年已站稳了脚跟,2020 年很可能会继续发展。如果你对此感到好奇的话,不妨看看 AR.js、React 360 或 Viro React。

硬件也取得了很多进展。2016 年推出的 Hololens 1 大概是 5000 美元。自此之后又发生了什么呢?

Hololens 2 的价格仍然高达 3500 美元,他们还没有为消费者准备。剪切、SLAM(实时定位与地图构建)及视野等方面仍然存在问题。你不会想一整天都戴着这样的东西。但是,因为现在它的定价是每月 99 美元上手个开发者工具包还是有可能的,虽说你得在等待名单上等一段时间。

无人机

在美国已经售出了大约 200 万架无人机,它们已经改变了建筑,地理调查,制图,电影,航空摄影,农业,环境科学和娱乐等领域。2020 年商用无人机物流配送最终可能在美国成为现实。

FPV 无人机比赛是我最喜欢的观赏运动,还有 Drone Racing League 直播赛事。如果你想了解它是什么样的,他们还提供了精心设计的模拟器。

所有这些新的无人机活动均需要大量软件支持,包括图像处理,无人机地图软件,物流飞行规划,遥测记录和处理,分析,行业应用集成等。

这跟 AI 也有很多重合之处——自主飞行的无人机需要图像处理,碰撞避免等。

结论

2010 年代为我们提供了大量变革性技术,其中许多我们已经视为理所当然,但其实是产生了巨大影响的:

Instagram

Spotify

虚拟助手

无线耳机

主流 VR

增强现实(热门游戏 " 精灵宝可梦 " 就用这个)

经济实惠的 Tesla

共享经济(汽车,电动滑板车,自行车)

主流平板电脑

主流生物识别技术(触摸 ID,面部 ID)

众筹

我已经迫不及待想看看你在新的十年会创造出什么样的东西。

开始表演你的魔术吧。

译者:boxi。

以上内容由"36氪"上传发布 查看原文