热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Angular垮台、ES6最受欢迎,20,000名程序员告诉你谁是JS王者!

任何能够用JavaScript实现的应用,最终都必将用JavaScript实现。无论是编程语言还是工具,随着时间的推移,都会不断的更新及变

640?wx_fmt=gif

任何能够用 Javascript 实现的应用,最终都必将用 Javascript 实现

640?wx_fmt=jpeg

无论是编程语言还是工具,随着时间的推移,都会不断的更新及变化,就当今使用最为广泛的 Web 开发语言 Javascript 来看,新的库、新的框架、新的衍生语言层出不穷,这一切虽是好事但也让身处其中的开发者感觉头大,因为更新得太快极容易让人找不着北。

近日,stateofjs.com 网站正式发布了《2018 年 Javascript 年度调查报告》,该报告调查了超过 20,000 名 Javascript 开发者,解读他们日常最为常用的工具以及框架,并探究其中让他们最为满意以及期望的技术,以此希望帮助技术之路上的同行者们在庞大的 Javascript 生态系统中更能实现自己的目标。 

注:和去年的 Javascript 调查相比,今年的调查报告中不包含 CSS 部分。


640?wx_fmt=png

Javascript 调查报告数据:153 个国家、20000 名程序员


今年,该报告数据囊括了全球 153 个不同国家的 20000 多名开发者,其中美国受访者占比最高,为 24%,其次是德国和澳大利亚,受访者人数均超过 5%,而中国受访者占比 0.37%。

640?wx_fmt=png

在中国的受访者中,他们的平均年薪为 37300 美元。

640?wx_fmt=png


640?wx_fmt=png

Javascript 的扩展语言:ES6 独占鳌头


随着 Javascript 的逐渐成熟,开发者跳出 Javascript 所画的圈,开始创建各种衍生的编程语言和语法,其中典型的就有 ES6、TypeScript、Flow、Reason、Elm、ClojureScript 等等。

640?wx_fmt=png

ES6

ES6(ECMAScript 6)是 Javascript 语言的下一代标准,早已在 2015 年 6 月正式发布。要问两者之间的关系,可以用 ECMAScript 是 Javascript 语言的国际标准,Javascript 是 ECMAScript 的实现这句话来形容。

在本次调查者报告中,ES6 颇受开发者的喜爱,曾经使用过表示还想用的程序员占比高达 86.3%。而这主要得益于 ES6 优雅的编程风格和模式,其次的原因是强大的功能和优秀的学习文档。

640?wx_fmt=png

TypeScript

接下来,说到由微软开发的开源编程语言 TypeScript,它是 Javascript 的一个超集,凭借着强大的功能、优雅的编程风格和模式以及完善的开发者工具受到超过 40% 的开发者欢迎,在一些国家,该占比甚至超过了 50%。

640?wx_fmt=png

Flow

使用排名第三的 Flow,是一个用于 Javascript 的静态类型检查器,最早于 2014 年的 Scale 大会上由 Facebook 推出。它的目标是不需要开发人员去频繁的修改实际代码,就能找到 Javascript 代码中的类型错误,从而大大节省这方面时间与精力的消耗。在受访者中,喜欢使用 Flow 的最主要原因也是因为它强大的功能,可以减少代码出错,其次是 Flow 简单易学。

640?wx_fmt=png

Reason

对于 Facebook 推出的另一款语言 Reason,他的设计者和当前较为流行的跨平台开发工具 React Native 的作者是同一个人,Jordan Walker。不过在国内,似乎很多开发者并不看好这门语言。根据调查显示,大部分开发者不喜欢的原因有笨拙的编程风格、语言臃肿且复杂而且难于上手。

640?wx_fmt=png

整体而言,受欢迎的 ES6、TypeScript 获得高薪的机会也更大。

640?wx_fmt=png

总结

过去一段时间里,CoffeeScript 是 Javascript 扩展方向的唯一支持者,但今天它显然已经被 ES6 及其后续版本、TypeScript、Flow、甚至是具有非常不同语法的语言(如 Elm 和 Reason)所取代。

而这些不同语言的到来可以被认为是整个 Javascript 的未来。因为像 Web Assembly 这样的项目出现,直接使用 Javascript 编写代码就会变得很怪,毕竟开发者会使用像 Rust 那样的语言。


640?wx_fmt=png

端框架:Angular 难超越 React、Vue.js


对于前端的主流框架,可谓是铁打的 React、Vue.js、Angular。

640?wx_fmt=png

不过和 2009 年诞生的 Angular 以及 2013 年 5 月开源的 React 相比,后出现的 Vue 显得没有那么出名。根据数据调查报告显示,两年前,27% 的受访者甚至从未听说过 Vue。不过如今,这一比例已经降至 1.3%。虽然 React 仍然拥有更大的市场份额,但 Vue 的迅速崛起也没有停止的迹象。实际上,今年 6 月在 GitHub 平台上,Vue 一举超过了 React。

640?wx_fmt=png

除此之外,Google 的 Angular 似乎也在走下坡路,甚至就在几天前,还有开发者吐槽了 Angular 带来的种种坑。虽然在本次调查中,Angular 拥有庞大的用户群且在使用率上位居第三,占比 41%,不过也很难看到它重登前端的冠军宝座。至于其中的原因,不少受访者表示 Angular 过于臃肿和复杂,且不易上手。

640?wx_fmt=png

从薪资方面来看,最受欢迎的 React 拿到高薪的机会更多,其次是 Vue、Angular

640?wx_fmt=png


640?wx_fmt=png

数据层:Redux 使用最为广泛


在过去美好的时光,一切都很简单。只要把数据存储在数据库中,服务器从中获取数据,再将其调用到代码中,接而将整个数据发送到客户端。

如今在 Javascript 生态的数据层,一切都变得复杂起来,当前应用程序需要知道如何自己获取数据以呈现到代码和组建中。于是,这就产生了一系列数据提取和数据管理工具。

毫无疑问,Redux 是其中使用最广泛的工具,有 82% 的满意率证明了它的成熟程度。

不过,这个占比在未来极有可能会受到 GraphQL 的冲击。因为过去两年内,GraphQL 的用户量从 5% 一路飙升到 20%,同时这部分的用户还有另一个选择是 Apollo。除此之外,最新版本的 Apollo 也可替代 Redux ,如果明年的结果发生巨大的变化,那也不足为奇。

640?wx_fmt=png


640?wx_fmt=png

后端框架:稳居第一的 Express


服务器端的 Javascript 应用与以往并没有太大的不同。虽然每年依旧会有无数框架出现,但很少有人能够获得重大的突破并挑战 Express 的地位。即使是被称之为 Express 的继任者 Koa 也是如此,它的满意度虽排第三,但只有 7.6%(并且它的使用数量也在大大降低)。

这个领域还有一个有趣的参与者是 Next.js,最近引起了很多人的兴趣。虽然它与功能齐全的 Node 后端不太可比,但它专注于解决 React 应用程序的服务器端呈现商务问题,使其成为一个非常有用的工具。

640?wx_fmt=png


640?wx_fmt=png

测试


在 Javascript 的生态系统中,其他部分的技术已经逐渐开始融合,但是测试部分仍然非常分散。许多不同的、互补的工具从中作用。即便如此,开发者对他们的整体测试解决方案还是感到满意,最低的满意度为 68%。

根据数据报告显示,Mocha 仍然是最常用的单位测试框架,拥有超过 1 万用户。且它已经存在很长一段时间,拥有最大的生态系统,大多数 Node.js 开发者应该对它都比较熟悉。

Facebook 推出的测试框架 Jest 在使用方面紧随其后,但其满意度相较于 Mocha 略高:96% vs 82%。放眼整个报告,96% 是今年整个调查中占比第二高的满意率。第一名是 ES6。

表明开发人员真的很感激 Facebook 所做的努力,提供了一个功能齐全的测试框架,可以用来测试前端(它在开始时的目的是测试 React 组件)和后端代码,而不需要组态。

640?wx_fmt=png


640?wx_fmt=png

移动&桌面


2007 年,著名程序员 Jeff Atwood 提出了一条 Atwood 定律,即“任何可以用 Javascript 编写的应用程序最终都会用 Javascript 编写。”当前的 Javascript 不再局限于浏览器,它在桌面以及移动端都有更广阔的应用空间。

根据调查数据显示,React Native 和 Electron 是使用 Web 技术构建移动和桌面应用的两个主要解决方案。巧的是,他们在满意度和用户数量方面都表现出相似的占比。

640?wx_fmt=png

Electron 的多功能性(它可以与任何 UI 框架一起使用,即使它通常与 React 或 Vue.js 相关联)也可以解释为什么它获得了最高的满意度。

但是这种现状未来可能会发生变化,因为不少大厂如 Airbnb 曾经发文表示决定放弃 React Native 而转向 Native Apps 用于他们的下一代产品。作为 React Native 的替代方案,想要在不使用 React 模式的情况下使用 Javascript 编写跨平台应用的开发人员也可以看看 Weex ,这可以让他们进入 Vue.js 生态。

另外,Google 在移动和桌面应用领域也有几个有趣的参赛者,比如构建于 Puppeteer 全新的 Headful Node 应用框架 —— Carlo ; 以及备受国内用户关注的 Flutter,它不像 React Native 那样需要搭建一个 Javascript 桥梁,而是编译为真正的本机代码,不过代码是由 Dart 编写的。

640?wx_fmt=png

其他工具


在 Javascript 的生态系统中,不局限于库和框架,还有一些我们日常都在使用的小工具,其中包括代码打包的捆绑包以及用于编写代码的文本编辑器。除此之外,Javascript 开发者还喜欢使用哪些编程语言及工具,接下来,我们将一窥究竟。

其他编程语言

根据调查显示,Python 在 Javascript 生态中最受开发者的欢迎,其次是 PHP、Java、C#、.NET 等语言,而基于 Javascript 编译的编程语言 ClojureScript 仅排名第 15 位。

640?wx_fmt=jpeg

浏览器 API

640?wx_fmt=jpeg

构建工具

640?wx_fmt=jpeg

常用的库

640?wx_fmt=jpeg

文本编辑器

640?wx_fmt=jpeg

最后对于该报告要特别感谢:

  • Sacha Greif:设计、写作、编码;

  • Raphael Benitte:数据分析、可视化;

  • Michael Rambeau:写作、补充统计数据。

更多内容可详见完整报告:

  • https://2018.stateofjs.com/

相关阅读:

  • 2016 年 Javascript 报告:https://2016.stateofjs.com/

  • 2017 年 Javascript 报告:https://2017.stateofjs.com/

微信改版了,

想快速看到CSDN的热乎文章,

赶快把CSDN公众号设为星标吧,

打开公众号,点击“设为星标”就可以啦!

640?wx_fmt=gif


征稿啦

CSDN 公众号秉持着「与千万技术人共成长」理念,不仅以「极客头条」、「畅言」栏目在第一时间以技术人的独特视角描述技术人关心的行业焦点事件,更有「技术头条」专栏,深度解读行业内的热门技术与场景应用,让所有的开发者紧跟技术潮流,保持警醒的技术嗅觉,对行业趋势、技术有更为全面的认知。

如果你有优质的文章,或是行业热点事件、技术趋势的真知灼见,或是深度的应用实践、场景方案等的新见解,欢迎联系 CSDN 投稿,联系方式:微信(guorui_1118,请备注投稿+姓名+公司职位),邮箱(guorui@csdn.net)。

推荐阅读:

  • 人工智能的“虚假式繁荣”

  • 这届 Python 程序员,很行!

  • 算力寻租或将终结中本聪的POW机制?深度解析BCH“司机补贴战”

  • Python告诉你:这类程序员最赚钱!

  • 公开课报名 | 详解CNN-pFSMN模型以及在语音识别中的应用

  • “万”字谏言,给那些想学Python的人,建议收藏后细看!


640?wx_fmt=gif640?wx_fmt=gif



推荐阅读
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • 本文详细介绍了Java代码分层的基本概念和常见分层模式,特别是MVC模式。同时探讨了不同项目需求下的分层策略,帮助读者更好地理解和应用Java分层思想。 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 第二十五天接口、多态
    1.java是面向对象的语言。设计模式:接口接口类是从java里衍生出来的,不是python原生支持的主要用于继承里多继承抽象类是python原生支持的主要用于继承里的单继承但是接 ... [详细]
  • 秒建一个后台管理系统?用这5个开源免费的Java项目就够了
    秒建一个后台管理系统?用这5个开源免费的Java项目就够了 ... [详细]
  • 全面解析JavaScript代码注释技巧与标准规范
    在Web前端开发中,JavaScript代码的可读性和维护性至关重要。本文将详细介绍如何有效地使用注释来提高代码的可读性,并探讨JavaScript代码注释的最佳实践和标准规范。通过合理的注释,开发者可以更好地理解和维护复杂的代码逻辑,提升团队协作效率。 ... [详细]
  • V8不仅是一款著名的八缸发动机,广泛应用于道奇Charger、宾利Continental GT和BossHoss摩托车中。自2008年以来,作为Chromium项目的一部分,V8 JavaScript引擎在性能优化和技术创新方面取得了显著进展。该引擎通过先进的编译技术和高效的垃圾回收机制,显著提升了JavaScript的执行效率,为现代Web应用提供了强大的支持。持续的优化和创新使得V8在处理复杂计算和大规模数据时表现更加出色,成为众多开发者和企业的首选。 ... [详细]
  • 如何撰写初级和高级前端开发者的专业简历
    如何撰写初级和高级前端开发者的专业简历 ... [详细]
  • DAO(Data Access Object)模式是一种用于抽象和封装所有对数据库或其他持久化机制访问的方法,它通过提供一个统一的接口来隐藏底层数据访问的复杂性。 ... [详细]
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
  • feat: Enhances Jest Testing Capabilities with Snapshot Support ... [详细]
  • 深入解析Java虚拟机的内存分区与管理机制
    Java虚拟机的内存分区与管理机制复杂且精细。其中,某些内存区域在虚拟机启动时即创建并持续存在,而另一些则随用户线程的生命周期动态创建和销毁。例如,每个线程都拥有一个独立的程序计数器,确保线程切换后能够准确恢复到之前的执行位置。这种设计不仅提高了多线程环境下的执行效率,还增强了系统的稳定性和可靠性。 ... [详细]
  • 在当今的软件开发领域,分布式技术已成为程序员不可或缺的核心技能之一,尤其在面试中更是考察的重点。无论是小微企业还是大型企业,掌握分布式技术对于提升工作效率和解决实际问题都至关重要。本周的Java架构师实战训练营中,我们深入探讨了Kafka这一高效的分布式消息系统,它不仅支持发布订阅模式,还能在高并发场景下保持高性能和高可靠性。通过实际案例和代码演练,学员们对Kafka的应用有了更加深刻的理解。 ... [详细]
  • 如何撰写适应变化的高效代码:策略与实践
    编写高质量且适应变化的代码是每位程序员的追求。优质代码的关键在于其可维护性和可扩展性。本文将从面向对象编程的角度出发,探讨实现这一目标的具体策略与实践方法,帮助开发者提升代码效率和灵活性。 ... [详细]
author-avatar
手机用户2502878261
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有