什么构成一种编程语言?一种版权是一种编程语言?


12

我决定创建自己的编程语言,主要是为了娱乐。但是,我对这一切的法律方面感兴趣。

例如,您可以根据特定条款许可特定程序。但是,您如何许可语言?另外,我所指的不仅仅是语言(编译器和VM)的实现,而是标准本身。我所缺少的编程语言还有其他东西吗?

我想通过这种许可实现以下目标:

  1. 使其完全成为FOSS(一种语言甚至可以是FOSS,还是该实现可以是FOSS?)
  2. 建立自己作为作者的身份(您可以合法地成为语言的作者吗?还是仅仅是实现?)
  3. 做到这一点,以便要求使用我的语言的任何人都应将我归于我(MIT风格。请注意,尽管我只是在学习,但我对任何实际做到这一点的人都没有希望。)

我认为解决方案将是分别将我的语言的VM和编译器许可为“官方实现”,然后将设计文档许可为该语言本身

我在这里到底想念什么?


10
回复(1):语言规范不是软件,因此FOSS不适用。另外,如果我遇到一种语言的作者出于任何目的尝试了这种事情,那么我将非常谨慎(也就是说,我可能根本不会使用它)。它充满了控制成瘾,不信任和对法律问题的知识不足。

关于您的最终目标,我有些不知所措。也许如果我们知道这一点,我们可以帮助您填补如何实现这一目标的空白。了解谁是目标市场也很有用。
pdr

等等,如何标记控制瘾的臭脸,@ delnan?还是您指的是版权规范?AFAIK,版权并不是天生就是邪恶的,它完全没有限制。
jcora 2012年

1
我想我会将该规范保留在公共领域中。
jcora 2012年

1
我不是律师,但是对文档进行版权保护(即使它指定了一种语言)也不对一种语言进行版权保护。例如,我确实使用了受版权保护的词典,而且我确实会说法语,而不会违反它们。
Basile Starynkevitch 2012年

Answers:


15

Disclaimer.IANAL();

您只能对一种编程语言享有版权,而一种口头语言拥有版权。您可以许可该语言的特定实现,甚至可以像Borland多年来用Delphi出售该编译器一样多。

如今,许多语言都有BDFL(仁慈的生活独裁者),它可以决定语言中包含哪些内容,哪些不包含。Python,Ruby和Perl都是示例。

其他语言已由多个标准委员会(通常是ANSI,ECMA或ISO)之一正式设计了标准。示例包括C,C ++和Javascript。

由于公司之间的政治冲突,某些语言落入了更加黑暗的地区。Java是一个示例,因为Microsoft位于某些标准板上。

一些语言从一种语言过渡到另一种语言,通常是从BDFL到标准化语言,C是一个很好的例子。

根据语言的规范,某些编译器编写者可能以不同的方式(例如CPython与PyPy)实现不同的功能或添加功能(Microsoft C ++与GNU C ++或MySQL与PostGreSQL与SQL Server)


1
Loglan是构造语言不可复制状态的先例。Lojban实际上是Loglan的开放式重新实现。另一方面,Sun起诉Microsoft为其Java 的Visual J ++实现…
Jon Purdy

2
@JonPurdy:对于Java,这是商标问题,而不是版权问题。看看LiveScript是如何变成Javascript的,这符合Sun / Netscape的共同利益,后来微软发布了JScript以显示相似性,同时避免商标问题,然后每个人都同意ECMAScript作为通用名称。
pdr 2012年

1
@ JonPurdy,@ pdr我认为Sun与Microsoft之间的争议中也存在合同法问题。微软已经从Sun获得了JVM技术的许可,并且许可的一部分同意不产生Java的非标准实现。
查尔斯E.格兰特

1
@pdr据我所记得,有一个非常精确的规格说明Java实现应提供的内容(包括实现应通过的数千个测试)。微软被起诉是因为它们具有非标准的实现(可能是通过分发仅适用于Internet Explorer的applet来锁定用户)。在分发Java的非标准实现的策略失败后,Microsoft继续创建C#。
Giorgio

3
@乔治-准确。Sun反对的是MSFT在进行重大更改(将其锁定到MSFT的平台上)时将其语言称为Java,这实际上是他们在生产仿冒的Java
Martin Beckett

8

任何限制/控制/拥有一种语言的尝试注定会失败。为了使一种语言得到广泛使用,人们必须感到:a)它可以比现有的已有语言更好地解决问题; b)他们感到自以为不会突然陷入许可/法律错误的境地。适合。如果他们认为这是可能的,那么他们将去其他地方。

我提供了Java的绝对悲剧,由Larry Ellison(又名Oracle)和Google进行。埃里森(Ellison)执行了全球范围的法律工作,完成了两件事:

  1. 他向世界展示了他将起诉任何他认为可以从中获利的人,并且
  2. 他保证,与Java 尚未完全绑定的未来开发将选择Java以外的任何其他东西

谷歌并没有赢得此次诉讼,他们全净膛甲骨文的专利和版权的可怜的索赔。此后,我所知的任何人都不会对带有Oracle指纹的任何“开源技术” 抱有任何信念(想想:MySQL)。

如果需要,您可以跳过Java背后的开发人员世纪,直接被忽略……只要让所有开发人员签订合同,他们就可以使用您的新语言。


1
+1使其非常清晰。关于Java的第二点使您很满意。这是决定是继续使用Java还是自己创建类似语言的主要因素。但是,正如我所说的,我并不真正希望人们使用它,这是出于个人和教育目的。但是,我想保留我的选择。
jcora

1
更新:2014年5月,联邦巡回法院推翻了该裁决,并表示API可以享有版权。eff.org/deeplinks/2014/05/…–
没人

但这不是我帖子的重点。甲骨文使用Java彻底破坏能力之后,没有人在他们的正确思想中,并且对历史没有任何了解,会故意将这种绞索缠在公司或项目的脖子上。如果有的话,上诉法院的推翻只会更加强调仅使用OSS工具和语言的论点。令人惊讶且具有讽刺意味的是,像Larry Ellison这样的漏洞应该成为甚至向最顽固的资本家或商业人士推动Libre / Free软件的真正价值的人。
彼得·罗威尔

2

您可以为自己的语言编写语法,并以此声明自己的版权。当然,这不会保护您免受编写描述相同语言的不同语法的人的攻击。

我最大的问题是“你为什么要”。毕竟,您可能希望人们采用您的语言。如果其他人声称创建了它,那么仅仅具有良好的网络存在就足以使您称他们为骗子。

正如其他人指出的那样,如果您的主要目标是防止他人窃取name您的语言,那么商标会更有用。


为该语言编写语法仍然无法保护它。唯一要做的就是阻止其他人以与您类似的方式重新编写语法。我可以为英语写一个语法,但这不会阻止您在SE上发帖。
加文·科茨

加文-我写道。我希望这清楚地表明,这种版权不会仅以描述语言的方式来保护语言。仍然-这可能会使人感觉更好。
Dominic Cronin

1

随着时间的流逝,对此问题有不同的答案:

在2012 年的Oracle vs Google案例中,在Android中使用Java API时,回答了 “您不能” 的类似问题,而WPL在自己的产品中实施SAS编程语言时,给出了类似的回答。该答案的基本原理是,语言的不同实现之间的互操作性需要复制编程语言的语法,因此应在“合理使用”规则下允许这样做。

在2014年,然而,美国上诉法院决定的公正的法律答案是确实“是的,你可以”,理由是提供interopability(或没有),以及在什么样的规则是在原有的版权自行决定持有人。在这种最新的解释中,如果有人不希望您与他们的编程语言,API或其他接口规范兼容,那么他​​们有权阻止您。

概括地说,从2014年开始,可以假设:是的,一种编程语言(其语法,结构和语言结构顺序)可以享有版权

请注意,版权法受当地解释的管辖,您所在国家/地区的规则可能有所不同。如有疑问,请咨询律师...

(删除了其余的参数,请参阅历史记录)

免责声明:IANAL


Annnddd ...这项裁决被推翻了。Oracle表示赞赏,而这次评委不是程序员。
jmoreno 2014年

@jmoreno感谢您指出这一点。更新了答案以反映这一新发展……
miraculixx 2014年

只是想说,不是律师或精神病医生,而是程序员,但2014年的裁决对我来说似乎是疯狂的。这是一堆命令!
jmoreno,2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.