javascript发展时间线(2017-02-15更新)
1994年
网景公司(Netscape)发布了Navigator浏览器0.9版。这是历史上第一个比较成熟的网络浏览器,轰动一时。但是,这个版本的浏览器只能用来浏览,不具备与访问者互动的能力。网景公司急需一种网页脚本语言,使得浏览器可以与网页互动。
网页脚本语言到底是什么语言?网景公司当时有两个选择:一个是采用现有的语言,比如Perl、Python、Tcl、Scheme等等,允许它们直接嵌入网页;另一个是发明一种全新的语言。这两个选择各有利弊。第一个选择,有利于充分利用现有代码和程序员资源,推广起来比较容易;第二个选择,有利于开发出完全适用的语言,实现起来比较容易。到底采用哪一个选择,网景公司内部争执不下,管理层一时难以下定决心。
1995年
Sun公司将Oak语言改名为Java,正式向市场推出,许诺这种语言可以"一次编写,到处运行"(Write Once, Run Anywhere),它看上去很可能成为未来的主宰。
网景公司动了心,决定与Sun公司结成联盟。当时的形势就是,网景公司的整个管理层,都是Java语言的信徒,Sun公司完全介入网页脚本语言的决策。因此,Javascript后来就是网景和Sun两家公司一起携手推向市场的,这种语言被命名为"Java+script"并不是偶然的。
1995年5月
网景公司做出决策,未来的网页脚本语言必须"看上去与Java足够相似",但是比Java简单,使得非专业的网页作者也能很快上手
Brendan Eich被指定为这种"简化版Java语言"的设计师。但是,他对Java一点兴趣也没有。为了应付公司安排的任务,他只用10天时间就把Javascript设计出来了。
如果不是公司的决策,Brendan Eich绝不可能把Java作为Javascript设计的原型。作为设计者,他一点也不喜欢自己的这个作品
"与其说我爱Javascript,不如说我恨它。它是C语言和Self语言一夜情的产物。十八世纪英国文学家约翰逊博士说得好:'它的优秀之处并非原创,它的原创之处并不优秀。'(the part that is good is not original, and the part that is original is not good.)"
1995年-1996年
js出现的目的是为了节省服务器消耗,改善网页的用户体验,处理表单验证的简单任务(这个时间DOM规范还没有,可以说是DOM0时代)
1996年
网景公司向欧洲计算机制造商协会(ECMA International)提交了JavaScript语言规范,最后诞生了一种新的语言标准,叫ECMAScript。标准一般来讲是不会经常改动的,但实际js在高速发展,这里面就产生一个矛盾。我们说ECMAScript通常指的是语言标准,而JavaScript是实际运行的语言。
1998年
DOM1规范建立,js被标准化,并推出ECMA-262
1999年12月
推出ECMAScript 3
2001年
IE6发布,现在IE6从发布之初因为性能和稳定被人歌颂到如今因为bug被人吐槽,到目前几乎已经不被考虑。
实际上IE6并没有变慢,只是承载了更多的希望,之一切源于js的飞速发展,它定位指出js只有数十行代码,到最后数千行的代码,已经超出了它的极限,另外当时的js是使用js解释器来执行代码的,解释型代码(优化多是开发人员完成的)天生没有编译型代码(可以优化产出最快的机器码)快
2008年
Google发布了全新的浏览器Chrome--配载V8引擎,一款为js打造的实时(JIT)编译引擎,它把js代码转化为机器码来执行,给人感觉速度变快了
2008年7月
推出ECMAScript 4
2009年12月
推出ECMAScript 5
2012年-2013年
计划推出下一代js标准,开始的名字叫ES Harmony,目的是希望各大浏览器厂商和谐发展,最终命名为ECMAScript 6th Edition (ES6)
2013年4月
我正式成为了一个jser,哈哈
2015年
Ecma’s Technical Committee 39 (TC39--建立ECMA-262 standard的这一群人,包括Brendan Eich)为了更频繁地发布包含小规模增量更新的新版本,推出ECMAScript 2015
2016年
TC39推出ECMAScript 2016
2017年
TC39计划推出ECMAScript 2017,目前js的新特性正在进行中,你可以到Tracking ECMAScript Proposals进行关注。
目前的观点
ECMAScript 6是一个大版本的总称(你也可以叫它ES Harmony或者ES next),目前还没有完成,原因是js发展速度飞快,而大版本需要稳定后再推出。看情况这几年每年都会有推出一个小的迭代版本,最终会合并到ES6或ES7里面去。
本文部分参考自阮一峰老师的Javascript诞生记