既然JavaScript不是从Java派生出来的,为什么它的名字里有“Java”呢?
Java之于Javascript,就像汽车之于地毯。
这种语言的名字是Netscape和Sun共同营销交易的结果,作为交换,Netscape将Sun的Java运行时与他们当时占主导地位的浏览器捆绑在一起。 ——http://en.wikipedia.org/wiki/JavaScript历史
它最初被称为Mocha,更名为LiveScript,然后更名为JavaScript。JavaScript本身是Sun Microsystems的商标——官方标准就叫ECMAScript。
更让人困惑的是,微软决定将他们的版本命名为JScript。JScript与j++毫无关系,j++是一种微软实现的Java,其名称无疑是为了引起与c++的混淆。
节选自对其创作者Brendan Eich的采访:
InfoWorld: As I understand it, JavaScript started out as Mocha, then became LiveScript and then became JavaScript when Netscape and Sun got together. But it actually has nothing to do with Java or not much to do with it, correct? Eich: That’s right. It was all within six months from May till December (1995) that it was Mocha and then LiveScript. And then in early December, Netscape and Sun did a license agreement and it became JavaScript. And the idea was to make it a complementary scripting language to go with Java, with the compiled language.
这种语言与c语言的形容词有相似之处,而Java也有相似之处。
它最初被命名为Mocha,但后来更名为LiveScript,最后由于市场原因更名为JavaScript。为了适应当时的Java趋势,在LiveScript和Java之间出现了一个叫做LiveConnect的接口。这个连接打算用新的名称“JavaScript”来表示。
该项目最初被称为Mocha,然后更名为LiveScript,最后在Netscape和Sun达成许可协议时更名为JavaScript。当时的想法是让它成为一种补充Java的脚本语言。
我的来源。
这只是一个历史错误。(根据我的说法,没有真正有效的理由将JavaScript命名为JavaScript)
他们有相似的名字,因为当这些新技术开始出现时,市场对它们很疯狂(实际上Netscape打算在Netscape内部包含Java),他们意外地选择将LiveScript的名字改为JavaScript。我无意中写了这篇文章,因为它们没有任何共同之处(除了都是两种编程语言),所以没有真正的、分析的原因来解释这种相似性。
JavaScript最初被命名为Mocha,后来被重新命名为LiveScript,然后又被命名为JavaScript。
LiveScript更名为JavaScript是因为Netscape和Sun达成了一项许可协议。
该语言随后提交给ECMA国际组织进行标准化。那时,网景不允许使用“JavaScript”这个名字,所以这个标准化的语言被命名为ECMAScript。
JavaScript实际上并不是一个开放的名称。它目前是Oracle(原Sun)的商标。
仍然有很多困惑,一些人仍然认为JavaScript、JScript和ECMAScript是三种不同的语言。
ECMAScript是该语言的“标准”名称。
JavaScript在技术上是ECMAScript的“方言”,Mozilla基金会可以使用“JavaScript”作为他们实现的名称(目前存在于Rhino和SpiderMonkey引擎上)。
在早期,微软也决定在他们自己的浏览器上做Netscape正在做的事情,他们开发了JScript,这也是一种ECMAScript方言,但这样命名是为了避免商标问题。
当Javascript或Livescript推出市场时,太阳微系统公司正忙于java的创建,所以他们将其命名为Javascript。 同时还使用了java的一些基本构造。
推荐文章
- Babel 6改变了它导出默认值的方式
- 在流中使用Java 8 foreach循环移动到下一项
- 如何配置历史记录?
- ES6模板文字可以在运行时被替换(或重用)吗?
- [Vue警告]:找不到元素
- 访问限制:'Application'类型不是API(必需库rt.jar的限制)
- 用Java计算两个日期之间的天数
- 可以在setInterval()内部调用clearInterval()吗?
- AngularJS控制器的生命周期是什么?
- 无法读取未定义的属性“msie”- jQuery工具
- 如何配置slf4j-simple
- 我的蛋蛋怎么不见了?
- JavaScript中的排列?
- JavaScript中有睡眠/暂停/等待功能吗?
- 在Jar文件中运行类