您当前的位置:首页 > 电脑百科 > 程序开发 > 语言 > javascript

2019 年 JavaScript 现状调查报告

时间:2019-12-23 15:13:13  来源:  作者:
2019 年 JavaScript 现状调查报告

 

2003 年,保罗·格雷厄姆(Paul Graham) 曾撰文提到,他的公司决定使用 Lisp。在该文章中他将 Lisp 描绘成计算机语言界的法语,它独特、深邃,能够表达难以描述的事物。

如果 Lisp 像法语,那么现如今的 JAVAScript 就像英语一般。尽管二者的语法不一致,但英语是世界上最广泛使用的语言,JavaScript 是最广泛应用的计算语言。

然而,JavaScript 似乎没有得到相应的尊重。很多大公司的高级工程师声称它不是一门「真正的」编程语言,不知道它除了操作像素外它还有什么用途...

但其实除了样式效果外,JavaScript 也被越来越多地应用于软件开发,例如后端任务、Web 服务器以及数据处理。Zeit 首席执行官 Guillermo Rauch 指出,JavaScript“不是人为设计出来的,它是在进化过程中得到的结果。是市场的力量改造了这门语言。

借着这次 State Of JS 发布的第四版「JavaScript 现状调查报告」,我们一起来看一看 JavaScript 现在到底是个什么情况?


 

JavaScript 是什么?

2019 年 JavaScript 现状调查报告

 

JavaScript(通常缩写为JS)是一种高级的、解释型的编程语言。JavaScript 是一门多范式的,基于原型、函数先行的语言,它支持面向对象编程,命令式编程,以及函数式编程。目前已被世界上的绝大多数网站所使用,也被世界主流浏览器(Chrome、IE、Firefox、Safari、Opera)支持。

虽然 JavaScript 与 Java 这门语言不管是在名字上,或是在语法上都有很多相似性,但这两门编程语言从设计之初就有很大的不同,JavaScript 的语言设计主要受到了 Self(一种基于原型的编程语言)和 Scheme(一门函数式编程语言)的影响。在语法结构上它又与 C 语言有很多相似(例如 if 条件语句、switch 语句、while 循环、do-while 循环等)。

在客户端,JavaScript 在传统意义上被实现为一种解释语言,但在最近,它已经可以被即时编译(JIT)执行。随着最新的 html5 和 css3 语言标准的推行它还可用于游戏、桌面和移动应用程序的开发和在服务器端网络环境运行,如 Node.js。

 


 

2019 年 JavaScript 现状调查报告

 

State Of JS 方面表示,因 JavaScript 的生态系统发展未能尽如人意的原因,其又发布了 2019年的 JavaScript 现状调查报告。今年的 JavaScript 状态是该调查的第四版,覆盖了21,717位受访者。客户数据可视化专家 Amelia Wattenberger 针对 JavaScript 生态系统进行了全面的概述。

2019 年 JavaScript 现状调查报告

2016年 - 2019年 趋势图

1. JavaScript 现状

“风味(Flavors)”

 

截止到 2019 年度,排名第一的为 TypeScript。此外,背后有着 Facebook 支持的Reason 也值得关注,但关注度层面,TypeScript 一枝独秀。

2019 年 JavaScript 现状调查报告

 


2019 年 JavaScript 现状调查报告

 

 

前端框架


截止到 2019 年度,排名第一的为 React,但前三名的竞争依然很激烈,

2019 年 JavaScript 现状调查报告

 


2019 年 JavaScript 现状调查报告

 


资料层

 

排名第一的依然是 graphql,但 Redux 是目前使用最广泛的工具。同时,Apollo 的用户数也在持续上涨,已从 2018 年的 11.1% 增加到了 24.9%。

 

2019 年 JavaScript 现状调查报告

 


2019 年 JavaScript 现状调查报告

 

后端框架

 

JavaScript 在后端领域近年来似乎没有取得任何重大突破唯一比较亮眼的是 Next.js 表现良好,用户数已从 2018 年的 8.6% 上升到了 24.7%。

2019 年 JavaScript 现状调查报告

 


2019 年 JavaScript 现状调查报告

 

 

测试

 

2019 年 JavaScript 现状调查报告

 


2019 年 JavaScript 现状调查报告

 


移动和桌面

 

React Native 和 Electron 仍是使用 Web 技术构建移动和桌面应用的两个主要解决方案。

2019 年 JavaScript 现状调查报告

 


2019 年 JavaScript 现状调查报告

 

 

2. 其他工具

 

2019 年 JavaScript 现状调查报告

您经常使用哪些实用程序库?

 

2019 年 JavaScript 现状调查报告

其他实用程序

 

2019 年 JavaScript 现状调查报告

您经常使用哪种文本编辑器?

 

2019 年 JavaScript 现状调查报告

在初始开发过程中,您主要使用哪种浏览器?

 

2019 年 JavaScript 现状调查报告

您还使用其他哪些编程语言?

 

3. JavaScript 相关意见汇总

2019 年 JavaScript 现状调查报告

JavaScript 朝着正确的方向发展

 

2019 年 JavaScript 现状调查报告

现在构建 JavaScript 应用程序过于复杂

 

2019 年 JavaScript 现状调查报告

JavaScript在线使用过多

 

2019 年 JavaScript 现状调查报告

我喜欢构建 JavaScript 应用程序

 

2019 年 JavaScript 现状调查报告

我希望 JavaScript 成为我的主要编程语言

 

2019 年 JavaScript 现状调查报告

JavaScript 生态系统变化太快

 

4. 结论


您知道有时候您有时会开始在这里和那里调整几行代码,然后意识到几个函数可以使用一些重构,然后在建立全新堆栈的几天后发现一件导致另一件事情的事情。完成数据库和GraphQL API?

这就是我们今年发生的事情。虽然这导致了很多紧张的夜晚,但我们试图总结一下并在2019年发布JavaScript 2019状态报告; 这也意味着我们现在有了一个功能更强大,更灵活的堆栈,可以收集和分析以后的数据。

这将有助于分析所有新工具的发展,这些新工具开始引起轰动,例如Svelte,Stencil,Sporky,Nest或Flutter。是的,我只是组成了那五个中的一个,但是承认了:您有片刻的怀疑不是吗?

但是不用担心。无论社区不断向您扔出多少个怪异的库,我们都会在那里帮助您解决所有这些混乱情况……也就是说,如果我们不忙于进行另一次重构以使我们的代码完美无缺!

–萨莎和拉斐尔

 


 

官方表示,他们将发布自己的JavaScript T恤,以资助之后的工作。这件衬衫的特征是“ JavaScript周期表”,其中列出了按类别分组的最受欢迎的库,以及它们的 GitHub 星级数(以千计)。

不得不说,这件衬衫是熟悉 JavaScript 生态系统的路径之一,也是个充值信仰的好方法哈哈哈哈~

2019 年 JavaScript 现状调查报告

 

查阅 《The State of Javascript 2019》 完整报告,请复制下方链接到浏览器:

https://2019.stateofjs.com/



Tags: JavaScript   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
千呼万唤的全球2020的JS报告终于出来了。 我们来看看这一个糟糕却又不平凡的一年,JS发生了什么样的变化。 尽管2020年很糟糕,但 JavaScript 作为一个整体仍然设法向前发展。随...【详细内容】
2021-01-14  Tags: JavaScript  点击:(248)  评论:(0)  加入收藏
逻辑赋值是对现有数学和二进制逻辑运算符的扩展。我们先复习一下,然后看看把它们结合在一起能得到什么。首先,我们来看下 JS 中条件运算符与无条件运算符之间的区别 。无条件...【详细内容】
2020-10-15  Tags: JavaScript  点击:(80)  评论:(0)  加入收藏
在 JavaScript 中使用循环时,需要理解两个关键点:可枚举的属性和可迭代的对象。可枚举的属性可枚举对象的一个定义特征是,当通过赋值操作符向对象分配属性时,我们将内部 enumera...【详细内容】
2020-09-22  Tags: JavaScript  点击:(79)  评论:(0)  加入收藏
作者:ConardLi转发链接:https://mp.weixin.qq.com/s/emJ_LjG7FNR81cxl8BnrMA前言分析你网页中的 JavaScript Bundles 大小,并限制网页中的 JavaScript 数量,可以减少浏览器花费...【详细内容】
2020-08-24  Tags: JavaScript  点击:(84)  评论:(0)  加入收藏
今年年初,我终于决定将自己的网站从基于 PHP 的 CMS 移植到基于 JavaScript 的静态网站生成器(SSG)了。原因如下: 虽然一开始我是“全栈”开发人员,但现在我只负责前端工作:如果我...【详细内容】
2020-07-29  Tags: JavaScript  点击:(62)  评论:(0)  加入收藏
这篇文章列举了一些技巧,可帮助你写出更好的 JavaScript 代码,从而提高性能。...【详细内容】
2020-07-21  Tags: JavaScript  点击:(50)  评论:(0)  加入收藏
在我们开发的许多应用程序都会用到某种日期功能,无论是内容的创建日期还是活动的时间戳等等。处理日期和时间戳格式可能会很麻烦。在本文中,我们将一起学习如何在 JavaScript...【详细内容】
2020-07-18  Tags: JavaScript  点击:(67)  评论:(0)  加入收藏
众所周知,JavaScript 一直在快速变化。在新的 ES2020 中,有很多很棒的特性,我们大都已经迫不及待尝试了。老实说,有时我们可以用不同角度来编写代码,同样也能达到相同的效果,而且...【详细内容】
2020-07-03  Tags: JavaScript  点击:(40)  评论:(0)  加入收藏
在 JS 没有提供一种简便的方法来替换所有指定字符。 在 Java 中有一个 replaceAll() ,replaceAll(String regex, String replacement))方法使用给定的参数 replacement 替换...【详细内容】
2020-06-24  Tags: JavaScript  点击:(38)  评论:(0)  加入收藏
Javascript 的很多扩展的特性是的它变得更加的犀利, 同时也给予程序员机会创建更漂亮并且更让用户喜欢的网站。 尽管很多的开发人员都乐于颂扬 javascript,但是仍旧有人看到它...【详细内容】
2020-06-17  Tags: JavaScript  点击:(45)  评论:(0)  加入收藏
▌简易百科推荐
1、通过条件判断给变量赋值布尔值的正确姿势// badif (a === 'a') { b = true} else { b = false}// goodb = a === 'a'2、在if中判断数组长度不为零...【详细内容】
2021-12-24  Mason程    Tags:JavaScript   点击:(6)  评论:(0)  加入收藏
给新手朋友分享我收藏的前端必备javascript已经写好的封装好的方法函数,直接可用。方法函数总计:41个;以下给大家介绍有35个,需要整体文档的朋友私信我,1、输入一个值,将其返回数...【详细内容】
2021-12-15  未来讲IT    Tags:JavaScript   点击:(20)  评论:(0)  加入收藏
1. 检测一个对象是不是纯对象,检测数据类型// 检测数据类型的方法封装(function () { var getProto = Object.getPrototypeOf; // 获取实列的原型对象。 var class2type =...【详细内容】
2021-12-08  前端明明    Tags:js   点击:(23)  评论:(0)  加入收藏
作者:一川来源:前端万有引力 1 写在前面Javascript中的apply、call、bind方法是前端代码开发中相当重要的概念,并且与this的指向密切相关。本篇文章我们将深入探讨这个关键词的...【详细内容】
2021-12-06  Nodejs开发    Tags:Javascript   点击:(19)  评论:(0)  加入收藏
概述DOM全称Document Object Model,即文档对象模型。是HTML和XML文档的编程接口,DOM将文档(HTML或XML)描绘成一个多节点构成的结构。使用JavaScript可以改变文档的结构、样式和...【详细内容】
2021-11-16  海人为记    Tags:DOM模型   点击:(35)  评论:(0)  加入收藏
入口函数 /*js加载完成事件*/ window.onload=function(){ console.log("页面和资源完全加载完毕"); } /*jQuery的ready函数*/ $(document).ready(function(){ co...【详细内容】
2021-11-12  codercyh的开发日记    Tags:jQuery   点击:(36)  评论:(0)  加入收藏
一、判断是否IE浏览器(支持判断IE11与edge)function IEVersion() {var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串var isIE = userAgent.indexOf("comp...【详细内容】
2021-11-02  V面包V    Tags:Javascript   点击:(40)  评论:(0)  加入收藏
Null、Undefined、空检查普通写法: if (username1 !== null || username1 !== undefined || username1 !== '') { let username = username1; }优化后...【详细内容】
2021-10-28  前端掘金    Tags:JavaScript   点击:(51)  评论:(0)  加入收藏
今天我们将尝试下花 1 分钟的时间简单地了解下什么是 JS 代理对象(proxies)?我们可以这样理解,JS 代理就相当于在对象的外层加了一层拦截,在拦截方法里我们可以自定义一些个性化...【详细内容】
2021-10-18  前端达人    Tags:JS   点击:(51)  评论:(0)  加入收藏
带有多个条件的 if 语句把多个值放在一个数组中,然后调用数组的 includes 方法。// bad if (x === "abc" || x === "def" || x === "ghi" || x === "jkl") { //logic } // be...【详细内容】
2021-09-27  羲和时代    Tags:JS   点击:(58)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条