JavaScript的历史


title: JavaScript的历史
layout: page
category: introduction
date: 2013-01-10
modifiedOn: 2013-12-05
阐明,那是阮一峰先生的篇章,附上链接:
http://javascript.ruanyifeng.com/introduction/history.html


精通明天的最好措施之一,就是摸底历史,本节将通盘介绍JavaScript的野史。通晓这几个内容,还促进把握JavaScript在全部电脑编程种类和电脑工业中所处的地点,以及涉嫌的凡事范围。

JavaScript的诞生

JavaScript因为互连网而生,紧随着浏览器的产出而出版。回看它的野史,就要从浏览器的历史讲起。

1990年终,澳国核能琢磨社团(CERN)数学家提姆Berners-Lee,在整个世界最大的电脑网络——网络的底蕴上,发明了万维网(World
Wide
Web),从此可以在网上浏览网页文件。最早的网页只能够在操作系统的顶点里浏览,也就是说只可以拔取命令行操作,网页都是在字符窗口中显示,那当然极度不便于。

1992年初,美利坚合众国国家一流电脑应用中央(NCSA)开端支付一个单独的浏览器,叫做Mosaic。那是全人类历史上率先个浏览器,从此网页可以在图形界面的窗口浏览。

1994年6月,NCSA的一个生死攸关程序员Marc Andreessen联合危机投资家JimClark,成立了Mosaic通信集团(Mosaic
Communications),不久后改名为Netscape。这家商店的趋势,就是在Mosaic的底子上,开发面向普通用户的新一代的浏览器Netscape
Navigator。

1994年18月,Navigator发布了1.0版,市场份额一举当先90%。

Netscape集团急忙发现,Navigator浏览器要求一种可以停放网页的脚本语言,用来决定浏览器行为。当时,网速很慢而且上网费很贵,有些操作不当在劳动器端落成。比如,假若用户忘记填写“用户名”,就点了“发送”按钮,到服务器再发现那点就有点太晚了,最好能在用户暴发数据此前,就告知用户“请填写xx栏”。那就须求在网页中放置小程序,让浏览器检查每一栏是还是不是都填写了。

管理层对那种浏览器脚本语言的考虑是:作用不必要太强,语法较为简单,容易学习和配置。那一年,正逢Java语言初始推向市场,Netscape公司控制,脚本语言的语法要接近Java,并且可以支撑Java程序。这个考虑直接铲除了利用现存语言,比如perl、python和TCL。

1995年,Netscape公司雇佣了程序员Brendan
Eich开发那种网页脚本语言。Brendan
Eich有很强的函数式编程背景,希望以Scheme语言(函数式语言鼻祖LISP语言的一种方言)为底本,完毕那种新语言。

1995年三月,Brendan
Eich只用了10天,就布置达成了那种语言的率先版。它是一个大杂烩,语法有八个出自:

  • 骨干语法:借鉴C语言和Java语言。
  • 数据结构:借鉴Java语言,包罗将值分成原始值和对象两大类。
  • 函数的用法:借鉴Scheme语言和Awk语言,将函数当作第一等百姓,并引入闭包。
  • 原型继承模型:借鉴Self语言(Smalltalk的一种变种)。
  • 正则表明式:借鉴Perl语言。
  • 字符串和数组处理:借鉴Python语言。

为了保全不难,那种脚本语言紧缺一些最首要的功力,比如块级作用域、模块、子类型(subtyping)等等,不过足以应用现有功效找出解决办法。那种功效的紧缺,间接促成了后来JavaScript的一个显然特点:对于任何语言,你须要学习语言的各个功能,而对此JavaScript,你时常必要学习各样解决难点的形式。而且由于来自三种,从一先导就决定,JavaScript的编程风格是函数式编程和面向对象编程的一种混合体。

Netscape公司的那种浏览器脚本语言,最初名字叫做Mocha,1995年10月改为LiveScript。1十二月,Netscape集团与Sun公司(Java语言的发明者和主人)完毕协议,后者允许将那种语言叫做JavaScript。那样一来,Netscape集团得以借助Java语言的气势,而Sun公司则将团结的影响力扩充到了浏览器。

因此起那么些名字,并不是因为JavaScript本身与Java语言有多么深的关联(事实上,两者关系并不深),而是因为Netscape公司早已控制,使用Java语言开发网络应用程序,JavaScript可以像胶水一样,将顺序部分连接起来。当然,后来的野史是Java语言的浏览器插件(applet)失利了,JavaScript反而发扬光大。

JavaScript的宣布和标准化

1995年1十一月4日,Netscape集团与Sun集团一道发表了JavaScript语言。值得一提的是,17天过后Ruby语言也发表了它的首先个本子。

1996年十一月,Navigator 2.0浏览器正式放手了JavaScript脚本语言。

1996年三月,微软模仿JavaScript开发了一体系似的言语,取名为JScript(JavaScript是Netscape的注册商标,微软不可以用),首先放到于IE
3.0。网景公司面临丧失浏览器脚本语言的主导权的范畴。

1996年10月,网景公司控制将JavaScript提交给国际规则社团ECMA,希望JavaScript可以成为国际标准,以此抵抗微软。

1997年六月,ECMA社团发布262号标准文件(ECMA-262)的首先版,规定了浏览器脚本语言的正规化,并将那种语言称为ECMAScript。那一个本子就是ECMAScript
1.0版。之所以不叫JavaScript,一方面是由于商标的涉嫌,Java是Sun公司的商标,依照一份授权协议,只有Netscape公司可以合法地使用JavaScript这些名字,且JavaScript已经被Netscape公司登记为商标,另一方面也是想体现那门语言的制定者是ECMA,不是Netscape,那样有利于确保那门语言的开放性和中立性。因而,ECMAScript和JavaScript的关联是,前者是接班人的标准,后者是前者的一种完结。在平时场馆,那三个词是能够沟通的。

1998年6月,ECMAScript 2.0版发布。

1999年1十一月,ECMAScript
3.0版发表,成为JavaScript的通畅标准,得到了宽广支持。

ECMAScript和JavaScript的版本

二〇〇七年3月,ECMAScript
4.0版草案发表,对3.0版做了大幅升级,估摸次年7月揭发正式版本。草案揭橥后,由于4.0版的目标过于激进,各方对此是还是不是由此这几个专业,暴发了深重差距。以Yahoo、Microsoft、谷歌为首的大商家,反对JavaScript的大幅进步,主张小幅变动;以JavaScript创立者Brendan
Eich为首的Mozilla公司,则坚称当前的草案。

二〇〇八年一月,由于对于下一个本子应该包蕴什么样效用,各方不一致太大,顶牛过于激进,ECMA开会决定,中止ECMAScript
4.0的用度,将里面涉嫌现有功效鼎新的一小部分,揭橥为ECMAScript
3.1,而将其他激进的设想扩充范围,放入往后的本子,由于会议的空气,该版本的品类代号起名为Harmony(和谐)。会后赶早,ECMAScript
3.1就改名为ECMAScript 5。

二零零六年1十月,ECMAScript
5.0版正式发布。Harmony项目则一分为二,一些较为可行的设想定名为Javascript.next继续支付,后来衍变成ECMAScript
6;一些不是很成熟的设想,则被视为JavaScript.next.next,在更远的以后再考虑推出。

二零一一年八月,ECMAscript 5.1版揭橥,并且变成ISO国际标准(ISO/IEC
16262:2011)。

二〇一三年5月,ECMAScript
6草案冻结,不再添加新功用。新的效能设想将被放置ECMAScript 7。

二零一三年1十月,ECMAScript 6草案公布。然后是12个月的钻探期,听取各方反映。

二零一四年11月,ECMAScript 6揣摸将发布正式版本。

TC39的完整考虑是,ECMAScript 5与ECMAScript
3基本有限支撑至极,较大的语法更正和新职能进入,将由JavaScript.next落成。当前,JavaScript.next指的是ECMAScript
6,当第六版发布之后,将指ECMAScript 7。 TC39展望,ECMAScript
5会在二零一三年的年中成为Javascript开发的主流标准,并在事后五年中一向维系那几个职位。

即使ECMAScript是JavaScript的正经,但是Netscape公司(以及后来的Mozilla基金会)在内部依旧采纳自己的版本号。那导致了JavaScript有协调不一样于ECMAScript的版本号。

1996年3月,Navigator 2.0内置了JavaScript 1.0。

1996年8月,Navigator 3.0内置了JavaScript 1.1。

1997年6月,Navigator 4.0内置了JavaScript 1.2。

1998年10月,Navigator 4.06内置了JavaScript 1.3。

1999年,Netscape服务器版提供JavaScript 1.4。

2000年11月,Navigator 6.0内置了JavaScript 1.5。

2005年11月,Firefox 1.5内置了JavaScript 1.6。

2006年10月,Firfox 2.0内置了JavaScript 1.7。

2008年6月,Firefox 3.0内置了JavaScript 1.8。

JavaScript 1.1版对应ECMAScript 1.0,可是直至JavaScript
1.4版才完全包容ECMAScript 1.0。JavaScript 1.5版完全包容ECMAScript
3.0。近日的JavaScript 1.8版完全包容ECMAScript 5。

甘休二〇一三年头,所有浏览器的新型版本——Chrome 24,Firefox 19,IE
10.0,Opera 12,Safari 6——都接济ECMAScript 5.1版。

周边大事记

1996年,样式表标准CSS第一版发布。

1997年,DHTML(Dynamic
HTML,动态HTML)揭橥,允许动态改变网页内容。那讲明着DOM方式(Document
Object Model,文档对象模型)正式使用。

1998年,Netscape公司开源了浏览器套件,那导致了Mozilla项目标出生。多少个月后,米利坚在线(AOL)发表并购Netscape。

1999年,IE
5安排了XMLHttpRequest接口,允许Javascript发出HTTP请求,为后来风靡的Ajax应用创制了尺度。

2000年,KDE项目重写了浏览器引擎KHTML,为新兴的WebKit和Blink引擎打下基础。这一年的12月23日,KDE
2.0表露,第五回将KHTML浏览器包罗内部。

2001年,微软公司时隔5年之后,发表了IE浏览器的下一个本子Internet Explorer
6。那是当时开头进的浏览器,它后来统治了浏览器市场多年。

2001年,道格拉斯Crockford提出了JSON格式,用于代替XML格式,举行服务器和网页之间的数据沟通。JavaScript可以原生援救那种格式,不须要相当布署代码。

2002年,Mozilla项目揭露了它的浏览器的第一版,后来起名为Firefox。

二〇〇三年,苹果集团发表了Safari浏览器的首先版。

二零零四年,谷歌(Google)集团颁发了Gmail,促成了网络应用程序(Web
Application)那么些概念的落地。由于Gmail是在十二月1日发布的,很六个人开首以为那只是一个玩笑。

二零零四年,Dojo框架诞生,为差异浏览器提供了相同接口,并为首要成效提供了有益的调用方法。那申明着JavaScript编程框架的一代开首到来。

二零零四年,WHATWG社团成立,致力于加速HTML语言的原则进度。

二〇〇五年,苹果集团在KHTML引擎基础上,建立了WebKit引擎。

二〇〇五年,Ajax方法(Asynchronous Javascript and XML)正式落地,Jesse 詹姆士Garrett发明了这几个词汇。它早先流行的标志是,5月份揭晓的谷歌(Google)Maps项目多量利用该措施。它差不离成了新一代网站的标准做法,促成了Web
2.0一时的过来。

二零零五年,Apache基金会发布了CouchDB数据库。那是一个基于JSON格式的数据库,可以用Javascript函数定义视图和目录。它在真相上有别传统的关系型数据库,标识着NoSQL类型的数据库诞生。

二零零六年,jQuery函数库诞生,小编为JohnResig。jQuery为操作网页DOM结构提供了分外强大易用的接口,成为了运用最普遍的函数库,并且让Javascript语言的利用难度大大下跌,牵动了那种语言的风靡。

二〇〇六年,微软公司发布IE 7,标志重新开始起步浏览器的开发。

二〇〇六年,Google推出 谷歌(Google) Web Toolkit
项目(缩写为GWT),提供Java编译成JavaScript的效应,开创了将其余语言转为JavaScript的先例。

2007年,Webkit引擎在One plus手机中收获安排。它最初基于KDE项目,二零零三年苹果公司率先应用,二零零五年开源。那标志着Javascript语言起初能在二哥大中接纳了,意味着有可能写出在桌面电脑和手机中都能利用的主次。

二零零七年,Douglas Crockford发布了名为《JavaScript: The good
parts》的演讲,次年由O’Reilly出版社出版。那标志着软件行业初始严肃对待JavaScript语言,对它的语法开首重新认识,

二零零六年,V8编译器诞生。那是Google公司为Chrome浏览器而开发的,它的特色是让Javascript的周转变得不得了快。它升高了JavaScript的习性,拉动了语法的改正和准星,改变外界对JavaScript的不好映像。同时,V8是开源的,任哪个人想要一种高效的嵌入式脚本语言,都能够使用V8,那拓展了JavaScript的应用领域。

二零零六年,Node.js项目落地,开创者为RyanDahl,它表明着Javascript可以用来服务器端编程,从此网站的前端和后端可以使用同一种语言开发。并且,Node.js能够接受很大的并发流量,使得开发一些网络大规模的实时应用变得简单。

二零零六年,JeremyAshkenas宣布了CoffeeScript的初期版本。CoffeeScript可以被转载为JavaScript运行,可是语法要比JavaScript简洁。那开启了其他语言转为JavaScript的浪潮。

二零零六年,PhoneGap项目落地,它将HTML5和JavaScript引入移动装备的应用程序开发,紧要针对iOS和Android平台,使得JavaScript可以用来跨平台的应用程序开发。

二零一零年,多少个至关主要的项目落地,分别是NPM、BackboneJS和RequireJS,标志着JavaScript进入模块化开发的时期。

二零一一年,微软公司公布Windows
8操作系统,将JavaScript作为应用程序的费用语言之一,直接提供系统协理。

二零一一年,谷歌发表了Dart语言,目标是为了了却JavaScript语言在浏览器中的垄断,提供更合理、更强硬的语法和效益。Chromium浏览器有停放的Dart虚拟机,可以运行Dart程序,但Dart程序也得以被编译成JavaScript程序运行。

二零一一年,微软工程师Scott
Hanselman
提议,JavaScript将是互连网的汇编语言。因为它所在,而且正在变得越来越快。其余语言的顺序可以被转成JavaScript语言,然后在浏览器中运行。

二〇一二年,单页面应用程序框架(single-page app
framework)开始崛起,AngularJS项目和Ember项目都发布了1.0版本。

二〇一二年,微软公布TypeScript语言。该语言被设计成JavaScript的超集,那象征所有JavaScipt程序,都足以不经修改地在TypeScript中运作。同时,TypeScript添加了累累新的语法特性,首要目标是为了开发大型程序,然后还能被编译成JavaScript运行。

二〇一二年,Mozilla基金会提出asm.js基准。asm.js是JavaScript的一个子集,所有符合asm.js的程序都可以在浏览器中运作,它的特殊之处在于语法有严苛限定,可以被高效编译成质量突出的机器码。那样做的目标,是为着给别的语言提供一个编译规范,使其得以被编译成高效的JavaScript代码。同时,Mozilla基金会还发起了Emscripten品类,目的就是提供一个跨语言的编译器,可以将LLVM的位代码(bitcode)转为JavaScript代码,在浏览器中运作。因为多数LLVM位代码都是从C
/ C++语言生成的,那代表C /
C++将得以在浏览器中运作。其它,Mozilla旗下还有LLJS(将JavaScript转为C代码)项目和River
Trail
(一个用于多为重处理器的ECMAScript增加)项目。近日,在可以被编译成JavaScript的言语列表上,共有将近40种语言。

二零一三年,Mozilla基金会颁发手机操作系统Firefox
OS,该操作系统的一切用户界面都应用JavaScript。

二零一三年,ECMA正式推出JSON的国际标准,那代表JSON格式已经变得与XML格式一样主要和正式了。

2014年,微软生产JavaScript的Windows库WinJS,标志微软公司宏观支持JavaScript与Windows操作系统的融合。

参考链接

网站地图xml地图