是否可以以略有不同的方式重写开源项目的每一行,然后在封闭项目中使用它?


122

我正在考虑将某些代码用于GPLLGPL用于iPhone项目。

如果我使用该代码(JavaScript)并以另一种语言重写了该代码以在iPhone上使用,那将是法律问题吗?

从理论上讲,发生的过程是我遍历了项目的每一行,了解了项目的执行情况,然后以一种新的语言重新实现了这些想法。

在我看来,这就像在学习如何实现某些东西,然后与原始许可分开重新实现。因此,您仅复制了算法,可以说您可以从原始项目以外的其他地方学到算法。

许可证是否涵盖特定的实现或算法?

编辑 - - -

看到这个话题建立良好的对话,我感到非常高兴。为了给项目提供更多支持,所涉及的代码进行了某种音频分析。我相信学习或实现它并非易事,尽管我准备着手执行此任务(我处于可以实现FFT算法的水平,并且将超越此范围。)低LOC脚本,因此我认为做直接移植并不难。

我真的很喜欢重新释放端口以及在应用程序中使用它的想法。我认为没有任何问题,这将是回馈社区的好方法。

我本来想不想讨论道德问题,但我很高兴自己没有参加,因为这似乎激起了辩论。

我仍然对使用开放源代码学习感到有些奇怪。这是否意味着不允许在开放源代码项目中使用从开放源代码项目中学到的任何东西?实施必须经过多长时间或不同时间才能不被视为违反许可?ky!

编辑2 --------

后续问题


27
我真的想深入探讨另一个问题:“如果您从开源程序中学习算法并重新实现该算法,您是否违反了许可证?” 我是从法律的角度出发,而不是从道德的角度出发。但是即使从道德的角度来看,这不是合法的学习形式吗?我们是否不允许使用从开源项目中收集到的任何知识?这似乎与GPL本身背道而驰?
克里斯·巴里

8
@optician问题是您要逐行翻译它,这显然使它成为派生的作品,就像人类语言之间的翻译一样。这个想法本身不受版权保护,而可能受专利保护。但是请注意,IANAL。
starblue 2011年

3
评论员:评论旨在寻求澄清,而不是进行扩展讨论。如果您有解决方案,请留下答案。如果您的解决方案已经发布,请对其进行投票。如果您想与其他人讨论这个问题,请使用chat。有关更多信息,请参见FAQ

2
@optician Stack Exchange系统不是讨论板,每个帖子都是一个可以随时间改变方向的主题:如果您有其他想要获得帮助的问题,请提出另一个问题。否则,请随时编辑您的问题,以澄清收到的答案是否不能完全解决您的原始问题。

2
我投票结束这个题为离题的问题,因为它涉及法律问题。
罗伯特·哈维

Answers:


257

我不是律师。这不是法律建议。

话虽这么说,仅仅为了避开版权法的目的而对申请的每一行进行改动并稍加改动,显然是公然地创建了没有合理辩护的衍生作品。如果您曾经被拖入法庭,即使是最买断的法官和陪审团也一定会不利于您。

作为比较:为了互操作性而需要重写某些东西的公司通常会雇用不同的人员来了解源并创建端口(“无尘室实现”),因此没有人可以指责他们创建派生产品。工作。您的建议与之完全相反。


25
希望我能给您+10 ...
Marjan Venema

5
那是“有史以来”的事情。
QueueHammer

5
如果该软件完全成功,它很可能会在某个时候出庭。
贾斯汀C

4
@optician:取决于您实际上离重新制作原稿的距离,这就是您确实需要律师回答的问题。
David Thornley

5
@DavidStone你倒退了。您必须了解逻辑上的逻辑和代码中算法的特定表达在法律上是分开的;只有该表达才受版权保护。进行重新实现的小组与算法的原始表达没有联系(他们只看到内部关于逻辑算法的文档),并且他们的书面表达可能会与原始表达有所不同,因此他们不太可能侵犯版权。但是,由于其逻辑算法与原始算法相同,因此很容易侵犯专利。
apsillers

72

根据哈佛法学院著作权基础的贝茜·罗森布拉特(Betsy Rosenblatt):

什么构成版权侵权?

除某些抗辩外,未经作者许可而擅自执行以下操作,即构成侵犯版权:

  1. 复制或复制作品
  2. 创建源自原始作品的新作品(例如,通过将作品翻译成新的语言,复制和扭曲图像或将作品转移到新的表达方式中)
  3. 首次出售或赠送该作品或该作品的副本(但一旦作者这样做,则该物品的出售或赠送的权利便移交给了新所有者。这被称为“第一“销售”原则:一旦版权所有者出售或转让了该作品或其副本,则接受者或购买者可以根据自己的意愿随意做。)17 USC 109(a)。
  4. 未经版权所有者允许,在公共场所表演或展示作品(此权利不适用于视觉艺术)。17 USC§106。违反17 USC 106A定义的侵犯作者“精神权利”的行为也侵犯了版权。精神权利在此地点讨论。

在我看来,您违反了上面的第二项。

但是,我认为术语在这里很重要。您说:“如果我采用该代码(javascript)并将其改写为另一种语言以在iPhone上使用,那将是法律问题吗?” (强调我的)。重写某些内容可能与复制有所不同。例如,如果您看着蒙娜丽莎(Mona Lisa),然后走进自己的工作室,画上自己记得的东西,那么在我看来,您正在创作的是原创作品,表达了您对原创作品的看法。但是,如果您的工作室中有《蒙娜丽莎》的副本,并且您画了它的副本,而不是您记得的内容,那么我想您肯定是在复制。

同样,如果您使用MS Word,也许即使您看了一些代码,然后去编写自己的具有功能相似性的文字处理器,我相信在某些情况下,会决定“和感觉”不具有版权。(当然,这与专利无关。)

您可能应该请一位律师(因为我不是一位律师)。

我个人认为“端口”是派生的作品,因此您必须在同一许可证中发布移植的代码。


1
还有证明的问题。如果您查看了Word的源代码,然后编写了自己的文字处理器...您将很难证明您没有复制任何内容。
gbjbaanb

6
@gbjbaanb:微软有责任证明您在大多数国家/地区都做了,而不是相反。没关系,因为如果Microsoft起诉您,除非您没有一家大公司来带您获得无偿服务,否则您将一头雾水。:-)而且,如果您可以访问Word源代码,您很有可能已经签署了一些东西,说您不会编写任何与之竞争的东西……
TJ Crowder

3
与其在“这里”写上,不如给作者起个名字:“哈佛法学院的贝茜·罗森布拉特”。
Nicolai Reuschling

3
@Nicolai Reuschling:大声笑:)
Scott Whitlock

4
@TRiG:“我不知道你为什么认为这很有趣。” -也许是因为你没有讽刺意味。;)
Scott Whitlock

55

我不是律师,这不是法律建议,如果您在任何可疑的工作中都依赖我所说的话(1)您是白痴,(2)我不承担任何责任。这是多年来我从似乎认识的人那里听到和阅读的内容。

法官不玩“理论上”的游戏。他们不喜欢编造扭曲法律的方式的人,这些方式也许在逻辑分析方面是可以接受的,但是与明显的意图和法官过去的统治方式背道而驰。如果您有机会在法庭上捍卫您的解释,请永远不要对法律太聪明。

人们普遍认为,小说和电影的制作或将其翻译成另一种语言正在创造派生作品,这些作品比您谈论的要大得多,需要更多的创造力。看看这些例子。法官当然会。

在美国,有些情况下复制程序比您所谈论的宽松,被裁定为侵权。在美国,期望将其作为先例。

换句话说,您将在一个商业公司的基础上成立,如果有人打扰,这将被视为非法。这不是一个好主意。

而且,如果您对版权概念有任何尊重,或者对作者的出版内容拥有任何控制权,那么您就是在虚伪。在某些条件下可以使用源代码。您违反了法律和作者的明确意图。

现在,算法无法获得版权。在美国,法院裁定不可能对一个想法进行版权保护,而通常可受版权保护的东西是表达某种东西的唯一方式是不具有版权的。因此,您当然可以使用该算法。

有一种复制具有版权保护的算法的方法:“无尘室”方法,其中一个人或一个小组研究源代码并创建该算法的描述(尽可能少的实现细节),而另一个人或组编写新代码,而不引用原始源。您越接近这一点,就越安全。

您可能还想考虑一下,通过在此处发布问题,您已经发布了一种可能侵犯版权的意图,这种形式可能在有人具有合法权利的情况下可以追溯到您(例如在民事案件或普通警察调查(如果最终证明是刑事案件)。


18
+1对于“您可能还想考虑一下,通过在此处发布问题,您已经发布了侵犯版权的意图”。

6
+1对于“无尘室”方法-我一直想知道它是如何工作的。
DMan 2011年

我刚刚在情况论坛上发布了有关情况,并将结果发布在这里。
克里斯·巴里

算法是一个想法,程序是不是一个想法?或者,程序如何不是算法的集合?
滑板车2012年

16

您为什么不只是开源您的端口,而让其余项目成为开源?

引用我的另一个答案

开源是可行的,因为它是一个社区。因为是相互的。您无法通过编写开源代码来赚钱。您可以通过使用开源代码来赚钱。那么为什么要编写开源代码呢?回馈。

但是从更务实的角度来看:
如果移植的代码确实非常有用,以至于您认为应该保护它以保持优势(这是您所没有的,因为使用Appcelerator的人可以立即使用它),早晚成为开源端口。它将由许多人维护,将由更多人使用并进行测试,并将进一步完善以合并目标语言所倡导的原则,并更好地与平台上的流行框架进行交互。与之相比,您的代码迟早会显得有些废话。
实际上,开源是您时刻保持清醒状态的机会。这是双赢的。如果幸运的话,您甚至可以获得该代码的维护者,并且可以专注于您的应用程序逻辑,这实际上使您的产品与众不同。


1
+1一些最好的代码是开源的。但是我可以看到,将GPL代码添加到商业项目中可能意味着更大的障碍,因为这意味着要开源整个产品。
Alex Jasmin

2
据我了解,Apple许可条款禁止iOS应用中使用GPL代码。
Andrey Tarantsov 2011年

2
好吧,Apple ToS中的一个子句似乎与GPL中的一个子句相矛盾,因此尽管不被禁止,但它们似乎是不兼容的。
Vatine 2011年

1
如果Apple的ToS与GPL相抵触,则拥有版权即可使您以更多许可(与Apple ToS兼容但又与GPL兼容的许可)发布它。
Pieter B

8

我不是律师,甚至都不在电视上玩。

但是我认为这里的问题是推导。如果您的新作品来自GPL或LGPL作品,则该作品必须符合GPL或LGPL的要求。即使您完全用另一种语言逐行重写,您的工作也显然是派生的。


是的,但这是否意味着您不再被允许使用该算法?您是否已经看到它在另一个项目中实现的事实是否禁止您自己使用该算法,除非您可以证明自己具备通过其他学习途径自己提出该算法的知识?
克里斯·巴里

4
我也不是律师,所以我只是在猜测。如果您用另一种语言编写自己的算法实现,则不会使用“源自”一词。我认为GPL并不是作为秘密专利制度创建的。
明智船长

1
@第七-您应将“ Covert Patent System”一词注册为商标并为该概念申请专利。
Mayo

2
算法不具有版权。出于版权法的目的,重复算法是不可行的。关键是您的程序是否从原文中衍生出来;这意味着变量名,代码布局等。(但是,专利法甚至可能不适用于算法。)
Kilian Foth

1
许可证涉及实施,而不涉及算法本身。将实现移植到另一种语言是一种衍生工作,就像将“哈利·波特”移植到西班牙语一样。您可以自由地以自己的方式实现算法。我建议不要复制/粘贴,并学习要实现的算法并从头开始编写自己的版本。IANAL。
Dave Rager

5

就像其他人所说的那样,这很可能是衍生产品,因此如果您选择“与原始许可分开”进行操作,则会直接侵犯GPL条款(我认为这意味着您将删除GPL并使用其他东西,甚至是封闭的来源) 。

即使它“合法”地溜走,也显然是不道德的。GPL软件的作者选择了这样一种许可,将自由扩展到衍生作品上。无论是好是坏,这都是作者的意图您应该尊重这一点。他们为您提供了读取和修改,派生之类的代码,仅作为回报,您不更改条件。也有可能您也不会为此软件付费。

我知道赚钱很困难,但是以这种形式描述您的想法时,它就是在偷钱。当然,您可能已经从另一个来源学到了该算法或任何实现细节,但您自己却没有学到。

如果道德与您无关,那么请记住,鉴于您正在(或即将做)的事情具有灰色合法性,因此原作者很可能会因侵犯版权而与Apple联系。到目前为止,Apple很快删除了侵犯GPL的软件。另一种可能性是诉讼。

如果我是你,我会考虑或者用GPL来完成我自己的工作(这不是一件坏事!)或通过其他方式获得知识。


似乎有些应用程序是GPL(wordpress应用程序?)。您是在说使用开源项目学习算法不是很好吗?
克里斯·巴里

不,我不是在说那个。我指的是OP的想法,即将相同的行翻译成另一种编程语言。现在,推导在哪里结束,原始工作在哪里开始?这不是一个简单的问题,但是我很确定,仅需重新实现相同的算法而不进行修改就是衍生工作。
陶Szelei

是的,这不是一个简单的问题。知道有多少变化足以不违法也将很有趣。更改可行的名称,空格?感觉有些愚蠢,因为这些东西很容易更改,尤其是如果您了解代码并因此可以做一个很好的替代名称。
克里斯·巴里

顺便说一句,该代码已得到很好的注释,因此,很容易掌握其工作内容。
克里斯·巴里

好吧,只是使用常识。作为程序员,您是否认为更改空格和变量名就足够了?最终(在现实的情况下)法院将决定合法性。
陶Szelei

5

尝试做正确的事情而不偷别人的想法怎么样?您可以简单地通过电子邮件向代码创建者发送电子邮件,并询问是否可以将项目的某些部分作为基础。许多人对此不会有任何问题。如果他们确实有问题,那么即使撇开法律问题,您为什么还要破坏自己作为社区专业人员的声誉?这个问题或多或少地用“我能摆脱什么?”而不是“我应该怎么办?”来表述。有点麻烦。

最后,请问编写代码的人


2
已要求作者,我将结果发布在这里。
克里斯·巴里

5

我也不是律师。如果您担心这是否是法律问题,那么您甚至不应该问这个问题,而只是写自己的问题。

我对此事的个人看法:

如果您正在使用javascript代码并用另一种语言重写它,则这称为移植,它被视为派生作品。如果您正在编写自己的软件版本,并使用javascript代码作为参考来学习某些算法的工作原理,那么可能就可以了。

我会问律师的问题。

作为附录,版权法允许您除阅读外,基本上不对已发布的源代码进行NOTHING [*]。版权所有者发布许可证所依据的许可证允许您享受版权法未提供的某些其他特权。以未经许可的许可方式使用和使用代码与未经作者许可获得和使用受版权法保护的任何受版权保护的作品没有什么不同。

[*]合理使用除外。


1
如果是GPL,您可以做更多的工作而不是阅读它。您可以制作衍生作品,只要这些衍生作品也是GPL。
哲浩毛泽东

是的,这是正确的。
戴夫·拉格

4

不,这是不道德的。几乎可以肯定这是非法的。而且,如果我曾经从做过此事的人那里审查过一个工作应用程序,那么它将充满极大的偏见。


那么,您是说从开源项目中学习如何实现某些东西是不道德的吗?
克里斯·巴里

4
@Chris:从开源项目中创建衍生作品并将其发布以出售是不道德的,这与许可证所表明的作者意图相反。如果您不能遵守许可证,而是绕着许可证走了...嗯。
Paul Nathan

1
我并不是想避开许可证(为什么要问这个问题),但我想知道关于此类问题的情况如何。两件作品之间是否有时间限制或差异量,将使其停止为衍生作品?否则,似乎无法使用从学习开放源代码中学到的知识吗?
克里斯·巴里

并没有阻止您出售基于开放源代码的应用程序。实际上,开放源代码的定义(由“开放源代码倡议”提供)明确允许这种情况。但是您需要遵守许可证,这是OP的难题。App Store的条款和GPL冲突,这就是这里的问题。
Martin Vilcans 2011年

2

始终进行编码,好像最终维护您的代码的那个人会是一个暴力的精神病患者,知道您的住所。〜马丁·戈尔丁

我不是律师,所以我不会像一个人那样回答。此外,许多其他非律师界人士已经对您的想法的法律后果提出了自己的想法。我将跳过有关道德/道德的辩论。

如果我是你,我会更担心作为开发人员的后果。这是尊重的事情。自尊,特别是。

当然,我们所有人都在寻找“ {specification}中的d'ya {implementation}如何?”?时。那是Stack起源的地方吗?这就是我们所有人发现这里的方式,对吗?那不是我在说的,因为那不是你在说的。

如果我将天才+英勇的努力=值得作为开发人员首先作为开源产品呈现给开发人员社区的结果,而人们完全喜欢它,足以使用它,那我将失去奉承。我会很开心的 像John Reisig或Mark Story。一点点,我。然后出现了一些小问题,并确定了我的贡献,以便他们可以将其提供商业用途或将其本地化到其商业应用程序中?死了

代码就像笔迹。您不能将应用程序比火柴盒大得多地更改,以至于另一个合法的开发人员无法将两者并排区分并说“等一下...”。作为一名开发人员,我会为我的同龄人感到尴尬,我的同事,我尊敬的人,以及我渴望得到的尊重的人,都会发现我顶了别人的代码。我会成为笑柄。Cos是一些史诗般的复制面食脚本kiddie bs。您是否真的想在同行眼中使自己合法化?顶起代码是一个很好的开始。

作为一名开发人员,请考虑以下问题:如果那是我的应用程序,而我发现您顶了它,以致您担心被起诉,那么如果我决定起诉您,该怎么办呢?无论如何,都要感谢我的代码,所以为什么我不应该在伤痛的地方打你,也许还可以把它拿回来?您如何知道我不是一个青少年,或者没有脾气和一套可怕的技能?可以这么说,尽我所能在r b0xen上pwn r00 [。因为顶起我的应用程序会向我显示我>您(根据:我可以写出您只能顶起的东西)。这不是第一次。


2
我真的很喜欢这个答案。我认为问题是,您是否可以将代码用作学习点,然后重新实现。我认为这大约是200个LOC脚本,所以它不是那么棘手。我只是真的想从一个可行的例子开始学习,因此从那里开始似乎很有意义。如果我用伪代码编写全部内容,并且用GPL进行移植,那将使我处于一个合理的位置吗?我真的认为该帖子的标题引发了辩论,超出了我的预期。
克里斯·巴里

回复:引发辩论,考虑问题的本质:无论是否愿意,专业的开发人员都会将自己的心灵投入到自己的工作中。在我的时间里,因为软件的本质是一头野兽,所以流血如雨。最重要的是,我们的技术如此困难,以至于对开源(js库,php框架等)做出了真正的杰出贡献-在这一点上,我们中间的人并不依靠开源来专业地投入工作?因此,无论我们是否意识到,这样的问题对于我们所有人都是非常个人化的。
OpenSorceress

那就是说,我从John Reisig和Mark Story等开源向导以及他们那帮神童那里学到了我所了解的大部分信息。jQuery是我的小朋友。CakePHP是我的生计。这一点都没有错。因此,千斤顶和端口之间的区别。这就是我们所说的,我们站在巨人的肩膀上的意思。
OpenSorceress 2011年

0

您不能将派生作品的派生作品制成派生作品...,并且不能期望它不是派生作品。它可能变得无法识别,但这是另外一回事。您可以从任何文本开始,并通过一系列更改获得任何文本(例如,删除第一个文本,插入第二个文本),因此可能的结果并不意味着它已经完成。因此,是否有可能并不重要,但是否确实发生了(仅不可能的事情显然没有发生)并不重要

莫拉利地说:从(可以)学到的东西学习是可以的,但是您应该承认来源。休息就是合法。

IANAL,但如果出现以下情况,我不会认为我做错了:1)我从开源实现中学到了2)实际上通过执行相同的算法(即使使用相同的语言),很大一部分自然会变得完全不同,并且有些会真的很相似。如果那些相似的部分都是双方遵循相同的编码惯例,因此不能有所不同,则这些部分也不具有版权。例如。如果类具有两个私有String字段并且它们具有getter和setter,则唯一有趣的事情是该类具有两个读/写属性,而不是getter和setter的实现。


0

如果您分别重写每行,则可能会或可能不会“复制”这些行。

但是,您要逐字复制行的顺序,整体结构和包含。换句话说,使作品成​​为“整体”的东西。

您正在复制“此行应在此处,此行应在此处”的部分。这是整个算法的很大一部分。

另外,当一个项目开始时,没人知道要包括什么,什么东西或多或少被认为是重要的,如何构造和组成算法。此信息需要在某个时候生成和设计。但是您不需要,因为您可以“复制”它。


举个例子:

如果我有一组{a,b,c,d,e,f}。

我可以创建它们的有序列表[f,e,c,b,d,a]。您必须说,我已经向列表中添加了一些信息,称为ordering,而该信息不存在于无序集中。根据列表的大小,此信息可能非常具体且难以提供。


-1

就像其他任何东西一样,您无法取消学习所学,所见,所读...的知识,但是您可以控制的是如何使用它...

关于此事的两件事-

  1. 像大多数开放源代码的许可规定一样,在其上放一角钱是一件很酷的事情,将其“伪”关闭是一件很酷的事情-但问题是“信用”。我已经购买了许多脚本,这些脚本都赋予了“信用”(博客网址,所使用的操作系统代码...等),但是问题是您公开(不隐藏)为某人的创作提供信用/荣誉(再次,人们不介意您是否这样做……很多时候人们不给予信用(因此违反了GPL类型规定),因为担心人们意识到他们可以将其推广到其他地方……但是如果您的代码是公开的给予好评,并且仍然可以独立存在(无论您的代码贡献是否已关闭/打开),那么人们将不会在意。

作为一名开发人员,我发现人们不愿以创造别人的努力为幌子,不给别人以功绩,以模仿一位出色的开发人员/编码员为理由...

所以我离开了#2 ...

  1. “意图”几乎(几乎)总是这样……您是否可以站在法官面前(例如,您被起诉,被告上法庭,或被要求解释您的行为),并且清楚地说出自己的意思,而不会含糊其词。关于问题的立场-为什么您决定隐藏/关闭代码的“开源”部分,所以这应该不是问题。

我的2便士。:)

有趣的是-大多数人认为他们已经发明了一个“特定的想法”-实际上,“想法”可能已经(以极高的概率)以餐巾纸,纸张,编码,互联网,博客,等等...

因此,尽管它可能对您来说是新的,尤其是因为您已经在其他人的OS作品中看到了它,但是它可能在其他OS作品中使用了,他们从中获得了OS作品...最终可能在在线的其他地方使用了。甚至根本没有声明的许可证/版权问题...在这种情况下,您可以从该源复制...修改,更改,删除,添加...(通过复制/ URL可以追溯到哪里您可以根据自己的喜好显示代码)。

我认为在“代码域”中这是令人惊讶的,尤其是我发现我的“狡猾”代码已经于2003年在某人的怪异,谷歌搜索中编写过(不那么好..介意-哈哈)。排名为#1,239的网站,是他们在读研究生时创建的网站,只是创建了有趣且免费的功能。:)

重点是..功劳,不要回避问题,当所有其他方法都失败时...或有疑问- 询问原始OS'r使用权... yeesh!我们什么时候变得如此自大,以至于我们不能简单地要求某人使用他们的除草机,剪草机,割草机……以及-哦,是的-他们做的很酷的功能!

好吧,那是3便士...


1
问题是他试图逃避原始许可条款。
Paul Nathan

-4

让男人休息一下!

  1. 如果要对他提起法律诉讼,那将意味着某人将必须实际上有权访问该代码并阅读该代码。如果软件已编译怎么办?

  2. 事实一刻,他总是能够唤起他的无知。在被判有罪之前,不是一个应该诚实的人吗?

  3. 学习不是复制。在现有的一些作品中寻找灵感绝对不是一个复制品。因此,如果他从一个软件中了解了每一行代码的功能,并决定他要使用结果的原理对此加以改进,并开发出一个更好,更简单,更精简的软件,该怎么办?不复制恕我直言。

那是我的2美分。现在轮到第一个无罪的扔石头了...;)


3
对于#1:直到您的源代码被法官传唤,并且您在陪审团令人讨厌的咧嘴笑着,因为他们看到您的“重写”。
Jarrod Nettles

2
对于#2:侵犯版权通常是民事事务,因此在法律上没有“有罪”之类的事情。如果有大量证据表明该OP被侵权,则仅需这些。对于#3:这不是原始问题所说的。
David Thornley

1
(1)不看源代码就不难发现明显的窃。此外,我们不习惯于建议人们如何摆脱非法和高度不道德的行为。(2)无知无故无知不是辩护)(3)逐行重写不是学习。逐行重写绝对也不只是在寻找灵感。这是公然的窃,简单明了。我不会在这里重新介绍所有内容,但是有大量的法律文件和先例支持这一点。
格雷格·杰克逊

好的,所以如果我不是逐行重写,而是理解算法,然后以自己的方式重新实现它。即单人无尘室操作。那不一样吗 如果不是,我是否因此不能向任何开源项目学习?
克里斯·巴里

4
@Chris洁净室操作的全部要点是,实现该算法的人们根本没有看到原始源代码。没有“一个人的洁净室”之类的东西。
亚当李尔
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.