我非常喜欢开源代码。我想我理解开源的大部分好处。我是一名理科研究人员,我必须处理大量非开源的软件和代码(要么是专有的,要么不是公开的)。我看不出有什么好的理由,而且我可以看到,代码和使用代码的人肯定会从更公开的情况下受益(如果没有其他的,在科学上,如果必要的话可以复制您的结果是非常重要的,如果其他人无法访问您的代码,这将更加困难)。
在我走出家门开始传教之前,我想知道:有什么好的理由不公开发布非营利性代码,以及使用OSI兼容的许可证吗?
(我意识到周围有一些相似 问题,但大多数关注的是代码主要用于赚钱的情况,而我在回答中不太相关。)
澄清:通过“非营利”,我包括下游利润动机,如母公司的品牌认可和投资者的利润预期。换句话说,这个问题只涉及到没有利润动机的软件,无论什么时候都是如此。
发布于 2012-06-13 08:12:17
您需要考虑到开源您的代码可能需要额外的努力。
例如,在这篇博客文章中,Sun/Oracle描述了他们在开源代码时必须付出的努力:开源还是肮脏洗衣房?
当我们准备进入开源世界时,正在进行的许多活动之一是编写开源代码。有一些显而易见的事情需要去做。例如,我们的源代码包含了我们编写的代码和我们从其他人那里获得许可的代码的混合物。我们需要将后者和开源分离开来,只需要适当的代码片段。另一个准备活动是“清除”专有信息的代码,提及特定客户、开发人员、技术等。这一点不太明显,但请考虑以下示例: /\ \ HACK -在这里插入一个时间延迟,因为如果我们不这么做的话,愚蠢的Intertrode \ technologies帧缓冲区驱动程序会挂起系统。那里的那些家伙一定是白痴。\*虽然所有这些都可能是真的,但我们可能与Intertrode Tech有某种关系,代码中有这样的注释可能会以某种方式损害我们的业务,因此应该删除它。可以说,它一开始就不应该出现在那里,但现在是时候把它拿出来了。“擦洗”活动的另一部分是去除污秽和其他“不受欢迎”的词语.
注意,所有上述更改都必须对被认为完全可以作为封闭源代码的代码进行更改--也就是说,这完全是额外的努力。
发布于 2012-06-13 05:20:31
例如,假设您构建了一个web框架,并且您自己使用它。
作为一个非营利项目,您还没有时间专门检查每一段代码,以确定是否存在这样或那样的漏洞:
现在,通过开放源代码的项目,您可以让友好的眼睛做出贡献,但也可以让恶意的眼睛充分洞察您的工作,并且,如果他们找到了运行您的代码的服务器,那么您就消除了隐藏不完善之处的能力。
当然,这可能不适用于您正在使用的软件类型;而且像往常一样,默默无闻并不是安全方面懒惰的借口。
然而,就像我在条纹捕捉旗帜游戏中通过的两个级别中发现的那样,了解代码是查找漏洞的最简单方法之一(有时这是唯一的方法)。
发布于 2012-06-13 07:52:24
不开放源代码的一个很好的理由是,您的一些源代码可能具有版权。你不经常在网络上搜索一个问题的快速解决方案,只取你找到的代码片段吗?
嗯,这些代码可能是受版权保护的,我不知道作者是否希望在不同的许可下找到他的代码。
https://softwareengineering.stackexchange.com/questions/152654
复制相似问题