开源编程语言的定义是什么?

Law*_*and 15 open-source programming-languages

像Ruby和Python这样的语言通常被称为开源,但是它们是什么原因呢?

它是开源编译器吗?还是解释器或执行虚拟机?

如果我们谈论编译器,那么C++是开源的吗?

Mic*_*and 10

正如其他人所观察到的那样,核心确实没有"开源语言"这样的东西.只有代码才能在最严格的意义上开源.所以可以有开源编译器,运行时,库等.

但是,对于许多语言,实现(编译器/运行时)几乎与语言本身不可分割.这是Ruby,Python等的情况,其中语言由其主要/原始实现有效地定义.虽然这些语言还有其他实现,但主要实现和语言几乎可以互换.在主要实现也是开源的情况下,将它称为开源语言是有道理的,特别是因为这些语言往往具有几乎完全围绕并且对开源软件友好的社区.


Gre*_*ill 8

我不认为语言通常被认为是开源的,而是实现该语言的软件(无论是编译器还是虚拟机等).因此,给定的语言可以同时具有开源和非开源实现.例如,有许多闭源C++编译器,以及开源编译器.

也许人们可以区分由单个实体(例如C#)控制的语言与通过社区贡献(例如Python甚至Java)生长的语言.

  • 可以说,Python由一个名为Guido的实体控制:) (5认同)