从开源项目重新实现算法

时间:2010-08-06 09:05:17

标签: open-source gpl

我目前正在开发一个项目,我们使用开源库(GPL)进行一些特定的算法和计算。稍后将由我们自己的实现替换。

我现在想知道的是,在实现您自己的库时,您可以让自己“帮助”或“激励”开源实现,以后应该由闭源应用程序使用。将一些代码段或过程直接从开源复制到您的实现中是不合法的。但是,如果不实际违反GPL条件,您可以遵循开源实施多少?如果您研究并理解源代码,基于此做自己的实现是合法的吗?

2 个答案:

答案 0 :(得分:7)

版权仅保护算法的特定实现和描述(例如学术论文),而不保护算法本身。复制粘贴显然是违规,复制粘贴然后混淆或扩展。理解算法然后创建自己的,实质上不同的实现应该没问题。

然而,该算法可能还有一项专利,这是一个不同的故事。

答案 1 :(得分:4)

与重新实施商业产品时的情况大致相同。

这通常以干净的房间风格完成 - 一个团队将彻底分析产品,生成产品规格,然后另一个团队(其成员不是来自原始团队)仅使用规范实施替换文档。

正如tdammers所说,了解算法并进行新的实施通常很好(不包括专利问题)。

一旦开始编写自己的实现,你真的应该避免引用实际的GPL代码 - 如果你参考它,你很可能最终无法想到自己的函数名称并最终使用与GPL代码中相同/相似的函数名称。虽然这在技术上可能不是一个问题,如果有人发现它,你会打开各种各样的指责,所以最好完全避免这个问题。