JavaScript 现状:方言篇

导读 JavaScript 和其他编程语言有一个很大的不同,它不像单纯的一个语言,而像一个由众多方言组成大家族。从 2009 年 CoffeeScript 出现开始,近几年出现了大量基于 JavaScript 语言,或者叫方言,例如 ES6、TypeScript、Elm 等等。它们都有自己的优势,且都可以被完美编译成标准 JavaScript。

所以,继上周的前端框架篇,今天带来 JavaScript 现状之方言篇,看一下大家对于 JavaScript 的方言是怎么选择的。 [success] 声明:下面的部分结论来自部分数据,这是在我想要展示完整数据时找到的最好的办法,这便于我分享我的一些想法。 注意:如果你还没有参与这个调查,现在就来参加吧,可以花十分钟完成调查然后再回来看这篇文章。 [/success]

认知度

首先,我想看一下参与问卷调查的人是否知道下面六种语言:

  1. 经典的 JavaScript: 97%
  2. ES6: 98%
  3. CoffeeScript: 99%
  4. TypeScript: 98%
  5. Elm: 66%
  6. ClojureScript: 77%

你可能觉得 100% 的人都应该知道『经典的 JavaScript 』,我想是有人无法抵抗在一个 JavaScript 调查中投『我从来没有听说过 JavaScript 』这个选项的强大诱惑吧。几乎所有人都知道 ES6、CoffeeScript 和 TypeScript 这三种语言,比较令我惊讶的是 TypeScript 竟然会稍微落后于 ES6 和 CoffeeScript。 另一方面,Elm 和 ClojureScript 得分就要低得多,当然这也有道理,因为它们跟自己的生态环境绑定的比较紧密,也很难在已有的 App 中进行使用。

兴趣度

接下来,让我们一起看一下,哪一种方言吸引新开发者的能力更强一些: 要注意,该表是统计该语言对从未使用过它们的用户的吸引度,因为只有很少人没有用过经典 JavaScript,所以『经典 JavaScript 』这一列的数值很低。ES6的数值很有趣:已有很大比例的用户在使用 ES6 了,没有用过的人中的绝大部分(89%)也很想学习它。TypeScript 和 Elm 的状态差不多:用过的人不多,但感兴趣的比例表现不错,分别是 53% 和 58%。如果让我预测一下,那我觉得 TypeScript 和 Elm 都很难向普通的 JavaScript 开发者讲明自己的优势。毕竟如果开发者只懂 JavaScript 的话,你很难解释清楚静态类型的好处。 另外,只有很少开发者用过 CoffeeScript,而且很明显几乎没人想去学。我觉得我该写一本 12 卷厚的 CoffeeScript 百科全书了……

满意度

现在是最重要的问题的时间了:有多少开发者用过这些语言,有多少人还想继续使用这些方言呢? 虽然经典 JavaScript 拥有最多的用户量,但就满意度来说 ES6 才是大赢家,而且我想现在已经能安全的说,ES6 可以作为开发 JavaScript App 默认的语言。TypeScript 和 Elm 有相似的高满意度,都在 85% 上下。然后,只有可怜的 17% 的开发者会考虑继续使用 CoffeeScript。

快乐度

最后一个问题,我问大家在用现在的方式写 JavaScript 时是否感到快乐: 这个问题的答案和上一个问题的满意度想匹配:平均分达到 3.96 分(1 - 5 分),大家在使用 JavaScript 时候确实是快乐的。不过很难说高分是因为 JavaScript 最近的一些改进造成的呢,还是发现 JavaScript 可能(仅仅是可能)没有大家认为的那么讨厌。总之,JavaScript 令人满意。

总结

如果说上次的赢家是 React 和 Vue,那此次调查的冠军毫无争议是 ES6 了。 ES6 并带来没有开天辟地的变化,但整个社区都还是很认可当前 JavaScript 演进方向的。我觉得一年之后我们再来一次这样的调查,结果会很有趣。同时也可以关注一下 TypeScript、Elm 还有ClojureScript 有没有继续进步。 个人认为,当前 JavaScript 大家庭百花齐放的现象还只是一个开始,或许几年之后 JavaScript 就会变得非常不同了。

原文来自:https://linux.cn/article-7760-1.html

免费提供最新Linux技术教程书籍,为开源技术爱好者努力做得更多更好:http://www.linuxprobe.com/

时间: 2024-08-01 10:43:01

JavaScript 现状:方言篇的相关文章

JavaScript 精髓整理篇(一)postby:http://zhutty.cnblogs.com

废话篇头: 由于工作关系,所以写博文的时间有那么点~~,其实是输入法太懒了,都是输入法的错~~ 这一系列的博客将总结所有关于JavaScript语言的精髓,适合0基础到大师级别人物阅读. <JavaScript 精髓整理篇>将系统整理Javascript语言精要.欢迎们加入我信息栏中的qq群,我们可以一起探讨.qq群:164858883 精华不容错过: 随着nodejs的火爆,以及移动开发的热潮,js的地位已经火速上涨. JavaScript 精要可以从下面11个关键类型入手:Object.A

javascript之console篇

javascript中的console使用得当,将会事半功倍,对bug,性能等的跟踪,优化是个不错的利器! 1.基本日志消息打印: console.debug(msg); console.info(); console.warn(); console.error(); console.log(); 方法参数: msg 类似C语言的printf console.log("The number of %s is %d", mytext, myval) 变量替换具有五种变量类型: %s -

Javascript DOM 基础篇 01

DOM基础 DOM是什么 答:文件对象模型(Document Object Model,简称DOM),DOM可以以一种独立于平台和语言的方式访问和修改一个文档的内容和结构!来自网络 本节了解了下面知识点: DOM节点 childNodes  nodeType 获取子节点 children parentNode 例子:点击链接,隐藏整个li offsetParent 例子:获取元素在页面上的实际位置 DOM节点(2) 首尾子节点 有兼容性问题 firstChild.firstElementChil

作业:JavaScript(数组篇-poker)给我的徒弟出个题。。。记得早点写完,然后大家3人可以早点打牌了

吐槽一下:“今天实际上我左思右想,写个什么东西好呢!手上的笔转了半天....最后还是给自己留点余地!看着他们什么酒店管理系统,呼叫中心系统之类的....简直是把自己固定死了!感觉一撸到底的感觉!!!我们是程序员所以我觉得要思想灵活点HOHO...” 今天只是想写一篇关于JavaScript数组的一篇文章 以前我认为我已经完全把数组掌握了!但是去年面试的时候被问呆了!!瞬间感觉自己萌萌哒!!所以把书看完了不算会!所以这次为了让我的徒弟能够不再犯我当年的错误...哼哼!我决定让她来一次实战!!!不能

JavaScript笔记基础篇(二)

基础篇主要是总结一些工作中遇到的技术问题是如何解决的,应为本人属于刚入行阶段技术并非大神如果笔记中有哪些错误,或者自己的一些想法希望大家多多交流互相学习. 1.ToFixed()函数 今天在做Birt报表时, 要显示一列百分比的数据,但因一些特别的原因,不能使用使用百分比样式,即如果数据是0.9538不能显示成“95.38%”的样式,必须显示成“95.38”. 开始时想使用javascript的内置函数Math.round(),可Math.round()只能显示为整数,而不能保留小数. 再网上搜

从头学习javascript记录 - 预备篇

javascript用得少似乎一直没什么长进,加上以前基础似乎就不太牢靠,决定从零开始刷新一下自己这方面的知识库,从输入,存储,到输出,通过思维总结达到能吹牛授课的伪专家水平. 第一步,确认入门书 百度一下javascript入门,大多推荐JavaScript高级程序设计,javascript dom编程艺术.加上我自己一直喜欢的headfirst系列的javascript一本,三本书够了. 网友limu的文章<JavaScript的那些书>值得一看,文章总结了不同阶段水准需要读的书的列表,概

html与javascript之网络篇

此篇依然与前一篇动态篇环境一样,基于jquery 转载前请贴上博客链接,谢谢:http://blog.csdn.net/gugugujiawei 一.表单提交(post的同步加载) <form method="post" onSubmit="return check_recover()"> <a href="javascript:void(0)" id="allSelect2" >全部</a>

网易前端微专业,JavaScript程序设计基础篇:数组

不论什么一种语言数组都是比較重要的,其作为一种基础对象应用非常多,如Java你肯定少不了集合(List,Map)这些.因此本篇主要记录JS的数组使用和经常用法.要点例如以下: 1,数组创建 两种方式: var stu = new Array(); var stu1 = []; 这就和定义对象一样: var cat = new Object(); var cat1 = {}; 推荐用后者,比較简洁.如: var score = [1, 2, 3]; 数组里的东西能够是不同类型的,数组里面能够是基础

JavaScript【基础篇】

一.Script标签 JavaScript经常在其他语言的上下文中使用,比如我们在HTML,XHTML等标记语言中使用JavaScript时,我们需要把JavaScript代码封装在script标签中,每当浏览器读取到script时,就不会以HTML,XHTML的方式处理其内容,而是会让浏览器中内置的js引擎去执行script元素中的内容 type属性:网页脚本语言有很多,不仅仅JavaScript一个,所以我们使用了type属性来定义脚本类型,JavaScript的type值是text/jav