编者按:以前有个关于编程语言的段子是这么说的:写C的看不起写C++,写 C++ 的看不写 java 的,写 java 的看不起写 JS 的,写 JS 看不起美工,周末大家都在加班,美工带着女朋友旅游去了。这么看来 JavaScript 已经落到编程语言鄙视链的最底端去了。但是这门长期位于十大编程语言行列的语言早已经发展到几乎无所不能的地步了,不信可以看看 Raphaël Benitte、Sacha Greif 与 Michael Rambeau 所做的2017 年 JavaScript 现状报告。
我最近公布了我们 2017 年版的 JavaScript 年度现状调查报告的结果,这是 23000 位开发者的共同反馈。
从流行趋势到工资明细,结果揭示了很多事情。如果你还没有这么做的话最好自己进来看看。但是在所有这些数据当中,有 10 件事情是最重要的。
即便你还没有看过这些结果,你可能也想看看我们刚刚增加的新的功能和观点部分。
洞察#1:React 站稳脚跟
今年的版本确认了去年的趋势:React 目前是占据主导地位的前端库。
React 拥有目前为止最快乐的用户(深紫色条块)
对 React 的早期指责(通常集中在 React 混合 HTML 与 JS 的方式上)现在似乎已成遥远的记忆,Facebook 还搁置了开发者今年最后一个主要的烦恼——取消了他们版权协议里面的专利条款。
随着使用数量和开发者满意度达到了有史以来的新高,完全可以说 React 已经站在了山顶上,至少目前是这样。
洞察#2:Angular 正朝着新的角色转变
这并不意味着你就可以将 Angular 判负了。是,Angular 的势头没有像 React 那么强劲,但是它还有一些非常强的因素支撑。
首先,Angular 背后有 Google 力量的支持。不管你怎么说,那都是业界最好的工程师之一,他们正在投入全职的时间来改进这个框架。
需要指出的重要一点还包括 Angular 仍然拥有庞大的用户群。对于这股最新的热潮,银行、政府已经其他大型公司没法像你们这些普通的自由职业者接受得那么快,出于这个原因他们往往有庞大的遗留 Angular 代码库需要维护。
“新”Angular(2+)于“老”Angular(AngularJS)对比:接受度更低,但开发者满意度更高
不过最后一点也许是最关键的:Angular 不再尝试跟 React 硬碰硬了,而是相反把自己的焦点转移到企业市场。只需要看看 Angular 对 TypeScript 的采用就知道了:尽管这也许会阻止了一些开发者,但这样决定也带来了企业应用所需的那种可靠性和安全性。
洞察#3:你再也不能忽视 Vue.js 了
Vue 去年好像突然之间就冒了出来,并且在非常短的时间内为自己赢得了 React 最大威胁者的称号。它也许没有 Angular 的用户规模或者 Ember 的长寿,但却有着足以击败这两个的东西:势头。
Vue & React:这两个拥有最高的开发者满意度(浅紫色 vs 深紫色)
尽管 Vue 击败 React 似乎仍然不大可能,但毋庸置疑的是,在提供全框架式体验方面,Vue 的确拥有更好的故事,而这要得益于由同一支核心团队维护的官方路由和状态管理库。
洞察#4:了解一些库的知识会帮你赚更多(但是原因不像你想的那样)
通过收集和交叉引用工资数据,我们得以找出哪一项技术是最赚钱的。
不同的 JavaScript 技术,按照薪水从低(左)到高(右)排列
如结果表明那样,往往是像 Polymer 或者 Reason 这样的小众技术跟最高薪水相关。
JavaScript 前端库,按照薪水从低(左)到高(右)排列
尽管 Polymer 获得的薪水更高是可能的,但更资深的开发者(这些人往往赚得更多)往往尝试更多不同的库也是有可能的,而经验不足的程序员更愿意把经理集中在一或两种主流技术。
因此按照这份排行榜去学东西可能(只是可能)并不是赚得更多的关键。
洞察#5:2018 年将成为 GraphQL 之年
如果你跟绝大部分的调查受访者一样的话,你应该已经听说过 GraphQL 并且对它饶有兴趣了,但其实你还没有尝试过。
REST 希望自己也有个这么酷的 logo
如结果表明那样,这是一个非常常见的情况。在这次调查提到的所有技术里面,GraphQL 是引起兴趣最大的一个——尽管目前它的用户数量还很少。
大大的黄色条代表的是 14000 位对 GraphQL 感到好奇的开发者
说到当前用户,值得指出的是透明总体上都对 GraphQL 感到高度满意。有了这里的高度兴趣和高度满意的结合,如果 2018 年成为 GraphQL 超越鸿沟进入成为主流技术之年的话不要感到吃惊。
洞察#6:JavaScript != 前端
我们知道 JavaScript 不仅仅能用在浏览器里面已经不是一天两天的事情了。毕竟,Node 就是一种非常流行的后端选择,已经流行了好几年了。
但 2017 年 JavaScript 又开始了进一步的扩张:像 AWS Lambda 这样的平台让你可以在没有后端的情况下编写后端代码,而物联网设备的日益流行意味着不久之后,你的烤面包机也很有可能最终跑的是 JavaScript。
这台烤面包机利用运行 Slack 的桌面应用产生的热量来烤面包
如果这听起来很荒谬,记住今年最热门的文本编辑器,VS Code 本身就是用 JavaScript 编写并且作为 Electron 应用运行的。
JavaScript 从作为展示横幅广告的工具发展成文本编辑器的编写工具,这一切都是在几年之内发生的的事。相信我,JavaScript 烤面包机的出现也许比你想象的要早。
洞察#7:微软正在反击
说到 VS Code,这绝对是今年的一大惊喜。在 Sublime Text 和 Atom 正在为文本编辑器的王座争得不可开交时,新进入者 VS Code 破窗而入,偷走了它们额午餐。
过去 Sublime Text 往往有速度上的优势,但却被不直观的 UI 抵消掉了,而 Atom 有着很好的 UI 但是往往给人很慢的感觉。
VS Code 编辑器
结果表明 VS Code 也许已经找到了这两者的适当平衡。尽管还是在类似 Atom 这样的 Electron 基础上开发出来的,但微软的工程师在改进性能方面做了很好的工作。就像 Sublime 一样,它支持范围很广的各种插件和定制化,尽管一个更为用户友好的软件包“刚好能用”。
再加上 TypeScript 的崛起,看起来微软终于把自己玩的 web 工具凑到一起了,并且证明了自己可以做出开发者用的东西了,而且开发者用是因为自己想用而不仅仅是因为他们只能用这个。
洞察#8:世界各地的 JavaScript 都不一样
当我们讨论 JavaScript 时,我们往往把它当作一个统一的生态体系来讨论。尽管重要趋势不同地区都是一致的,但有趣的是不同的国家往往会给 JavaScript 添加一些自己的定西进去。
比方说,你知道 Vue 在中国极其流行吗?这是说得过去的,因为 Vue 的开发者 Evan You 就讲中文,而且 Vue 已经为多家中国的主流技术公司如阿里和百度所采用。
印度另一方面似乎特别钟爱 Angular。这也许至少部分是由于印度活跃的外包业所推动,而外包往往盯住那种 Angular 所应用的大型企业项目。
洞察#9:类型化 JavaScript 正在崛起
TypeScript、GraphQL、Elm、Reason,这些之间有何共同点?首先,它们都是先进技术,正在迅速发展。其次,它们都依赖于类型。
名字前正好有个“Type”。
尽管 JavaScript 开发者很久以来一直在享受着不用理会编译器对你的吼叫随心所欲写代码的自由,但是这种自由是一把双刃剑:这也意味着不那么可靠问题更多的开发者体验。
但到了 2017 年,情况终于开始改变。TypeScript 获得更广泛的认同并不仅仅是个巧合,开发者也开始朝着 VSCode 之类的 IDE 式文本编辑器迁移,从而更好地利用类型提供的额外功能。
洞察#10:百变 JavaScript
再次地,这次的调查表明了 JavaScript 的生态体系已经变得如何的丰富。
似乎经过多年时而批斗时而无视 JavaScript 之后,开发者社区终于突然想到了第三个选项:改进它。
这也许是为什么大多数开发者同意尽管有缺陷,但这门语言总体而言正在朝着正确的方向前进的原因:
原文链接:https://medium.freecodecamp.org/i-just-asked-23-000-developers-what-they-think-of-javascript-heres-what-i-learned-9a06b61998fa
编译组出品。编辑:郝鹏程。