Roy Tennant 写了一篇有趣的文章,讨论了开源的定义,他在文章中说
“开源”应该 точно 意味着这一点,并且仅此而已——软件的源代码是开放的,从而允许其他人查看、理解,并可能修改它。软件本身的开发方式应该是术语的另一个方面,例如“开放式开发的开源”。
当然,我重新阅读了开源和 自由软件的定义,以便证明他是错的……但我不能。他是对的,自由软件和开源软件的定义都没有提及以开放方式开发,但正如你们中参加过我的研讨会(或读过我的书)的人所知,我不同意。
一个真正的开源项目应该在各个方面都是开放的。当然包括源代码,也包括开发过程。只有真正的透明度才能最终产生成功、稳定和安全的开源产品。每当公司谈论他们为什么选择开源软件时,他们都会关注软件和软件开发过程的透明度,以及这种透明度如何增加软件的价值。
一个只有一个开发者或一个封闭的开发者群体的开源项目最终将沦为专有软件失败的牺牲品。Eric Raymond 说,“只要有足够的眼球,所有的错误都是肤浅的”——我要补充的是,如果那些众多的眼球不是一个不断变化、不断成长的社区,那么最终错误将变得与代码的其余部分无法区分。也许这有点戏剧化——但事实是,开源的附加价值好处之一是软件可以持续存在下去。然而,如果软件是由一个人或一个实体开发的,并且唯一的贡献者决定停止贡献,那么他们的软件很可能会消亡……而一个有社区支持的开源产品将永远存在下去。
Roy 还说
不幸的是,我认为“开源”一词,由于某些倡导者的近乎宗教狂热而被理解,已经使我们的术语变得更加混乱,而不是更清晰。
虽然我不认为自己是开源方面的“近乎宗教狂热者”,但我也是那些将社区和开放开发添加到开源定义中的人之一,我发现这在人们评估可用的产品时对很多人都有帮助。我总是说,一个没有活跃的开放开发社区支持的开源产品比一个有开放活跃开发的产品更有可能消失,但是如果产品现在的功能符合你的需求,那就继续使用它(事实上,我的电脑上有一些不再支持或开发的此类产品)。如果没有这个警告,人们会选择他们找到的第一个开源选项,然后向我(或他们的同事)抱怨它没有达到宣传的效果。
所以,是的,Roy 100% 正确,开源的定义绝不暗示或要求开放开发,但在我看来,确保你的开源项目以开放方式开发非常符合开源的精神(和成功)。
最初发布于 What I learned today...,根据 Creative Commons 重新发布。
2 条评论