`
snoopy7713
  • 浏览: 1152830 次
  • 性别: Icon_minigender_2
  • 来自: 火星郊区
博客专栏
Group-logo
OSGi
浏览量:0
社区版块
存档分类
最新评论

迟来的真相:关于JavaScript的历史

阅读更多

 

转自:http://blog.csdn.net/aimingoo/article/details/7383338

 

今天看到李松峰老师(@李松峰 )发布了新版的《JavaScript高级程序设计》(第三版)的预售消息,于是跑去当当(在这里 )仔细地读了一下新版有关“JavaScript起源”的段落。读罢,心中的种种不安一扫而空:在这本书的第三版,总算还原了JavaScript起源的真相。

 

话说有一本《JavaScript权威指南》,以及这本《JavaScript高级程序设计》,算这些年对前端界/JavaScript圈子影响最 大的、JavaScript经典译著。然而前者历来对JavaScript的起源语焉不详,后者则正好相反,从第一版起便“详细(而又错误地)”地指出了 “JavaScript的起源”:

大概在1992年,一家称作Nombas的公司开始开发一种叫做C减减(C-minus-minus,简称Cmm)的嵌入式脚本语言。这个脚本语言 捆绑在一个叫做CEnvi的共享软件产品中,当Netscape Navigator崭露头角时,Nombas开发了一个可以嵌入网页中的CEnvi的版本。这些早期的试验称为Espresso Page(浓咖啡般的页面),它们代表了第一个在万维网上使用的客户端脚本语言。而Nombas丝毫没有料到它的理念将会成为因特网的一块重要基石。

当网上冲浪越来越流行时,对于开发客户端脚本的需求也逐渐增大。当时工作于Netscape的Brendan Eich,开始着手为即将在1995年发行的Netscape Navigator 2.0开发一个称之为LiveScript的脚本语言……

然而正是这误指的源起,(至少在国内)造成了相当多的误解。我后来在写《JavaScript语言精髓与编程实践》过程中,为此甚是苦恼:不说吧,不对;写吧,罗嗦嗦地讲进书里,也是不好。后来才写了:

《还原JavaScript的真实历史》 

http://blog.csdn.net/aimingoo/article/details/1932315

这篇博客,在这里引出了《JavaScript高级程序设计》第一版中“错误叙述”的原文。并在我的书中把考据类的信息指到这里。

 

再后来,我又读到《JavaScript高级程序设计》的第二版,这一版是在2010年的杭州D2(第五届)大会上偶然所得(也是奇遇,呵呵),是Nicholas签名的中文版。然而关于JavaScript的起源这件事,在这一版中仍是采用此前的说法,没有什么变化。

因此,当时Hedger送我这本书时,我便跟他约好,我得再写一篇关于“JavaScript起源”的文章,请他转译、转交给Nicholas。——我所“偶得”的这一本,正是Hedger送来,并且与Nicholas还很熟。这才有了我关于这一问题的“详图实证”:

详图实证:关于JavaScript的语源问题

http://blog.csdn.net/aimingoo/article/details/6654742

这篇文章发在《程序员》杂志上,而我则将一篇摘选另寄给了Hedger。再之后的消息,就不得而知了。
如今新版的《JavaScript高级程序设计》总算在这个问题上有了新的描述,而不再将起源问题指向C--,这便已是相当令人振奋的事实了。至于这中间 有或没有几分个人的努力,其实已是在这种欣喜之外的事情。我所关注的,是总算在“JavaScript类的书籍”中,关于这个问题有了较一致的说法,而不 至于让人左右难从了。

 

在新的、第三版《JavaScript高级程序设计》中“JavaScrip简史”的叙述如下:

1.1 JavaScript简史

在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有关的授权问题)。以现在的眼光来看,微软 1996年8月为进入Web浏览器领域而实施的这个重大举措,是导致Netscape日后蒙羞的一个标志性事件。然而,这个重大举措同时也标志着 JavaScript作为一门语言,其开发向前迈进了一大步。

微软推出其JavaScript实现意味着有了3个不同的JavaScript版本:Netscape Navigator中的JavaScript、Internet Explorer中的Jscript和ScriptEase中的CEnvi。与C及其他编程语言不同,当时还没有标准规定JavaScript的语法和特 性,3个不同版本并存的局面已经完全暴露了这个问题。随着业界担心的日益加剧,JavaScript的标准化问题被提上了议事日程。

在“CEnvi是JavaScript的一个实现(而并非起源)”这一点上,Nicholas终于做出了正确的描述。虽然,大概在细节的时间上还略值得探究,但已经是无伤大局的了。

 

是为纪念,即便来之迟迟,也是真相的成功罢!

分享到:
评论

相关推荐

    Dart VS JavaScript上篇:JavaScript的历史包袱.docx

    JavaScript 的历史包袱和 Dart 语言的出现 JavaScript 作为一门脚本语言,具有悠久的历史,自 Netscape 时代起步,逐步壮大,直到 AJAX 的兴起,JavaScript 成为网络应用的核心语言。然而,JavaScript 同时也存在...

    征服RIA:基于JavaScript的Web客户端开发卷二

    如果不打算深究JavaScript幕后机制的话,运用本篇的知识便能胜任一般的JavaScript开发了。JavaScript高级篇:揭示JavaScript的运行机理和高级应用,如面向对象编程、函数式编程和元编程。Ajax篇:Ajax是上帝赐予...

    Pro JavaScript Techniques(jQuery之父作品:精通Javascript英文原版+源码)

    《Pro JavaScript Techniques》是John Resig,也就是jQuery之父的作品,这本书深入探讨了JavaScript编程的各种高级技巧和实用方法。本书的出版商是Apress,它并非普通的扫描版,而是高质量的原版电子书,旨在为读者...

    Android创建UI的新思路:用javascript与Activity进行交互.zip

    Android创建UI的新思路:用javascript与Activity进行交互.zip Android创建UI的新思路:用javascript与Activity进行交互.zip Android创建UI的新思路:用javascript与Activity进行交互.zip Android创建UI的新思路:用...

    Making Games: With JavaScript [2017]

    Making Games: With JavaScript English | 12 Jan. 2017 | ISBN: 1484224922 | 82 Pages | PDF | 1.44 MB Develop games using the JavaScript web scripting language. This compact short book will help you ...

    JavaScript权威指南(第6版).JavaScript:The.Definitive.Guide

    原名: JavaScript: The Definitive Guide: Activate Your Web Pages, 6th edition 作者: David Flanagan 版本: 英文文字版-pdf/EPUB + 完整书中源代码 出版社: O'Reilly 书号: 978-0596805524 发行时间: 2011年05月...

    编程实践:JavaScript进阶100例

    在JavaScript中,我们还可以使用`let`和`const`来声明块级作用域的变量,它们分别用于可变和不可变的值。 其次,函数是JavaScript中的重要组成部分。学习如何定义和调用函数是进阶的关键。例如,一个简单的函数定义...

    JavaScript_深度剖析(从入门到精%E.pdf

    - **JavaScript 语言概况**:介绍 JavaScript 的历史、现状和发展趋势,以及它如何融入现代 Web 开发的生态系统中。 - **基本数据结构**:讲解 JavaScript 中的基本数据类型(如字符串、数字、布尔值等)以及复合...

    JavaScript权威指南(第6版)(中文版).zip

    此JavaScript权威指南(第6版)(中文版)pdf共分四大部分,一共22个章节,非常适合入门学习。内容相当丰富,欢迎下载; 第一部分为:javascript语言核心;第二部分为:客户端Javascript;第三部分为:javaScript核心参考;第四...

    JavaScript:JavaScript基础语法.docx

    JavaScript:JavaScript基础语法.docx

    浅谈关于JavaScript脚本语言的学习.pdf

    "浅谈关于JavaScript脚本语言的学习" JavaScript脚本语言的基本特点: 1. 简单性:JavaScript是一种解释性语言,不需要提前进行编译,在程序运行过程中由浏览器边解释边执行,因此不需要额外的运行环境。 2. 跨...

    学习 Web 技术:HTML,CSS,JavaScript .zip

    学习 Web 技术:HTML,CSS,JavaScript学习 Web 技术:HTML,CSS,JavaScript 学习 Web 技术:HTML,CSS,JavaScript学习 Web 技术:HTML,CSS,JavaScript 学习 Web 技术:HTML,CSS,JavaScript学习 Web 技术:...

    Html+Css+Javascript从入门到精通.pdf

    - **JavaScript简介**:了解JavaScript的历史和发展。 - **特点与其他语言对比**:JavaScript的独特之处。 - **运行环境**:介绍JavaScript执行的环境。 - **简单示例**:编写第一个JavaScript程序。 **第十七章:...

    js-algorithms:JavaScript的算法

    JavaScript中算法的游乐场。 这是的子项目,也是的双子项目。 :newspaper: 描述 这个专案只是适用于任何这些专案中所有演算法的游乐场, :flashlight: 搜寻中 :搜索JavaScript算法 :waning_gibbous_moon: 合并...

    JavaScript基础详细.7z

    JavaScript是一种高级的、解释执行的编程语言,主要用于Web开发。以下是对JavaScript基础知识的详细描述: JavaScript概述 定义:JavaScript是一种基于对象和事件驱动并具有安全性能的脚本语言。 用途:...

    JavaScript讲义完整版.docx

    本讲义将带你深入理解和学习JavaScript的核心概念、特点及其历史演变。 1. JavaScript概述: - JavaScript是一种面向对象、解释型的编程语言,它基于对象、事件驱动,并具有相对的安全性。它无需特定语言环境,只...

    [JavaScript权威指南(第6版)].(JavaScript:The.Definitive.Guide).David.Flanagan.文字版.pdf

    - **标题**: "[JavaScript权威指南(第6版)].(JavaScript:The Definitive Guide).David Flanagan.文字版.pdf" - **描述**: "[JavaScript权威指南(第6版)].(JavaScript:The Definitive Guide).David Flanagan.文字版...

    动态网页全接触:DHTML-JavaScript.rar

    7. **浏览器兼容性**:由于历史原因,JavaScript在不同浏览器上的实现可能存在差异,开发者需要考虑跨浏览器的兼容性问题。 8. **ES6及后续版本**:ECMAScript的升级引入了新的语法特性,如let、const、箭头函数、...

    JavaScript权威指南(JavaScript犀牛书一本)

    这本书深入浅出地讲解了JavaScript语言的核心概念、语法特性和高级特性,对于想要全面理解和掌握JavaScript的开发者来说,是一本不可或缺的参考书籍。 在19MB的7z压缩文件中包含的《JavaScript权威指南》PDF版,...

    11个震撼的javascript网页效果

    5. **时间线展示**:利用JavaScript,可以创建出动态的时间轴,以动画形式展示事件或历史进程,增加用户对内容的理解和兴趣。 6. **全屏滑动面板**:全屏滑动面板常用于作品展示或介绍,JavaScript可以实现平滑过渡...

Global site tag (gtag.js) - Google Analytics