AngularJS 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)科学家Tim
Berners-Lee,在全球最好特别的电脑网络——互联网的根基及,发明了万维网(World
Wide
Web),从此可以在网上浏览网页文件。最早的网页只能于操作系统的顶里浏览,也就是说只能采用命令行操作,网页都是以字符窗口被显,这本来好勿便宜。

1992年之,美国国家超级电脑应用中心(NCSA)开始开一个独立的浏览器,叫做Mosaic。这是全人类历史及第一独浏览器,从此网页可以以图形界面的窗口浏览。

1994年10月,NCSA的一个重点程序员Marc Andreessen联合风险投资家Jim
Clark,成立了Mosaic通信公司(Mosaic
Communications),不久后改名为Netscape。这家企业之矛头,就是于Mosaic的基础及,开发面向普通用户的初一代之浏览器Netscape
Navigator。

1994年12月,Navigator发布了1.0本子,市场份额一举超越90%。

Netscape公司飞速发现,Navigator浏览器需要同种植可以放置网页的脚本语言,用来控制浏览器行为。当时,网速好缓慢而上网费很昂贵,有些操作不当在服务器端完成。比如,如果用户忘记填写“用户名”,就接触了“发送”按钮,到服务器再发现这无异于触及便时有发生硌最晚了,最好会于用户产生数之前,就报告用户“请填写xx栏”。这就得以网页遭到放到小程序,让浏览器检查各一样圈是否都填了。

管理层对这种浏览器脚本语言的考虑是:功能不欲极胜,语法较为简单,容易学及安排。那同样年,正逢Java语言开始推向市场,Netscape公司控制,脚本语言的语法要接近Java,并且可以支持Java程序。这些考虑直接排了运用现存语言,比如perl、python和TCL。

1995年,Netscape公司雇佣了程序员Brendan
Eich开发这种网页脚本语言。Brendan
Eich有特别强之函数式编程背景,希望为Scheme语言(函数式语言鼻祖LISP语言的如出一辙种方言)为蓝本,实现这种新语言。

1995年5月,Brendan
Eich只所以了10天,就规划好了这种语言的首先版本。它是一个坏杂烩,语法有差不多只出自:

  • 着力语法:借鉴C语言和Java语言。
  • 数据结构:借鉴Java语言,包括以价值分成原始值和目标少十分接近。
  • 函数的用法:借鉴Scheme语言和Awk语言,将函数当作第一对等民,并引入闭包。
  • 原型继承模型:借鉴Self语言(Smalltalk的同种植变种)。
  • 正则表达式:借鉴Perl语言。
  • 字符串和数组处理:借鉴Python语言。

为维持简单,这种脚本语言缺少有生死攸关之功力,比如块级作用域、模块、子类型(subtyping)等等,但是可应用现有功能找有解决办法。这种效益的阙如,直接造成了后来JavaScript的一个显著特点:对于其余语言,你用上学语言的各种力量,而对JavaScript,你经常需要学习各种解决问题之模式。而且由于自多样,从同开始就是已然,JavaScript的编程风格是函数式编程和面向对象编程的一致种混合体。

Netscape公司之这种浏览器脚本语言,最初名字称为Mocha,1995年9月移也LiveScript。12月,Netscape公司暨Sun公司(Java语言的发明者和主人)达成协议,后者允许将这种语言叫做JavaScript。这样一来,Netscape公司可以借助Java语言的气焰,而Sun公司尽管将协调的影响力扩大至了浏览器。

因此起这个名字,并无是坐JavaScript本身以及Java语言有多么好的涉(事实上,两者关系并无充分),而是因Netscape公司都控制,使用Java语言开发网络应用程序,JavaScript可以像胶水一样,将逐条组成部分连接起来。当然,后来之历史是Java语言的浏览器插件(applet)失败了,JavaScript反而发扬光大。

JavaScript的发表暨规范

1995年12月4日,Netscape公司及Sun公司同宣布了JavaScript语言。值得一提的凡,17天过后Ruby语言也揭晓了它们的首先个本子。

1996年3月,Navigator 2.0浏览器正式放开了JavaScript脚本语言。

1996年8月,微软模型仿JavaScript开发了一如既往种植恍若之言语,取名为JScript(JavaScript是Netscape的注册商标,微软未可知就此),首先放开于IE
3.0。网景公司面临丧失浏览器脚本语言的主导权的面。

1996年11月,网景公司决定将JavaScript提交给国际标准组织ECMA,希望JavaScript能够变成国际标准,以此抵抗微软。

1997年7月,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年12月,ECMAScript
3.0版本发布,成为JavaScript的通标准,得到了大规模支持。

ECMAScript和JavaScript的版本

2007年10月,ECMAScript
4.0本草案发布,对3.0版做了大幅提升,预计次年8月颁布正式版本。草案发布后,由于4.0本子的对象过于激进,各方于是否经过这标准,发生了严重分歧。以Yahoo、Microsoft、Google为首的老店,反对JavaScript的大幅提升,主张小幅变动;以JavaScript创造者Brendan
Eich为首的Mozilla公司,则坚称即的草案。

2008年7月,由于对于生一个本子应该包括什么样成效,各方分歧太要命,争论过于激进,ECMA开会决定,中止ECMAScript
4.0底开支,将里面提到现有功能改善的同一稍片段,发布为ECMAScript
3.1,而用另激进的考虑扩大范围,放入下的版本,由于会议的气氛,该本的花色代号起名为Harmony(和谐)。会后赶早,ECMAScript
3.1就是改名为ECMAScript 5。

2009年12月,ECMAScript
5.0版正式颁布。Harmony项目则一律瓜分也第二,一些较实惠之考虑定名为Javascript.next继续支付,后来演变成ECMAScript
6;一些无是大熟之考虑,则吃视为JavaScript.next.next,在再度远之未来再也考虑推出。

2011年6月,ECMAscript 5.1版发表,并且变成ISO国际标准(ISO/IEC
16262:2011)。

2013年3月,ECMAScript
6草案冻结,不再上加新成效。新的机能设想将给置于ECMAScript 7。

2013年12月,ECMAScript 6草案发布。然后是12独月之讨论期,听取各方反映。

2014年12月,ECMAScript 6预测用发布标准版本。

TC39底圆考虑是,ECMAScript 5同ECMAScript
3基本保持相当,较生之语法修正和初职能进入,将由JavaScript.next完成。当前,JavaScript.next指的是ECMAScript
6,当第六本发布之后,将指ECMAScript 7。 TC39展望,ECMAScript
5碰头以2013年的年中成为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。

结2013新春,所有浏览器的风行版本——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引擎打下基础。这无异年的10月23日,KDE
2.0发布,第一赖将KHTML浏览器包括内部。

2001年,微软公司时隔5年以后,发布了IE浏览器的下一个本Internet Explorer
6。这是及时极度先进的浏览器,它后来统治了浏览器市场多年。

2001年,Douglas
Crockford提出了JSON格式,用于代替XML格式,进行服务器和网页中的数据交换。JavaScript可以原生支持这种格式,不需额外安排代码。

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

2003年,苹果店颁发了Safari浏览器的第一版。

2004年,Google公司发布了Gmail,促成了互联网应用程序(Web
Application)这个概念的生。由于Gmail是在4月1日公布的,很多总人口开始以为这只有是一个噱头。

2004年,Dojo框架诞生,为不同浏览器提供了一如既往接口,并为关键功能提供了有利于之调用方法。这表明在JavaScript编程框架的一时开始到来。

2004年,WHATWG组织成立,致力为加速HTML语言的规则进程。

2005年,苹果店在KHTML引擎基础及,建立了WebKit引擎。

2005年,Ajax方法(Asynchronous Javascript and XML)正式落地,Jesse James
Garrett发明了是词汇。它起流行的表明是,2月份颁之Google
Maps项目大量行使该办法。它几乎变成了初一替代网站的正经做法,促成了Web
2.0一时之赶来。

2005年,Apache基金会公布了CouchDB数据库。这是一个因JSON格式的数据库,可以用Javascript函数定义视图和目录。它在真相上有别传统的涉项目数据库,标识在NoSQL类型的数据库诞生。

2006年,jQuery函数库诞生,作者为John
Resig。jQuery为操作网页DOM结构提供了要命强易用的接口,成为了采用最普遍的函数库,并且让Javascript语言的采用难度大大降低,推动了这种语言的流行。

2006年,微软公司发布IE 7,标志还开始起步浏览器的开支。

2006年,Google推出 Google Web Toolkit
项目(缩写为GWT),提供Java编译成JavaScript的效能,开创了以其他语言转为JavaScript的前例。

2007年,Webkit引擎在iPhone手机中得部署。它最初基于KDE项目,2003年苹果商店第一利用,2005年开源。这表明在Javascript语言开始会以大哥大被使了,意味着有或勾起在桌面电脑与手机受到还能够应用的次序。

2007年,Douglas Crockford发表了号称也《JavaScript: The good
parts》的演说,次年出于O’Reilly出版社出版。这表明在软件行业开始严肃对待JavaScript语言,对它的语法开始重新认识,

2008年,V8编译器诞生。这是Google公司为Chrome浏览器而出的,它的表征是深受Javascript的运转变得稀快。它提高了JavaScript的习性,推动了语法的改良和条件,改变外界对JavaScript的匪好好印象。同时,V8是开源之,任何人想要一如既往栽高效的嵌入式脚本语言,都可以动用V8,这拓展了JavaScript的应用领域。

2009年,Node.js项目落地,创始人为Ryan
Dahl,它表明在Javascript可以用来服务器端编程,从此网站的前端和后端可以应用同样种语言开发。并且,Node.js可以领很酷之并发流量,使得开发一些互联网大的实时应用变得易。

2009年,Jeremy
Ashkenas发布了CoffeeScript的头版本。CoffeeScript可以于转发为JavaScript运行,但是语法要比JavaScript简洁。这被了别样语言转为JavaScript的浪潮。

2009年,PhoneGap项目落地,它用HTML5和JavaScript引入移动设备的应用程序开发,主要对iOS和Android平台,使得JavaScript可以用来跨平台的应用程序开发。

2010年,三独重点的种落地,分别是NPM、BackboneJS和RequireJS,标志在JavaScript进入模块化开发之时。

2011年,微软公司揭晓Windows
8操作系统,将JavaScript作为应用程序的开发语言有,直接提供系统支持。

2011年,Google发布了Dart语言,目的是为了了却JavaScript语言在浏览器中之把,提供再合理、更强有力的语法和效应。Chromium浏览器有内置的Dart虚拟机,可以运行Dart程序,但Dart程序吗得让编译成JavaScript程序运行。

2011年,微软工程师Scott
Hanselman提出,JavaScript将是互联网的汇编语言。因为其所在,而且在更换得越来越快。其他语言的次第可以让改成成JavaScript语言,然后于浏览器中运作。

2012年,单页面应用程序框架(single-page app
framework)开始崛起,AngularJS项目和Ember项目还公布了1.0本子。

2012年,微软发布TypeScript语言。该语言让设计成JavaScript的超集,这意味有JavaScipt程序,都足以免经修改地以TypeScript中运作。同时,TypeScript添加了多新的语法特性,主要目的是为支付大型程序,然后还足以为编译成JavaScript运行。

2012年,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种语言。

2013年,Mozilla基金会发布手机操作系统Firefox
OS,该操作系统的整个用户界面都运JavaScript。

2013年,ECMA正式生产JSON的国际标准,这象征JSON格式已经更换得和XML格式一样重要和标准了。

2014年,微软推出JavaScript的Windows库WinJS,标志微软公司到支持JavaScript与Windows操作系统的同甘共苦。

参考链接

  • Axel Rauschmayer, The Past, Present, and Future of
    JavaScript
  • John Dalziel, The race for speed part 4: The future for
    JavaScript
  • Axel Rauschmayer, Basic JavaScript for the impatient
    programmer
  • resin.io, Happy 18th Birthday JavaScript! A look at an unlikely
    past and bright
    future

相关文章