2019 年最值得学习的 JavaScript 框架与主题
又到了一年的这个时候:JavaScript 年度技术生态回顾。我们的目标是找出最有职业投资回报率的主题和技术。在实际生产中大家都在用什么呢?现在的趋势是什么样的呢?我们不会试图去找出最佳,但是会使用数据驱动的方法,来帮助大家着重关注那些能帮助你在求职面试中回答“你知道 ____ 吗?”的主题与技术。
我们不会去分析哪些是最快的,哪个有最好的代码质量。我们会假设它们都是速度恶魔(speed demons),并且它们都很棒,足以完成你的工作。而主要的关注点在于:什么是被大规模使用的?
组件框架
我们要关注的大问题是当前组件框架的状况。我们会主要关注三巨头:React、Angular 和 Vue.js,主要因为在工作中,它们的使用远远超过了其他的框架。
去年,我注意到了 Vue.js 的(使用量)增长并提到了它可能在 2018 年赶上 Angular。事实上它没有发生,但 Vue.js 的增长仍然非常快。我也预测了将 React 用户转化为其他框架用户将会更加困难,因为 React 比 Angular 有更高的用户满意度 — React 用户并不会有充分的理由去切换框架。与我对 2018年的预期一致。React 在 2018 年牢牢占据了头把交椅。
但有趣的是,三个框架每年仍持续着指数级的增长。
预测:React 在 2019 将继续领先
在我们关注 React 的第三年,它 相比 Angular 仍有更高的满意度,而且对于挑战者,它不会放弃任何优势。目前看来我认为在 2019 没有能够挑战它地位的框架。除非有超级强大的东西出现并且扰乱了 React(社区),React 将会在 2019 年底继续领先。
说到 React,它一直在变得更好。最新的 React hooks API 取代了我从 0.14 版本开始就几乎不能忍受的 class API。(class API 仍然可以继续使用,但是 hooks API 真的 更好)。React 的 API 改进如更好的代码分割和并发渲染(详情)将使它在 2019 年更难被打败。不用怀疑,React 现在是目前对开发者最友好的前端框架。我没有理由不推荐它。
数据来源
我们会关注一些关键点来评估在(这些框架)实际生产中的兴趣和使用情况:
Google 搜索的趋势。这并不是我最喜欢的指标,但是它是个不错的宏观视角。
包下载量。这里的目的是获取使用框架的真实用户(数据)。
Indeed.com 上的招聘广告。用和去年相同的方法论来保持结果的一致性。
Google 搜索趋势
框架搜索趋势:2014 年 1 月 — 2018 年 12 月
在搜索趋势上,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 仍然会是一个巨大的问题,因为雇员们会跳槽到别处有更高工资的职位。