2020及新十年的优秀JavaScript框架和话题,了解一下

如果你想找一份与JavaScript相关的好工作,或者是了解2020以及新十年间的重要技术,请阅读本文,保证干货满满。

2020及新十年的优秀JavaScript框架和话题,了解一下

本文的重点不在于列举那些“很好的”、很受人喜爱的或很受欢迎的技术栈和框架——而是说明哪些栈和框架最有助于在2020及新十年间找到好工作。

笔者将研究一些数据,它们来源甚广:

  • 按主题搜索的谷歌搜索趋势
  • JS调查现状
  • Stack Overflow调查
  • Npm下载
  •  汇总职位公告

以上指标都不完美,但是就笔者目的而言,npm下载次数和职位公告最为重要,总的来看,这些指标清晰一致地描绘了JavaScript的技术前景及趋势。基于这些指标选择框架来学习好吗?这取决于目标是什么。

清晰的目标——为求职者学习投资回报率——让这项任务比告知读者何为优秀要容易得多。虽然没有什么东西可以实现所有目的,但是客观地定义什么最有可能有助于达到某个特定的、具体的目标确实很容易。请看一些数据。

首先,了解JavaScript

过于担心技术栈之前,先了解JavaScript以及怎样用它生成软件。若无法说明函数组合、对象组合和模块是什么,请点击此处。所有的软件开发都是组合:将复杂的大问题分解成可用软件构造块来解决的小问题:比如函数、对象、模块等等。这些解决方案经过组装之后形成了应用程序。新年伊始,请深入了解JavaScript和软件组合。

2019,React占据主导地位,2020,其地位依旧

2020及新十年的优秀JavaScript框架和话题,了解一下

笔者喜欢npm下载指标,因为它可以很好地呈现框架的活跃使用情况*。由于用户在本地计算机上运行npm install,因此通常处于工业框架的下载情况会极其活跃。

注意:此处不包括jQuery,很多jQuery项目是不适用npm的旧项目,因此无论如何它都会被严重低估。Svelte包括在内,目的是为了提供一些关于其在市场中相对位置的见解,并解释它未出现在其余图表之中的原因——尚未有足够的数据支持Svelte在图表中进行有意义的展示。比如,它还不是谷歌搜索趋势中的可用主题。

汇总职位公告

该图表统计了目前开放的职位公告,提到了某种特定的框架*。

2020及新十年的优秀JavaScript框架和话题,了解一下

2019年12月由UI框架制作的董事会工作清单

与去年相比,React增强了领先优势,而Angular和jQuery都丧失了和Vue竞争的优势。以下是一张饼状图,展示了各框架的相对就业市场份额情况:

2020及新十年的优秀JavaScript框架和话题,了解一下

顶级框架就业市场份额

JavaScript开发人员平均工资于2019年再次上涨,从原来的每年11.1万美元涨到11.4万美元(来源)。

方法:在Indeed.com网站上求职。为去除误报,笔者将搜索与关键词“软件”配对的内容,加强相关性,然后乘以1.5(大概是使用关键词“软件”的编程职位列表和不使用该关键词的列表之间的区别。)所有的搜索引擎结果页面按日期排列,并抽查相关性。得出的数字并不是100%准确,但是对于本文中使用的相对近似值来说已经足够了。

谷歌搜索趋势

2020及新十年的优秀JavaScript框架和话题,了解一下

意料之中的是,搜索兴趣*反映了就业市场份额,但存在一些有趣的差异。从图中可以清楚地看到,2017年至今,jQuery的搜索兴趣正在减弱,而Vue.js的搜索兴趣却呈现强劲的增长态势。搜索份额如下图:

2020及新十年的优秀JavaScript框架和话题,了解一下

与职位公告一样,React有很大的领先优势,吸引了前端框架36%的搜索量,紧随其后的是Angular(大约27%)和jQuery(25%)。对Vue.js的搜索兴趣要比它占有的职位市场份额大得多,但该数据在排名方面一般与职位市场数据一致。这一点看来已经被成功证实。

方法:对于所有字词来说,数据都是按照主题而非检索项收集的,目的是从无关的关键字匹配中排除误报。

未来值得关注的框架

越来越多的职位需要掌握React技能的人才,而不是Svelte或Vue这样的技能,它们虽然十分流行,但是应用却没有这么广泛(二者都获得了很高的满意度,但相比之下,行业采用率却低得多)。

学会Svelte或Vue可能很酷——但是如果目标是找工作,那么先学会React会有更高的胜算。

也就是说,在JavaScript现状调查2019中,Svelte和Vue都获得了颇高的用户满意度。过去,React的高用户满意度预示着它将比Angular更快获得收益,后者在当时占据主导地位,但满意度得分却相对较低。

2019年,React的用户满意度排名第一,达到89%。Svelte(88%)和Vue.js(87%——低于去年的91%)紧随其后。Svelte或Vue不太可能会抢走足够的React用户来提高自己的用户满意度,但是仍有大量Angular和jQuery用户可能选择Svelte或Vue,从而让Svelte和Vue在2020年实现强劲增长。

可以肯定的是,掌握React会提高2020年找到好工作并留在工作岗位的几率。

TypeScript vs JavaScript

毫无疑问,在过去几年间,TypeScript实现了快速发展。JavaScript现状调查显示,89%的TypeScript用户会再次使用TypeScript,而66%的受调查者或使用TypeScript,或对其感兴趣(略低于去年的71%)。

虽然人们的兴趣十分浓厚,使用率似乎也在快速增长,但是职位市场对TypeScript的使用经验尚未有强烈的需求。只有约7%的JavaScript职位空缺在职位描述中提及TypeScript(来源)。在人事经理的期望中,JavaScript开发人员能够轻松使用TypeScript,所以他们有可能不会在职位启事中提到TypeScript,这就导致了该数字可能偏低。

2020及新十年的优秀JavaScript框架和话题,了解一下

笔者坚信,TypeScript语言的投资回报率可能较低甚至为负。它会对生产力不利,而不是提高生产力,而且如果已经应用TDD、代码审查、设计审查这样强大的漏洞预防措施,那么TypeScript编码就不太可能大幅减少漏洞的数量。

也就是说,TypeScript有不少优点,用户不应对其心生恐惧,或者只因公司要求使用TypeScript而不是JavaScript就拒绝某份工作。TypeScript是JavaScript的超集,因此JavaScript转换为TypeScript并不像学习一种截然不同的语言那样具有挑战性。

要想在2020年的求职市场中占据优势,学会TypeScript语言并不是必须的,但是TypeScript确实很有用,甚至对于标准的JavaScript来说也是如此。

笔者每天都用TypeScript为使用微软代码编辑器的JavaScript提供智能感知服务。该智能感知甚至可通过使用JSDoc(由可解释类型注释的TypeScript理解并解释)或外部d.ts文件增强,VS代码会自动为用户使用的模块获取TypeScript定义。

注意:多年以来,笔者一直使用TernJS和Atom,享受着类似的好处,但是这两者的配合使用缺少TypeScript+VS的代码维护和社区支持。

若未尝试过微软代码编辑器,可先从此开始。顺便说一下,VS代码在JS被调查地区中占据着JavaScript集成开发环境市场的主导地位,占据57%的市场份额(其次是网络风暴,占据14%的市场份额)。

数据管理

Redux在状态管理器竞争中仍具有领先优势,但GraphQL和Apollo也正在获得客户的青睐和兴趣。预计2020年对GraphQL的使用会持续增长。

2020及新十年的优秀JavaScript框架和话题,了解一下

也就是说,即使用户使用GraphQL,仍然有强有力的证据可以证明Redux状态管理器的能力,即使大家都不用Redux,他们也会因学习Redux而受益。

GraphQL是近年来流行的查询语言。它句法简单,但由于其用于全栈,且学习该语言需要学会怎样将其连接到数据存储层,因此令人望而生畏——不过值得付出努力。

在短期内,GraphQL不会完全取代JSONREST API。但是,2019年,它发展迅速,预计2020年会持续强劲增长。

后端

Express是占主导地位的Node框架,其满意度很高,2020年也不会出现实力强大的挑战者,但是随着无服务器的兴起,笔者预计Express会在新十年间逐渐丧失主导地位。

2020及新十年的优秀JavaScript框架和话题,了解一下

Next.js是全栈式的React框架,最初以Express为基础构建,但它此后从Express转换成了无服务器和静态优化,开始疯狂的发展。

将EricElliottJS.comExpress转换为无服务器的Next.js,托管费用将减少90%,还可以加快页面加载速度。强烈推荐。笔者目前在用Next.js和Zeit托管应用程序。

2020及新十年的优秀JavaScript框架和话题,了解一下

测试

Jest和Cypress分别是很受欢迎的单元和功能测试工具,但是笔者更偏好RITEWay和TestCafe。RITEWay是单元测试的鼻祖:它是一种测试框架,始终回答每个单元测试必须回答的5个问题。

TestCafe是一种功能测试工具,像Cypress一样,它不需要用户与Selenium斗争,但有更好的跨浏览器支持和出色的测试记录器/IDE。强烈推荐质量评价团队使用TestCafe。

功能工具

Lodash、Ramda、Immer、Redux和RxJS是笔者经常使用的功能工具。

2020及新十年的优秀JavaScript框架和话题,了解一下

2019年,Ramda实现了长足发展,并提供了Lodash没有的一些工具,包括镜头和传感器。通过管道运算符,RxJS提供传感器样式功能。

Immer无需改变JavaScript对象,让操作变得容易。Redux是一种状态管理工具。

2020年的科技格局

接下来的十年中,几种新兴技术将对人类生活产生巨大影响。以下是各方面技术的较新概况:

人工智能

人工智能可能是有史以来很具变革性的技术。各领域的学者和坚持己见的亿万富翁都将其描述为奇迹般的乌托邦或是人类的终结。

众所周知,人工智能或许真的是人类的终结,但也可能是人类与机器之间美好合作的开始。人类才刚刚开始模糊地了解人工智能未来的可能性。某些可能性令人恐惧(比如深度伪造),而某些可能性非常有用(比如Adobe Premiere用于视频编辑的全新自动重新构图)。到目前为止,事实是人工智能既令人恐惧又非常有用。人工智能将继续让一些可怕的事情发生,但通过人工智能改善人类生活的潜力又是巨大的。潘多拉的盒子已经打开,无法再关上,因此笔者希望人类能妥善运用人工智能解决重大问题并改善生活。

2019年,人工智能领域取得了许多重大突破。近年来,研究团队在多种电子游戏中就超人性能展开竞争,但某些级别的游戏对于人工智能来说仍充满挑战,包括《星际争霸Ⅱ》这样的长期战略性游戏。DeepMind的AlphaStar程序使用与人类玩家相同的资源,在官方的Battle.net服务器上进行游戏,已达到大师级水平。《星际争霸》是一款复杂的游戏,玩家需要具备长期的战略性思维,人们曾经认为人工智能尚不具备这种思维。具备战略性思维是人工智能通向通用人工智能道路上的一个重要里程碑。

如果这些游戏看起来像是对资源的愚蠢使用,那么请考虑一下DeepMind这样的项目,该项目在语音合成领域已取得重大进展,可为人工智能代理和私人助理提供更加自然的声音,另外,它还可让失声人士重新发声,这一点更加重要。

人工智能还可用于诊断癌症、预测蛋白质折叠(该过程可用于了解疾病、研发新药品)、恢复残疾人士对肢体的控制、生成逼真的图像等等。(来源)

自动驾驶汽车在变革性人工智能技术方面理应自成一派。该体系的主要参与公司包括Cruise、Uber、Waymo、Nuro、Aurora、Ford等等。该技术发展仍处于初级阶段,过分乐观已给该行业带来了大问题,但笔者深信不疑,超人的自动驾驶能力一定会在21世纪20年代出现。笔者曾在2015年对自动驾驶做过如下预测:

“到了2045年,开车的人看起来会像拉着越野车的马。”

5年以后,笔者认为自己低估了自动驾驶汽车上市的速度。2018年,Waymo的自动驾驶汽车行驶了超过一百万英里,美国有24个城市的公路上出现了自动驾驶汽车。现在,笔者预计到2025年,多家制造商的多种车型将实现5级全自主性。请密切关注特斯拉、通用、福特和宝马汽车公司。

过去的十年间,有关人工智能的研究论文出版量增长了10倍,目前人工智能正在为主流用户提供实际且有用的工具,预计该趋势在新十年间会持续下去。

人工智能做到了几年前大多数人认为不可能做到的事,这是有目共睹的。期待人工智能在21世纪20年代创造更大的奇迹。

区块链和加密货币

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

DeFi的迅猛发展让用户友好、无许可以及无银行借贷成为可能。目前,DeFi拥有价值6.5亿美元的合同(包括4.5亿美元的无银行贷款),该技术于2019年投入使用。随着越来越多的人投资加密货币,笔者预计未来由加密技术支持的DeFi贷款会越来越多。

人们可以在不牺牲加密货币投资机会成本的前提下获得流动资产,或使用DeFi贷款通过杠杆效应(提高投资风险或回报)投资加密货币。

加密货币和区块链技术正在突破主流。比特币和以太坊的每日活跃地址数量于2018年1月达到峰值,随后一年因市场不景气,人们的兴趣开始减弱(加密货币价格每增长10倍就出现大幅回落,下一周期的峰值比前一周期的峰值高出10倍)。

2020及新十年的优秀JavaScript框架和话题,了解一下

比特币和以太坊区块链的每日活跃地址情况(来源)

  • Square的Cash App安卓下载量超过一千万次——通过拥有优秀用户体验的应用软件,用户就可以购买、销售、发送和接收比特币。
  • Coinbase的安卓下载量超过一千万次。
  • Brave推出了内置的以太坊钱包,从十月到十一月底,该浏览器的月用户数量从870万上涨到了1040万。
  • 通过Sliver.tv和DLive,两千万电子游戏迷正在使用Theta网络进行分散式流媒体播放。

2019年,笔者最满意的进步是Fortmatic的引入。无论是否构建加密应用软件,都可以用Fortmatic代替用户身份验证,提高安全性,摆脱供应商锁定,添加端到端加密、签署交易等功能。

若要在2020年构建新应用程序,那么请考虑用Fortmatic代替滚动用户名/密码身份验证(2020年没人会这样做),或者将身份验证委托给谷歌、脸书等等。

笔者写过一篇文章,讨论了怎样利用加密技术改善应用程序身份验证并提高安全性。期待主流应用程序能在2020年采用Fortmatic这样的技术。

以太坊在2019年的智能合约平台竞争中轻松取胜。预计2020年它会继续占据主导地位。

增强现实

笔者从小就梦想着增强现实能实现,自2015年以来,每年都在写关于它的承诺。扩展现实未来会取代手机。这只是时间问题。需要多长时间仍是个未知数,但目前看来,转变可能会在未来的十年间出现。甚至可能在未来的5年内出现。

虚拟现实和增强现实之间的界限已经模糊,因此业界现在将整个领域称为扩展现实。自问世以来,ARKit和ARCore(苹果和谷歌的增强现实软件开发工具包)已取得了很大发展。2017年至2019年5月,月活跃用户数量从4700万上涨到了1.5亿。

WebAR于2019年站稳脚跟,2020年可能会继续发展。若对此感兴趣,请查看AR.js、React 360或Viro React。

硬件方面取得了众多进展。2016年,开发者版本首次问世时,Hololens1售价约为5千美元。之后发生了什么呢?

Hololens2售价仍为3500美元,还未做好问世准备。剪辑、SLAM(抖动和偏移)、视野等方面仍存在问题。人们并不希望这些问题一直存在。但是每月99美元的定价让获得开发者工具包成为可能——即使需要等上一会儿。

无人机

美国已购买了约两百万架无人机,这些无人机已经改变了建筑、地理调查、绘图、影片、航拍、农业、环境科学和娱乐产业。2020年,商用无人机很有可能在美国实现交付。

FPV无人机比赛是笔者最喜欢的观赏性项目,无人机竞赛联盟现场直播比赛也是笔者的最爱。比赛还提供了精心设计的模拟器,以便观众了解无人机的样子。

所有新型无人机活动都需要许多软件,包括图像处理、无人机地图绘制软件、交付飞行计划、遥测记录与处理、分析、行业应用程序集成等等。

无人机软件也与人工智能有许多重叠之处——自动飞行的无人机需要图像处理、防碰撞等等。

结语

21世纪的首个十年涌现了许多变革性技术,在人类看来,许多技术理所当然,但它们确实产生了重大影响:

  • 照片墙 (Instagram)
  • 声田(Spotify)
  • 优步(Uber)
  • 虚拟助手
  • 无线耳塞
  • 主流虚拟现实
  • 增强现实(用于热门游戏《口袋妖怪GO》)
  • 价格实惠的特斯拉
  • 共享经济(汽车、小轮摩托车、自行车)
  • 主流平板电脑
  • 主流生物识别技术(触摸识别、人脸识别)
  • 众筹

相关推荐