2019 年值得学习的顶级 JavaScript 框架与主题

图:Jon Glittenberg Happy New Year 2019 (CC BY 2.0)javascript

又到了一年的这个时候:JavaScript 年度技术生态回顾。咱们的目标是找出最有职业投资回报率的主题和技术。在实际生产中你们都在用什么呢?如今的趋势是什么样的呢?咱们不会试图去找出最佳,可是会使用数据驱动的方法,来帮助你们着重关注那些能帮助你在求职面试中回答“你知道 __ 吗?”的主题与技术。html

咱们不会去分析哪些是最快的,哪一个有最好的代码质量。咱们会假设它们都是速度恶魔(speed demons),而且它们都很棒,足以完成你的工做。而主要的关注点在于:什么是被大规模使用的?前端

组件框架

咱们要关注的大问题是当前组件框架的情况。咱们会主要关注三巨头:React、Angular 和 Vue.js,主要由于在工做中,它们的使用远远超过了其余的框架。java

去年,我注意到了 Vue.js 的(使用量)增加并提到了它可能在 2018 年遇上 Angular。事实上它没有发生,但 Vue.js 的增加仍然很是快。我也预测了将 React 用户转化为其余框架用户将会更加困难,由于 React 比 Angular 有更高的用户满意度 — React 用户并不会有充分的理由去切换框架。与我对 2018年的预期一致。React 在 2018 年紧紧占据了头把交椅。react

但有趣的是,三个框架每一年仍持续着指数级的增加。git

预测:React 在 2019 将继续领先

在咱们关注 React 的第三年,它 相比 Angular 仍有更高的满意度,并且对于挑战者,它不会放弃任何优点。目前看来我认为在 2019 没有可以挑战它地位的框架。除非有超级强大的东西出现而且扰乱了 React(社区),React 将会在 2019 年末继续领先。github

说到 React,它一直在变得更好。最新的 React hooks API 取代了我从 0.14 版本开始就几乎不能忍受的 class API。(class API 仍然能够继续使用,可是 hooks API 真的 更好)。React 的 API 改进如更好的代码分割和并发渲染(详情)将使它在 2019 年更难被战胜。不用怀疑,React 如今是目前对开发者最友好的前端框架。我没有理由不推荐它。面试

数据来源

咱们会关注一些关键点来评估在(这些框架)实际生产中的兴趣和使用状况:算法

  1. Google 搜索的趋势。这并非我最喜欢的指标,可是它是个不错的宏观视角。
  2. 包下载量。这里的目的是获取使用框架的真实用户(数据)。
  3. Indeed.com 上的招聘广告。用和去年相同的方法论来保持结果的一致性。

Google 搜索趋势

框架搜索趋势:2014 年 1 月 — 2018 年 12 月typescript

在搜索趋势上,React 在 2018 年 1 月超越了 Angular,而且在这一全年剩余的时间里保持了领先的位置。Vue.js 在图里保持了一个可见的位置,可是仍然是搜索趋势中的一个小因子。对比:去年的趋势图:

框架搜索趋势:2014 年 1 月 — 2017 年 12 月

包下载量

包下载量是一个衡量实际使用状况的公平指标,由于开发者在工做是会频繁地下载那些他们须要的包。

睿智的读者会发现有时候他们从他们公司内部源的下载包,对于这种状况,个人回答是:“那确实会发生 — 对于这三个框架来讲。”它们均可以在企业中立足,而我对这个大规模的数据的平均能力有信心。

React 每个月下载量:2014–2018

Angular 每个月下载量:2014–2018

Vue 每个月下载量:2014–2018

让咱们看一下下载份额的快速可视化比较:

“但你忘记了 Angular 1.0!它在企业中仍然很重要。”

不,我没有。Angular 1.0 仍然在企业中被普遍使用,这和 Windows XP 在企业中仍被普遍使用是类似的。这个数量绝对足够引发注意,可是新版本的 Angular 早已使 Angular 1.0 相形见绌,Angular 1.0 的重要性已经不如其余的框架了。

为何?由于整个软件行业和 全部部门(包括企业) 的 JavaScript 的使用增加得很快,新的框架会使旧的框架变得很眇小,即便它是 永不升级 的遗产应用。

证据就是,看看这些下载量统计图。2018 年单年的下载量就比以前几年的 总和 都要多。

招聘广告投放数

Indeed.com 集合了许多招聘部门的招聘广告。每一年 咱们都会统计提到每一个框架的招聘广告¹ 来给你们提供关于企业在招什么样的人的更好的观点。这是今年的形势:

2018 年 12 月有关每一个框架的招聘广告统计

  • React:24,640
  • Angular:19,032
  • jQuery:14,272
  • Vue:2,816
  • Ember(不在图中):2,397

再说一次,今年投放的职位总数比去年要多。我把 Ember 剔除了,由于它显然没有像其余框架同样按比例增加。我不推荐为了将来找工做而去学它。jQuery 和 Ember 相关的岗位并无多大的变化,但其余的岗位都有很大的增加。

使人感激的是,加入软件工程领域的新人在 2018 年也增加了不少,但这也意味着咱们也须要持续聘用并培训初级开发者(意味着咱们须要 合格的高级开发者来指导他们),不然咱们将没法跟上爆炸性的就业增加。做为对比,这里有去年的图表:

平均薪资在 2018 年也攀升了,从每一年 $110k 到每一年 $111k。有传闻说,薪资列表落后于新员工的预期,而且若是招聘经理不去适应开发者的市场,不给出更多的加薪,他们会更难雇佣和留住开发者。留人和物色人才在 2018 仍然会是一个巨大的问题,由于雇员们会跳槽到别处有更高工资的职位。

  1. 方法论:职位搜索是在 Indeed.com 上进行的。为了去除误报,我把它们和搜索词 “software” 组合在一块儿来增强相关度,而后乘以 1.5(粗略地说,就是使用关键词 “software” 和不用这个关键词搜索到的编程岗位列表的区别)。全部 SERPS 都按照日期排序并检查相关性。结果数据并非 100% 准确的,但它们对于在本文中使用的相对近似值足够好了。

JavaScript 基础

我每一年都在说:关注基础。今年你会获得更多的帮助。全部的软件开发都是这样组合的过程:把复杂的问题拆解成多个小问题,并将那些小问题组合起来,组成你的应用。

但当我问 JavaScript 的面试者那些软件工程最基本的问题,如“什么是函数组合”和“什么是对象组合”,他们几乎老是回答不出这些问题,尽管他们天天都在作这些事。

我一直认为这是一个须要解决的严重问题,因此我写了这个主题:“Composing Software”

若是你在 2019 年没有要学的了,那么就去学组合式编程吧。

On TypeScript

TypeScript 在 2018 年持续增加,而且它会被持续高估,由于 类型安全并非什么大问题(并无很好地减小产品的 bug 密度),而且在 JavaScript 中,类型推断 不须要 TypeScript 的帮助也能够作得很好。你甚至能够在使用 Visual Studio Code 时,经过 TypeScript 引擎在普通的 JavaScript 中进行类型推断。或者为你喜好的编辑器安装 Tern.js 插件。

对于大部分高阶函数而言,TypeScript 会继续一败涂地。大概是由于我不知道怎样正确使用它(在与它平常相伴多年后 — 在这种状况下,他们真的须要提升可用性或者文档,或者二者都要),但我仍然不知道在 TypeScript 中如何定义 map 操做的类型,而它彷佛在 transducer 中很清晰明了。捕获错误常常失败,而且常常报明明不是错误的错误。

可能对于支持我所认为的软件,它仅仅是不够灵活或者功能不够完善。但我仍然对有一天它会加入咱们须要的功能抱有但愿,由于它的缺点在我尝试在真实项目中使用它时令我失望,但我仍然喜欢它在有用的时候可以合适地(而且可选择地)定义类型的潜力。

我目前的评价:很是酷的选择,有限的使用场景,但被高估了,笨拙,而且在大型生产应用中的投资回报率很低。这很是讽刺,由于 TypeScript 自称是 “JavaScript 的超集”。可能他们要加入一个词:“笨拙的 JavaScript 超集”。

在 JavaScript 里咱们须要的是一个比 Haskell 更强大可是比 Java 更轻量的类型系统。(PS:这句翻译不肯定,麻烦校对看下)

其余值得学习的 JavaScript 技术

加密行业的崛起

去年我预测区块链和金融会计将会成为 2018 年值得观察的重要技术。这个预测是正确的。2017 - 2018 的一个主要的主题是加密行业的崛起和构建价值网络的基础。记住这个阶段。你很快将会屡次听到它。

若是你和我同样自从 P2P 爆炸性增加后关注那些去中心化应用,这已经持续好久了。因为比特币点燃了导火索,并展现了去中心化应用经过加密货币自我维持的方式,这种爆炸性增加是不可阻挡的了。

比特币在几年内增加了若干个量级。你可能据说过 2018 年是“加密寒冬”,而且有“加密行业处于挣扎中”的想法。这彻底是无稽之谈。实际的状况是,在 2017 年末,比特币以史诗般的指数增加曲线增加到以前的 10 倍,但市场有所回落,这种回落会发生在每次比特币增加到以前的 10 倍。

比特币 10 倍拐点

在这个图表中,每一个箭头始于 10 倍点,指向价格修正后的最低点。

加密货币的 ICO(首次代币发行)的资金募集在 2018 年初达到顶峰。2017-2018 的资金泡沫带来了生态系统中大量新的职位空缺,在 2018 年 1 月达到了顶峰,有超过 10k 的职位空缺。这种趋势已经回落到大概 2400 个职位空缺了(根究 Indeed.com 的数据),可是咱们如今仍处于(这个行业的)早期阶段,这场派对才刚开始。

关于迅猛增加的加密行业有不少能够讨论的地方,可是这能够另写一篇博文了。若是你感兴趣的话,能够阅读:“Blockchain Platforms and Tech to Watch in 2019”

其余值得观察的技术

和去年预测的同样,这些技术在 2018 持续爆炸性增加:

人工智能/机器学习 正如火如荼,在 2018 年底有 30k 的职位空缺。deep fakes,使人难以置信的生成艺术,来自 Adobe 这样的公司的研究团队研发的使人惊讶的视频编辑能力 — 历来没有更激动人心的去探索人工智能时刻。

渐进式 Web 应用(PWA) 迅速成为了构建现代应用的方式 — 增长的新特性与有 Google、Apple、Microsoft、Amazon 等公司的支持。令我难以置信的是,我将手机上的 PWA 视为理所固然。例如,我在个人手机上再也不须要安装 Twitter 的原生应用。我仅仅使用 Twitter 的 PWA 来替代它。

AR(加强现实)、VR(虚拟现实)、MR(混合现实)像战神金刚同样合体成 XR(eXtended Realty)。将来的全时 XR 沉浸即将到来。我预测在 5-10 年内会出现大规模的消费级 XR 眼镜产品。隐形眼镜会在 20 年内推出。这个行业在 2018 年有数以千计的新职位空缺,而且在 2019 仍会持续爆炸性增加。

机器人、无人机和自动驾驶汽车:在 2018 年底,自动飞行的无人机已经被研发出来了,自动机器人仍在持续优化中,而且有更多自动驾驶汽车上路了。2019 年,以及将来的 20 年,这些技术会持续增加并重塑咱们周围的世界。

量子计算 和预期的同样在 2018 发展得极好,而且和预期的同样,它仍然没有成为主流。事实上,个人预测“它会在 2019 或者在真正中断以前成为主流”可能太乐观了。

加密领域的研究者已经集中更多的注意力在量子安全加密算法上(量子计算会打破今天的计算成本昂贵的假设,而加密正是依赖于这些成本昂贵的计算),但尽管在 2018 年不断涌现出有趣的研究进展,最近有一篇报道 换了个角度看待这个问题

“在 2000 到 2017 年间,量子计算已经 11 次上了 Gartner 的 hype list,每次都在 hype cycle 的最先阶段就被列出,而且每次都说已经距离咱们有十年之遥。”

这让我想起了早期人工智能的努力,它在 1950 年代开始升温,在 1980 和 1990 年代有了有限的可是有趣的成果,可是在 2010 年左右的成果才开始变得使人兴奋。

咱们正在构建将来的名人数字藏品: cryptobling

Eric Elliott“编写 JavaScript 应用”(O’Reilly)以及“跟着 Eric Elliott 学 Javascript” 两书的做者。他为许多公司和组织做过贡献,例如 Adobe SystemsZumba FitnessThe Wall Street JournalESPNBBC 等,也是不少机构的顶级艺术家,包括但不限于 UsherFrank Ocean 以及 Metallica

大多数时间,他都在 San Francisco Bay Area,同这世上最美丽的女子在一块儿。

感谢 JS_Cheerleader

相关文章
相关标签/搜索