JavaScript的前生今世
来源:互联网 发布:知乎关于六小龄童 编辑:程序博客网 时间:2024/04/29 13:35
JavaScript的历史就是一部关于屌丝逆袭的小说。
第一章 屌丝借势登上历史舞台——炙手可热
20世纪90年代,Web日益流行的同时,人们对客户端脚本语言的需求也越来越强烈。那个时候,绝大多数因特网用户都使用速度仅为28.8kbit/s的“猫”(调制解调器)上网,但网页的大小和复杂性却不断增加。为完成简单的表单验证而频繁地与服务器交换数据只会加重用户的负担。想象一下:用户填写完一个表单,单击“提交”按钮,然后等待30秒钟,最终服务器返回消息说有一个必填字段没有填好……当时走在技术革新最前沿的Netscape公司,决定着手开发一种客户端语言,用来处理这种简单的验证。
当时就职于Netscape公司的布兰登•艾奇(Brendan Eich),开始着手为计划于1995年2月发布的Netscape Navigator 2开发一种名为LiveScript的脚本语言——该语言将同时在浏览器和服务器中使用(它在服务器上的名字叫LiveWire)。为了赶在发布日期前完成LiveScript的开发,Netscape与Sun公司建立了一个开发联盟。在Netscape Navigator 2正式发布前夕,Netscape为了搭上媒体热炒Java的顺风车,临时把LiveScript改名为JavaScript。
第二章 遭受高富帅排挤——处境艰难
由于JavaScript 1.0获得了巨大成功,Netscape随即在Netscape Navigator 3中又发布了JavaScript 1.1。Web虽然羽翼未丰,但用户关注度却屡创新高。在这样的背景下,Netscape把自己定位为市场领袖型公司。与此同时,微软决定向与Navigator竞争的自家产品Internet Explorer浏览器投入更多资源。Netscape Navigator 3发布后不久,微软就在其Internet Explorer 3中加入了名为JScript的JavaScript实现(命名为JScript是为了避开与Netscape有关的授权问题)。
微软推出其JavaScript实现意味着有了3个不同的JavaScript版本:Netscape Navigator中的JavaScript、Internet Explorer中的Jscript和ScriptEase中的CEnvi。与C及其他编程语言不同,当时还没有标准规定JavaScript的语法和特性,3个不同版本并存的局面已经完全暴露了这个问题。随着业界担心的日益加剧,JavaScript的标准化问题被提上了议事日程。
第三章 组建个人势力——披荆斩棘
1997年,以JavaScript 1.1为蓝本的建议被提交给了欧洲计算机制造商协会(Ecma,European Computer Manufacturers Association)。该协会指定39号技术委员会(TC39,Technical Committee #39)负责“标准化一种通用、跨平台、供应商中立的脚本语言的语法和语义”(http://www.ecmainternational.org/memento/TC39.htm)。TC39由来自Netscape、Sun、微软、Borland及其他关注脚本语言发展的公司的程序员组成,他们经过数月的努力完成了ECMA-262——定义一种名为ECMAScript(发音为“ek-ma-script”)的新脚本语言的标准。
第二年,ISO/IEC(International Organization for Standardization and International Electrotechnical Commission,国标标准化组织和国际电工委员会)也采用了ECMAScript作为标准(即ISO/IEC-16262)。自此以后,浏览器开发商就开始致力于将ECMAScript作为各自JavaScript实现的基础,也在不同程度上取得了成功。
第四章 疯狂锤炼——王者归来
目前JavaScript长据最受欢迎编程语言榜单前三的位置,尤其是伴随着NodeJS的诞生,JavaScript的势力已经触及到世界的各个角落。王者已然归来。
- JavaScript的前生今世
- php的前生今世
- SpringBoot 的今世前生
- PCA的前生今世
- Communix操作系统的前生今世
- RPC 原理的前生今世
- RPC 原理的前生今世
- RPC 原理的前生今世
- 反思:太阳岛风景区的"前生今世"
- 二进制、八进制、十六进制的前生今世
- 二进制、八进制、十六进制的前生今世 2
- Protel与Altium Designer的前生今世
- 探秘抽屉导航的前生今世
- HTML 5 History API的”前生今世”
- 探秘抽屉导航的前生今世
- Java NIO 的前生今世 之一 简介
- Wayland(1):X Window的前生今世
- lena 之前生今世
- POJ 1611 The Suspects (并查集)
- 关于android自定义控件Topbar的学习
- 【Android基础知识】Activity的四种启动模式
- Idea 创建Maven速度慢解决问题
- HTML5新增标签
- JavaScript的前生今世
- instanceof什么时候使用?
- SecureCRT之rz:command not found
- js里实现继承的几种方式
- android html5网页定位
- App 创业者的福音,应用质量问题将完美解决
- LintCode笔记(12)——第k大元素
- 深入理解 spl_autoload , __autoload 以及 spl_autoload_register
- 【Android】SystemBarTintManager沉侵式菜单栏