大约 25 年前,我有幸与 David Tilbrook 共事。他是我共事过的第一个人,他清晰地阐述了协作努力中适当的软件构建规范,并将其总结在标题为 清洁耳后:软件卫生原则 的文档中。
David 在万维网出现之前就阐述了这些实践。我们当时还未生活在一个网络如此彻底地消除了时间和空间对软件共享和协作的摩擦的世界中,即使是早期的互联网也实现了这一点。
开源定义尚未被创造出来。代码托管平台也尚未建立。
世界已经进步,现在需要一种新的软件卫生。早在 2012 年 5 月,我就了解到最受欢迎的软件协作平台之一 Github 并不要求项目创建者为其软件选择许可证。2012 年 9 月 17 日,James Governor (@monkchips) 发推文 提醒了我这种疯狂的做法
现在的年轻开发者关注的是 POSS - 后开源软件。管他妈的许可证和治理,直接提交到 github 就行了
我 (@stephenrwalli) 回复
治理意味着社区,但没有许可证的随意共享会导致软件传播疾病
很快,一场热闹的讨论就开始了,@nearyd、@mmilinkov、@webmink、@dberkholz 和 @tieguy 也加入了讨论。
问题是:政府使用版权法保护软件创作。不同政府对版权法的适用方式和术语略有不同的看法。一些国家担心作者的精神权利。另一些国家则不担心。各国对公共领域的含义以及如何在软件方面应用(或不能应用)公共领域也有不同的看法。本质上,与软件法律领域的所有事物一样,这很混乱。
免责声明:现在可能是提醒读者我不是律师的好时机。
在专有软件世界中,这相对“容易”。公司声明其版权作为对其软件产品的保护。随着软件发布和协作变得普遍,我们看到了自由和开源软件许可证的兴起。作者使用这些许可证来声明其作品的共享意图和期望。如果围绕项目出现协作社区,则这些许可证通常是在社区发展到治理声明和行为准则之前,对社会契约的初步声明。
问题来了。如果您在互联网上共享软件而未使用许可证,则该软件受您的版权保护,所有权利都归您所有。您没有声明它可能如何使用,或者您现在或将来会同意什么。如果您在像 Github 这样的随意网站上共享,鼓励 fork,并且您没有做出这样的共享声明,并且开始接受来自其他开发人员的未经许可的更改请求,那么您将共同创建一个版权烂摊子,最终会伤害使用您的软件的人。
由于不在乎,或者天真地认为这无关紧要,因为您认为“人们可以用我的软件做任何他们想做的事情”,或者更糟糕的是在您自己的手段中使用他人的未许可软件,您最终会达到一个阻碍您的软件增长的程度。
这不一定意味着您正在制造一个出处混乱,其中“肮脏”的知识产权会渗入其中(尽管我确信一些公司会试图挑起这种恐惧来向您推销东西,或者更糟糕的是向其他人推销东西以“保护他们”免受您的软件侵害)。您很可能会创造一种“软件传播疾病”,但您肯定在做的是限制您项目的增长。
专业开发人员对软件版权有一定的工作理解。我所说的专业人员是指比您知识渊博的开发人员,他们可以通过贡献使您的项目变得更好。当他们看到您的软件池中没有许可证时,如果您幸运的话,他们会要求您声明一个许可证,以便他们知道是否要采用和贡献。如果您不那么幸运,那么他们只会离开,您将失去他们可能为您的项目带来的任何贡献。
我不是在谈论会加入您的项目并留下的伟大的知识渊博的开发人员。如果您幸运的话,您会吸引一些比您更了解您所在领域的人,并与您分享他们的知识。这最终是一个良好运行的开源项目的经济实力。集体的力量让我们变得更好。我也不是在谈论当您构建大型社区时可能需要做的事情。
我只是在谈论分享您的软件才华。因为这就是您在 Github 这样的网站上发布的原因,对吧?这样您就可以分享和学习。如果您不添加许可证,您可能会失去有知识的参与。
因此,这里有一些保险杠贴纸标语,以帮助您记住新千年必要的软件卫生
- 没有许可证的 Github 就像没有安全套的免费性行为。
- 在互联网上实践安全的软件——使用许可证。
- 实践良好的软件卫生——为您的软件许可。
- 没有许可证就不要随意 fork。
具有宽松开源许可证的协作开发是万维网现象带来的最好的事情之一,有助于维持和发展它。明智地去做。
最初发布在 Outercurve 基金会博客。经许可重新发布。
4 条评论