我们是否应该要求开源以开放方式开发?

还没有读者喜欢这篇文章。
open source button on keyboard

Opensource.com

Roy Tennant 写了一篇有趣的文章,讨论了开源的定义,他在文章中说

“开源”应该 точно 意味着这一点,并且仅此而已——软件的源代码是开放的,从而允许其他人查看、理解,并可能修改它。软件本身的开发方式应该是术语的另一个方面,例如“开放式开发的开源”。

当然,我重新阅读了开源自由软件的定义,以便证明他是错的……但我不能。他是对的,自由软件和开源软件的定义都没有提及以开放方式开发,但正如你们中参加过我的研讨会(或读过我的书)的人所知,我不同意。

KohaCon12 Conference

一个真正的开源项目应该在各个方面都是开放的。当然包括源代码,也包括开发过程。只有真正的透明度才能最终产生成功、稳定和安全的开源产品。每当公司谈论他们为什么选择开源软件时,他们都会关注软件和软件开发过程的透明度,以及这种透明度如何增加软件的价值。

一个只有一个开发者或一个封闭的开发者群体的开源项目最终将沦为专有软件失败的牺牲品。Eric Raymond 说,“只要有足够的眼球,所有的错误都是肤浅的”——我要补充的是,如果那些众多的眼球不是一个不断变化、不断成长的社区,那么最终错误将变得与代码的其余部分无法区分。也许这有点戏剧化——但事实是,开源的附加价值好处之一是软件可以持续存在下去。然而,如果软件是由一个人或一个实体开发的,并且唯一的贡献者决定停止贡献,那么他们的软件很可能会消亡……而一个有社区支持的开源产品将永远存在下去。

Roy 还说

不幸的是,我认为“开源”一词,由于某些倡导者的近乎宗教狂热而被理解,已经使我们的术语变得更加混乱,而不是更清晰。

虽然我不认为自己是开源方面的“近乎宗教狂热者”,但我也是那些将社区和开放开发添加到开源定义中的人之一,我发现这在人们评估可用的产品时对很多人都有帮助。我总是说,一个没有活跃的开放开发社区支持的开源产品比一个有开放活跃开发的产品更有可能消失,但是如果产品现在的功能符合你的需求,那就继续使用它(事实上,我的电脑上有一些不再支持或开发的此类产品)。如果没有这个警告,人们会选择他们找到的第一个开源选项,然后向我(或他们的同事)抱怨它没有达到宣传的效果。

所以,是的,Roy 100% 正确,开源的定义绝不暗示或要求开放开发,但在我看来,确保你的开源项目以开放方式开发非常符合开源的精神(和成功)。 

最初发布于 What I learned today...,根据 Creative Commons 重新发布。

User profile image.
Nicole C. Baratta (Engard) 是红帽公司的高级内容策略师。她获得了 Drexel 大学的 MLIS 学位和 Juniata 学院的 BA 学位。Nicole 自愿担任 ChickTech Austin 的主管。Nicole 以其众多出版物而闻名,包括她的著作《Library Mashups》、《More Library Mashups》和《Practical Open Source Software for Libraries》。

2 条评论

我不确定我是否同意,至少在项目早期阶段是这样。根据我的经验,软件,像任何创造性的努力一样,并不适合“委员会设计”——也许是小团队,但不是大团体。

在后期阶段,一旦最初的核心概念凝结成初始版本,开放过程可能很有价值——设计审查、查找错误扩展、支持等等。但是,我认为早期阶段需要最多由一小队设计师集中精力。

有很多历史可以支持这一点——我所知道的最成功的开源项目(Apache、Sendmail、Linux)都是从小项目开始的,这些项目在达到基本成熟度后才开源。协议世界也是如此——例如,TCP/IP 最初是 Cerf 和 Kahn 之间的合作——RFC 流程,“粗略共识和运行代码”,接下来是多种实现。

也认为他们在早期阶段可以从闭源中获益。否则,大公司可以轻易地利用他们的想法,没有人会知道最初的开发者,他们有精神但没有钱。

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 3.0 Unported License 获得许可。
© . All rights reserved.