「javascript」出生就遇浏览器大战,亲爹还不爱,命运坎坷的JavaScript终于苦尽甘来( 三 )


第二个选择 , 重新开发新语言:

  • 能够完美实现当前的使用需求 ,
  • 需要重新设计语言规范 , 吸引开发者使用 , 这需要时间和成本;
到底采用哪一个选择 , 网景公司内部争执不下 , 管理层一时也难以下定决心 。 就在这时 , Java 异军突起 , 这种可以 \"一次编写 , 到处运行\" (Write Once Run Anywhere) 的语言一经发布就大火 , 广受开发者和企业的青睐 。
Java 语言
网景公司管理层也动了心 , 决定与Sun公司合作 , 不仅允许Java程序以applet(小程序)的形式 , 直接在浏览器中运行;甚至还考虑直接将Java作为脚本语言嵌入网页 , 但由于Java语言过于庞大 , 并不适合嵌入浏览器中 , 才不得不放弃 。
Java Applet
网景公司的整个管理层 , 都是认准了Java语言的 , 以至于开发出新语言都被命名为JavaScript , 该名称被Sun只授权给网景公司使用 , 后来的JavaScript更是被网景公司和Sun两家公司联手推出 , 官方的宣传 JavaScript 是 Java 的补充 , 属于轻量级的 Java;JavaScript = Java + Script更不是空穴来风 。
1995年5月 , 网景公司做出决策 , 未来的网页客户端脚本语言必须\"看上去与Java足够相似\" , 使得Java程序员能够快速上手 , 功能不需要太强 , 语法简单 , 容易学习 , 即使是非专业的网页作者也能快速学会;这个决策一出 , 其实就已经将第一个选择排除了 , 选择了开发一门新语言 。
Brendan Eich 出场1995年 , 网景公司找到了公司程序员 Brendan Eich, 任命其为这门新的客户端脚本语言的设计者;但Brendan Eich 的研究方向是函数式编程 , 他自身也有很强的函数式编程背景 , 所以对Java 和 OOP并不感冒;
Brendan Eich - JavaScript 之父
当初网景公司招聘他的目的也是研究将Scheme语言作为网页客户端脚本语言的可能性 。 Brendan Eich本人原本以为进入新公司后 , 将会是研究Scheme语言 , 可却现在接到这样的任务 , 自然是不情愿的 。
Scheme语言是函数式语言鼻祖 Lisp语言的一种方言 , 另外一种比较流行的Lisp方言是Common Lisp 。
1995年5月 , Brendan Eich 只用了10天 , 就设计完成了这种语言的第一版;它是一个大杂烩 , 语法有多个来源 , 当时的设计思路是:
  • 基本语法:借鉴 C 语言和 Java 语言;
  • 数据结构:借鉴 Java 语言 , 包括将值分成原始值和对象两大类;
  • 函数的用法:借鉴 Scheme 语言和 Awk 语言 , 引入闭包 , 把函数作为语言的核心;
  • 原型继承模型:借鉴 Self 语言(Smalltalk 的一种变种);
  • 正则表达式:借鉴 Perl 语言;
  • 字符串和数组处理:借鉴 Python 语言;
仅用10天就设计出的语言 , 其表现可想而知 。 在其推出后的很长一段时间内 , 程序运行都有着各式各样的问题 。 就连JavaScript的设计者本人Brendan Eich都不喜欢他自己设计的这门语言:
\"与其说我爱Javascript , 不如说我恨它 。 它是C语言和Self语言yiyeqing的产物 。 十八世纪英国文学家约翰逊博士说得好:'它的优秀之 处并非原创 , 它的原创之处并不优秀 。 ' (the part that is good is not original and the part that is original is not good.)\"
—— Brendan Eich对JavaScript的评价
网景公司的这种浏览器脚本语言 , 最初名字叫做 Mocha , 1995年9月改为 LiveScript;同年12月 , 网景公司与 Sun 公司(Java 语言的发明者和所有者)达成协议 , Sun 公司授权网景公司将这门新的语言命名为 JavaScript , 借此机会 , 网景公司便将JavaScript申请成为了商标 。