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因为网络而生,紧随着浏览器的产出而出版。回想它的野史,就要从浏览器的野史讲起。

一九八七年终,澳洲核能研讨协会(CE卡宴N)地艺术学家TimBerners-Lee,在环球最大的电脑网络——互连网的根基上,发明了万维网(World
Wide
Web),从此能够在网上浏览网页文件。最早的网页只可以在操作系统的顶点里浏览,也正是说只可以动用命令行操作,网页都以在字符窗口中展现,那当然万分不方便人民群众。

壹玖玖伍年初,美利坚联邦合众国国家一级电脑应用宗旨(NCSA)起初支付3个独立的浏览器,叫做Mosaic。那是人类历史上第三个浏览器,从此网页能够在图形界面的窗口浏览。

一九九四年四月,NCSA的多少个重中之重程序员Marc Andreessen联合危害投资家吉米Clark,创造了Mosaic通讯公司(Mosaic
Communications),不久后改名为Netscape。这家铺子的倾向,便是在Mosaic的根底上,开发面向普通用户的新一代的浏览器Netscape
Navigator。

一九九五年3月,Navigator发表了1.0版,市集份额一举超过十分之九。

Netscape集团高速发现,Navigator浏览器须求一种能够停放网页的脚本语言,用来控制浏览器行为。当时,网速极慢而且上网费很贵,有个别操作不当在劳动器端实现。比如,借使用户忘记填写“用户名”,就点了“发送”按钮,到服务器再发现那点就有点太晚了,最好能在用户产生数据以前,就告知用户“请填写xx栏”。那就必要在网页中置放小程序,让浏览器检查每一栏是还是不是都填写了。

管理层对那种浏览器脚本语言的设想是:成效不供给太强,语法较为简单,不难学习和安顿。那一年,正逢Java语言开头推向市集,Netscape公司控制,脚本语言的语法要接近Java,并且能够支持Java程序。那么些考虑直接铲除了使用现存语言,比如perl、python和TCL。

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

壹玖玖伍年七月,Brendan
Eich只用了10天,就设计成就了那种语言的第3版。它是1个大杂烩,语法有多个来源:

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

为了保持不难,那种脚本语言缺乏一些要害的意义,比如块级功能域、模块、子类型(subtyping)等等,不过能够动用现有效用找出化解办法。那种功用的贫乏,直接导致了后来JavaScript的一个鲜明特点:对于任何语言,你必要上学语言的种种作用,而对于JavaScript,你日常须要上学各类消除难题的情势。而且由于来自各类,从一开首就决定,JavaScript的编制程序风格是函数式编制程序和面向对象编程的一种混合体。

Netscape集团的那种浏览器脚本语言,最初名字称为Mocha,一九九二年三月改为LiveScript。7月,Netscape公司与Sun公司(Java语言的发明者和主人)实现协议,后者允许将那种语言叫做JavaScript。那样一来,Netscape公司能够借助Java语言的气势,而Sun集团则将协调的影响力扩充到了浏览器。

从而起那些名字,并不是因为JavaScript本人与Java语言有多么深的关系(事实上,两者关系并不深),而是因为Netscape公司曾经决定,使用Java语言开发互联网应用程序,JavaScript可以像胶水一样,将顺序部分连接起来。当然,后来的历史是Java语言的浏览器插件(applet)退步了,JavaScript反而发扬光大。

JavaScript的通知和条件

1991年二月五日,Netscape集团与Sun公司联合公布了JavaScript语言。值得一提的是,17天之后Ruby语言也公布了它的第3个版本。

一九九九年一月,Navigator 2.0浏览器正式松开了JavaScript脚本语言。

一九九七年3月,微软模仿JavaScript开发了一连串似的语言,取名为JScript(JavaScript是Netscape的注册商标,微软不能够用),首先松手于IE
3.0。网景公司面临丧失浏览器脚本语言的主导权的范畴。

一九九九年八月,网景公司说了算将JavaScript提交给国际标准组织ECMA,希望JavaScript能够变成国际标准,以此抵抗微软。

1998年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版发布。

一九九九年二月,ECMAScript
3.0版发表,成为JavaScript的畅通标准,获得了广阔帮忙。

ECMAScript和JavaScript的版本

二零零六年7月,ECMAScript
4.0版草案发布,对3.0版做了大幅度进步,猜测次年七月发表正式版本。草案发表后,由于4.0版的对象过于激进,各方对于是否经过这一个专业,产生了深重分歧。以Yahoo、Microsoft、谷歌为首的大商厦,反对JavaScript的大幅度升级,主张小幅度改动;以JavaScript创建者Brendan
Eich为首的Mozilla公司,则坚韧不拔当前的草案。

二〇〇八年11月,由于对于下二个本子应该包含哪些效用,各方差距太大,争执过于激进,ECMA开会决定,中止ECMAScript
4.0的支出,将内部涉嫌现有成效改进的一小部分,公布为ECMAScript
3.1,而将别的激进的考虑扩张范围,放入以往的版本,由于会议的空气,该版本的项目代号起名为Harmony(和谐)。会后急忙,ECMAScript
3.1就改名为ECMAScript 5。

2008年3月,ECMAScript
5.0版正式透露。Harmony项目则一分为二,一些比较有效的考虑定名为Javascript.next继续支付,后来演变成ECMAScript
6;一些不是很干练的考虑,则被视为JavaScript.next.next,在更远的前几天再考虑推出。

2013年6月,ECMAscript 5.1版公布,并且变成ISO国际标准(ISO/IEC
16262:二〇一三)。

2012年7月,ECMAScript
6草案冻结,不再添加新职能。新的机能设想将被平放ECMAScript 7。

二〇一二年10月,ECMAScript 6草案发布。然后是13个月的研究期,听取各方上报。

二〇一四年九月,ECMAScript 6预测将宣告正式版本。

TC39的一体化考虑是,ECMAScript 5与ECMAScript
3基本维持万分,较大的语法更正和新效能进入,将由JavaScript.next实现。当前,JavaScript.next指的是ECMAScript
6,当第5版发布之后,将指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。

一九九六年,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版。

周边大事记

一九九九年,样式表标准CSS第②版揭橥。

一九九七年,DHTML(Dynamic
HTML,动态HTML)公布,允许动态改变网页内容。那标志着DOM格局(Document
Object Model,文书档案对象模型)正式使用。

一九九九年,Netscape公司开源了浏览器套件,那致使了Mozilla项目标出生。多少个月后,United States在线(AOL)发表并购Netscape。

一九九九年,IE
5安排了XMLHttpRequest接口,允许Javascript发出HTTP请求,为后来风行的Ajax应用创建了条件。

三千年,KDE项目重写了浏览器引擎KHTML,为新兴的WebKit和Blink引擎打下基础。这一年的四月10日,KDE
2.0宣布,第一回将KHTML浏览器包涵内部。

二〇〇二年,微软公司时隔5年之后,公布了IE浏览器的下二个版本Internet Explorer
6。那是当时开始进的浏览器,它后来执政了浏览器市集多年。

2004年,DouglasCrockford提议了JSON格式,用于代替XML格式,进行服务器和网页之间的数据交换。JavaScript能够原生援助那种格式,不供给万分安排代码。

二零零三年,Mozilla项目揭穿了它的浏览器的率先版,后来起名为Firefox。

二零零三年,苹果公司发布了Safari浏览器的第②版。

贰零零壹年,谷歌公司发表了Gmail,促成了网络应用程序(Web
Application)那个概念的落地。由于Gmail是在八月二17日发布的,很几人开端以为那只是三个玩笑。

2002年,Dojo框架诞生,为区别浏览器提供了同样接口,并为首要职能提供了造福的调用方法。那标志着JavaScript编制程序框架的一世初叶到来。

二〇〇一年,WHATWG社团创制,致力于加快HTML语言的口径进度。

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

二零零六年,Ajax方法(Asynchronous Javascript and XML)正式诞生,Jesse 詹姆斯加雷特发明了那一个词汇。它初叶风靡的注解是,4月份宣告的谷歌(Google)Maps项目大批量用到该办法。它大约成了新一代网站的正式做法,促成了Web
2.0时代的赶来。

贰零零陆年,Apache基金会颁发了CouchDB数据库。那是一个根据JSON格式的数据库,可以用Javascript函数定义视图和目录。它在精神上区分古板的关系型数据库,标识着NoSQL类型的数据库诞生。

2005年,jQuery函数库诞生,小编为JohnResig。jQuery为操作网页DOM结构提供了充裕强劲易用的接口,成为了利用最广大的函数库,并且让Javascript语言的行使难度大大下落,推动了那种语言的风靡。

二〇〇七年,微软公司宣布IE 7,标志重新起初运维浏览器的支出。

二〇〇七年,谷歌(Google)推出 谷歌(Google) Web Toolkit
项目(缩写为GWT),提供Java编写翻译成JavaScript的功效,开创了将别的语言转为JavaScript的前例。

二零零五年,Webkit引擎在金立手提式有线电话机中获取安排。它最初基于KDE项目,2003年苹果集团先是接纳,2007年开源。那申明着Javascript语言初始能在手提式有线电话机中使用了,意味着有大概写出在桌面电脑和手提式无线电话机中都能利用的先后。

贰零零陆年,道格拉斯 Crockford发表了名为《JavaScript: The good
parts》的演说,次年由O’Reilly出版社出版。那标志着软件行业开头体面对待JavaScript语言,对它的语法开头重新认识,

二〇〇八年,V8编译器诞生。那是谷歌(Google)公司为Chrome浏览器而支出的,它的特色是让Javascript的运作变得可怜快。它升高了JavaScript的属性,推动了语法的千锤百炼和原则,改变外界对JavaScript的不好影象。同时,V8是开源的,任何人想要一种高效的嵌入式脚本语言,都能够动用V8,这拓展了JavaScript的应用领域。

二〇〇九年,Node.js项目落地,创办人为赖安Dahl,它申明着Javascript能够用于服务器端编制程序,从此网站的前端和后端能够选拔相同种语言开发。并且,Node.js还行相当的大的并发流量,使得开发一些网络大规模的实时应用变得不难。

二零零六年,JeremyAshkenas公布了CoffeeScript的最初版本。CoffeeScript能够被转正为JavaScript运营,不过语法要比JavaScript简洁。那开启了其余语言转为JavaScript的浪潮。

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

二〇一〇年,多个关键的花色落地,分别是NPM、BackboneJS和RequireJS,标志着JavaScript进入模块化开发的时日。

二〇一一年,微软公司公布Windows
8操作系统,将JavaScript作为应用程序的支出语言之一,直接提供系统辅助。

2013年,谷歌(Google)发表了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运维。

2011年,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
(3个用于多中央处理器的ECMAScript扩充)项目。近来,在能够被编写翻译成JavaScript的语言列表上,共有将近40种语言。

二零一一年,Mozilla基金会颁发手提式有线电话机操作系统Firefox
OS,该操作系统的全方位用户界面都选择JavaScript。

2011年,ECMA正式生产JSON的国际标准,这意味着JSON格式已经变得与XML格式一样主要和业内了。

二〇一五年,微软生产JavaScript的Windows库WinJS,标志微软公司宏观支持JavaScript与Windows操作系统的玉石俱焚。

参考链接

相关文章