JavaScript 昨天, 今天和明天

“Any application that can be written in JavaScript, will eventually be written in JavaScript.”html

“任何能够用JavaScript编写的应用,最终都会用JavaScript来编写。”前端

— Jeff Atwood, Author, Entrepreneur, Cofounder of StackOverflowes6

JavaScript 的诞生

从浏览器的诞生提及

  • 蒂姆·伯纳斯·李 爵士(Sir Timothy John Berners-Lee)是浏览器的发明者,咱们称呼他为李爵士(2004年,英国女皇伊丽莎白二世向他颁发大英帝国爵级司令勋章)。

giphy(1).gif

  • 1989年3月,工做在瑞士的欧洲核子研究中心(CERN)的李爵士向他的老板递交了一份提议。他的老板在这份提议上批复了几个字“难以捉摸却使人兴奋!”。这也象征着互联网时代的开始。

Proposal.gif

  • 1990年圣诞节🎄那一天,世界上第一个浏览器诞生了,它的名字叫作WorldWideWeb

giphy(2).gif

  • WorldWideWeb运行在NeXT机器上,它的界面长这个样子👇🏻,它既是一个浏览器,又是一个编辑器。

WorldWideWeb_FSF_GNU.png

  • 可是WorldWideWeb并无普及开来,早起普及的浏览器中最有名气的还当属由美国伊利诺伊大学的国家超级电脑应用中心NCSA)开发的Mosaic正则表达式

    giphy(3).gif

  • 开发Mosaic的团队领导人马克·安德森后来离开了NCSA,并与另外几人共同创办了Mosaic通讯公司,后来改名为网景公司(Netscape),并推出了一个全新的浏览器——网景导航者Netscape Navigator)。编程

    giphy(5).gif

  • JavaScript 诞生的故事也是从网景公司开始的。segmentfault

JavaScript 呱呱落地

  • 网景公司预见到网络须要更强的交互性,马克·安德森认为须要增长一种胶水语言,使开发者更容易组装一些图片和插件等组件。因而JavaScript应运而生。

giphy(9).gif

  • JavaScript的设计者是Brendan Eich。

Brendan Eich.gif

  • Brendan Eich用 10天时间设计出了JavaScript的原型。对,没错,就是 10天。再说一遍,10天

giphy(10).gif

JavaScript 的命名

  • 最初的JavaScript还不叫这个名字,而是叫作Mocha

mocha.png

  • 之因此起一个跟咖啡有关的名字是为了蹭Java的热度(Java也是咖啡的一种)。

giphy(11).gif

  • 在 Netscape Navigator 2.0 beta 中更名为 LiveScript
    LiveScript.png
  • 在 Netscape Navigator 2.0 beta3 中改名为 JavaScript
    JavaScript.png

 

giphy(13).gif

实际上JavaScript和Java真的关系不大,就好像“植物”和“植物人”同样。浏览器

 

JavaScript 借鉴了哪些语言

  • 借鉴了C语言的基本语法
  • 借鉴了Java语言的数据类型内存管理
  • 借鉴了Scheme语言,将函数提高到“第一等公民”的地位;
  • 借鉴了Lisp语言的动态类型
  • 借鉴了Self语言,使用基于原型的继承机制

giphy(6).gif

 

JavaScript的进化

JavaScript的进化与浏览器的发展是分不开的。网络

【插播】网景与微软的恩恩怨怨

Netscape Navigator 仍是 Internet Explorer

  • 就在网景的浏览器如日中天时,微软推出了自家的浏览器 Internet Explorer,也就是臭名昭著IE浏览器
  • IE浏览器与Windows捆绑销售,用微软的话来讲,任何购买了Windows的用户均可以避免费使用IE。

giphy(14).gif

  • 1996年微软推出了JScript,和IE3捆绑发行,同JavaScript构成了竞争关系。IE3率先支持了CSS。

第一次浏览器大战

giphy(21).gif

  • 第一次浏览器大战爆发,IE使用各类手段打击网景,再加上网景的一系列错误决策,IE逐渐占了上风。
  • 最终IE大获全胜,网景公司被美国在线(AOL)并购。
  • 1998年3月31日,在源码开放许可证的安排下,网景公布了Netscape Navigator的大部分源代码,这个项目使用了Mozilla这个名字,这也为后来发生的事情埋下了伏笔。

giphy(4).gif

关于这段恩怨给网景公司带来的影响,能够参见纪录片:代码奔腾(2000)app

JavaScript标准化之路

  • 网景虽然倒了,但JavaScript却愈发展示出了它的生机与活力。

走上标准化之路

  • 1996年,JavaScript开始走上了规范化之路。
  • 1996年11月,网景公司决定将JavaScript提交给国际标准化组织ECMA,但愿这种语言能成为国际标准。

ES1

  • 1997年6月,ECMA-262规范初版发布,规范制定者是ECMA组织下一个名为TC39的技术委员会。
  • 为了体现这门语言的开放性和中立性,这门语言的标准便以ECMAScript的名字被写入ECMA-262规范。
  • 简单来说,ECMAScript是JavaScript的标准,JavaScript是ECMAScript的实现

ES2

  • 1998年6月,ECMAScript发布第二版。

ES3

  • 1999年发布的ECMAScript第三版加入了不少优美的特性,例如正则表达式等。

ES4

  • 第四版的草案在2000左右就被提出,但各方对于ECMAScript应该向哪一个方向发展意见不一,致使ES4流产。

giphy(20).gif

  • 关于ES4的故事十分复杂,能够看看尤大和贺老的总结:ES6会重蹈ES4的覆辙吗? - 知乎
  • 其中一我的物很是关键,就是JavaScript语言精粹的做者 Douglas Crockford。他不但愿JavaScript变得繁杂失去控制,微软赞同他的观点,而微软刚好主导着市场。这致使一些新特性没有被引入ES4,ES4宣告流产。
  • 谷歌、微软和雅虎最终决定先作一个小版本更新,也就是ES3.1。

ES5

  • 2009年发布了第五版。
  • ES5新增了JSON支持等。

ES6

  • 2015年6月发布ECMAScript第六版,这是最“现代”的一个版本。
  • ES6提供了各类新特性,能够参见阮一峰的ES6入门教程
  • 以后ECMAScript开启年更模式。因此ES6 === ES2015

 

JavaScript展望将来

放几篇文章,感兴趣的朋友随便看看,不过将来的事情怕是谁也说不许。编辑器

 

写在最后

  • 来前儿的火车票谁给报了。

giphy(18).gif

本人才疏学浅,若有错误,还望在评论中批评指正。

相关文章
相关标签/搜索