虽然我知道它是由Brendan Eich在Netscape创建的,但JavaScript是一个开源项目吗?如果没有,谁拥有源代码?
此外,使用了哪种编译语言来开发JavaScript?
答案 0 :(得分:36)
JavaScript不是“项目”。
相反,存在语言的“规范”(ECMAScript标准),然后该标准有许多“实现”。这些通常是由不同的人制作的完全独立的项目。许多流行的编程语言都是以类似的方式开发的,具有单一标准的各种实现。
语言可能有一个开源实现,但标准可能不是“开放” - 它的变化可能由一个公司实体控制其利润。或者,标准可以是“开放的”并且是协作开发的,但可能只有一个实现不是开源的,或者,唯一的“好”实现可能是专有的。
JavaScript尤其是ECMAScript语言标准的实现,主要以客户端JavaScript的形式使用,作为Web浏览器的一部分实现,以提供增强的用户界面和动态网站。这使得能够以编程方式访问主机环境中的计算对象。
由于其开放标准,ECMAScript是开放的但不是开源的。 (语言标准不能是开源的 - 它不是程序,它是描述程序预期行为的文档 - 但它的实现可以。)
例如,谷歌浏览器使用的V8引擎是available,SpiderMonkey source code也是如此,它在Mozilla Firefox中使用。如果您有兴趣,还有更多JavaScript engines。
答案 1 :(得分:15)
Javascript是一种语言。有许多不同的引擎可以解释javascript,每个引擎都有自己的许可协议。
有关不同引擎的更多信息:http://en.wikipedia.org/wiki/JavaScript_engine
第一个JavaScript引擎:SpiderMonkey是用C ++编写的,是由Mozilla Foundation维护的开源项目。
答案 2 :(得分:5)
JavaScript是最初由名为Netscape的公司开发的编程语言。它以ECMAScript http://www.ecmascript.org的名义标准化。这种偏离的名称是由于不同公司之间在标准化时所谓的不一致。
在浏览器中运行时,有各种“引擎”可以解释JavaScript。其中一些是开源的(例如Firefox中使用的“Rhino”或Chrome中使用的“V8”)。
然而,JavaScript本身是否是开源的问题有点不合适。 “开源”是指程序,而JavaScript是一种编程语言。它是一个开放的标准,在某些方面是近似的 - 至少在某种意义上它不是由一家公司拥有和控制的“礼仪”语言。
-
更新:我想你的问题的答案是,因为JS是一个开放的标准,它有很多实现,包括开源的。这些实现是各种编译语言,甚至是一些非编译语言。
答案 3 :(得分:2)
JavaScript有一个语言规范:ECMAScript可以并且确实有各种实现,开源或封闭源。我不相信这种语言的执行受到专利之类的限制,但我可能是错的。
答案 4 :(得分:-1)
是的,大多数运行javascript的引擎都是开放源代码:
Google已开发出JavaScript引擎V8,以下是其sourcecode(使用C ++)
这是大多数javascript engines
的列表