PK掉Java、Python,Javascript成年度最受欢迎编程语言,现在盘它还来得及吗?

没有看错,2018年最受欢迎的编程语言不是Java,也不是火得一塌糊涂的Python,而是Javascript。2018年国外著名开发者社区Stack Overflow 最新调查显示,超过71.5% 的专业开发者将 JavaScript 评为最受欢迎的编程语言。

除了Stack Overflow,Javascript也经常活跃于各大榜单,而且经常名列前茅。

Github 2017年度回顾提供了“Pull Requests”排行,其中Javascript超越Java和Python,排名第一。这也说明Javascript设计的项目在GitHub上占有非常大的比例。

Indeed网站的数据显示了需求最高的编程职位,Java排名第一,Javascript排名第二。

Javascript从当初被人忽略的小厮,到如今活跃各大排行,并且超越多位老牌大哥,发展势头迅猛,可以说是程序语言世界的DS逆袭的典范。但每一条逆袭之路,都是一部血泪史。下面看看javascript的前世今生。

出生卑微

Javascript的诞生是为网页增加交互功能而设计的,当时主要是想主要运行在网景开发的浏览器上,定位只是是一种网页脚本语言,性质上来说JS是一门基于原型的、动态的、弱类型脚本语言。

Brendan Eich是当时是一位就职于网景的年轻工程师,现在被认为是Javascript语言之父。由于公司领导层的干涉和影响,Javascript是在Brendan Eich比较不情愿和随意的情况下,仅用了10天就创造出来的。Javascript日后的流行,可能Brendan Eich自己都没有想到。

正因如此,Javascript甚至遭到了“亲生父亲”的嫌弃。Brendan Eich曾坦言:与其说我爱Javascript,不如说我恨它。它是C语言和Self语言一叶青的产物。他还引用了十八世纪的英国文学家约翰一段名言表达自己对JS的看法:the part that is good is not original, and the part that is original is not good(它的优秀之处并非原创,它的原创之处并不优秀)。

在当时Java ,C横行天下的时候,JS只是运行在当时并不是流行的浏览器上的一种脚本,可以说低到尘埃里。

备受Diss

JS从一开命名就饱受非议,知道的人都了解Javascript和Java是两种截然不同的语言。这个截然不同不仅仅指内涵,还还有截然不同的地位:一个出生正统,如日中天,一个庶出旁门,名不经传。不知道的知道以后,就直接Diss说Javascript是在蹭Java的热度。

除了江湖名分被非议,JS自身也确实诸多不足,导致备受质疑。由于设计JS的过程时间太短,其中细节考虑得并不严谨,导致后来很长一段时间,Javascript写出来的程序混乱不堪。

由于天生的缺陷和尴尬的地位,javascript一度不被承认是一种编程语言,js开发者也经常遭到嘲讽和调侃。

发展混乱

JS是运行在浏览器上的,但是浏览器江湖四分五裂,大家各自为战,让JS的发展更加异彩纷呈(混乱不堪)。微软还创建自己的IE浏览器的脚本语言——Jscript。

JavaScript是按ECMAScript规范实现的一种脚本语言,类似的还有JScript、ActionScript。JS基于此开发并且还提供了ECMA规范外的额外功能。

到目前为止,ECMAScript一共发布了8个版本:

      1. 1997年06月,发布第一版ECMAScript 1;
      2. 1997年06月,修改规范完全符合ISO/IEC 16262国际标准,大修之后发布为ECMAScript 2;
      3. 1999年12月:增加正则、更好的文字处理、新的控制语句、try/catch异常处理、更加明确的错误定义,数字输出格式等等,发布为ECMAScript 3;
      4. 大改的ECMAScript 4,放弃发布,该版本被直接跳过;
      5. 2009年12月:完善了ECMAScript 3版本、增加”strict mode,”(严格模式)、以及getter和setter、JSON库支持和更完整的对象属性,发布为ECMAScript 5 ;

        2011年06月:使规范更符合ISO/IEC 16262:2011第三版,发布为ECMAScript 5.1;

      6. 2015年06月:本增加了非常重要的东西,改动比较大,比如箭头函数,引入面向对象等,为ECMAScript 6(ES6),亦称为ECMAScript 2016;
      7. 2016年06月:完善ES6规范,新增:求幂运算符(*)和array.prototype.includes方法也被称,为ECMAScript 6(ES6),亦称为ECMAScript 2016;
      8. 2017年06月:增加新的功能,如并发、原子操作、Object.values/Object.entries、字符串填充、promises、await/asyn等等,为ECMAScript 8。

从JS核心ECMAScript充满波折和近乎让人咋舌的版本更新就可以知道JS的发展并不顺利。而且各大浏览器对JS的也不是由JS说了算,这也严重影响了JS开发和发展的进程。比如ES6中的箭头函数,各家浏览器的支持层度千差万别:

改革自强

尽管困难重重,但是JS改革的脚步从未停止。从其版本发布过程中,可以看出,JS一直跟随市场不断调整自己,不断改正自己的不足,纳入新的特点,有时候甚至是颠覆式的改革,其痛楚不小于刮骨疗毒,生儿长出新的肌肉。经过不断的修改、迭代,js已经是一门成熟的开发语言了,可以做的事情越来越多。

迎风而起

JavaScript可运行在所有主要平台的所有主流浏览器上,也可运行在每一个主流操作系统的服务器端。随着互联网的爆发,作为各大浏览器唯一默认的语言,JavaScript 几乎无处不在——JS终于迎来了发展的春天。在传统的前端, 各种框架层出不穷,你可以用Angular、React 或 Vue 等快速构建基于浏览器的 Web 应用程序。在服务器端,Node.js 能够让开发者使用与前端一样的编程语言来开发后端程序。甚至基于Node,开发者可以编写物联网(IoT)项目,以及进行机器学习方面的程序。而且,随着JS的日渐完善,整个互联网行业对JS的支持也在加强,谷歌、微软、Facebook以及亚马逊等科技巨头都在大力使用 JavaScript。

到目前为止,JS它已经从当初仅运行在浏览器的脚本语言,变成了现代的多功能语言,而且这一过程还在继续意欲一统江湖。

以上是JS发展的历程,现在作为一个web开发者,你所要做的就是:盘它!

下一篇接着上一篇,2019年Web开发趋势分析和学习指南——高级篇,关注跟我一起来 盘 吧!