为什么封闭式开源项目可能正是社区所需要的

像Go这样的开源项目因为对外部贡献者的关闭而受到抨击,但这可能与谷歌关系不大,而与最佳实践有关。我们在开源中抛出“社区”这个词,以至于我们有可能相信各种关于开源如何工作的奇怪事情。例如,开源是一种纯粹的精英管理,或者同样是错误的,它是一种民主。这两个错误都找到了Chris Siebenmann的Go语言。正如他写道,“Go是Google的语言,而不是社区的语言。”

这并不意味着其他人无法为Go做出贡献 – 他们可以 – 但这是一种单向贡献关系。正如他继续说的那样,“谷歌是这些社区贡献的守门人;它只决定Go中接受什么,不接受。”

厨师联合创始人兼前首席技术官亚当雅各布当然这么认为。虽然小心翼翼地不断言道德判断,雅各布在一系列推文中强调,尽管开源,但Go在社区参与方面并不开放:

没有人想要提供核心成员的影响力水平可以得到它。结果是,虽然决策可能是好的,但它不是社区资源。这是Go核心团队的最慈善事业。谷歌,至少。但由于没有允许其他人参与的机制,[y]关闭了机会平等。

语言本身就是开源的,这很好 – 如果他们的领导变得令人讨厌,社区总是可以分叉。但这正是重点 – 谷歌品牌的所有力量对整个社会来说都是无法实现的。这并没有错,但它确实意味着Go核心团队是一个不公正的团体 – 有权力的人将保留它。没有它的人会得到他们的慷慨。如果没有Google徽章,没有人愿意在该机构内工作。

这种思路的问题在于它没有充分重视开源中的主要优点:分叉的权利。没有什么可以阻止竞争对手分享Go并创造他们自己的Go。Go Language是Google的商标,但这并不能阻止某人分享Go并创建OpenGo。所以,是的,Siebenmann认为“Go有社区贡献但它不是社区项目是正确的。这是Google的项目。”但他没有解释为什么这一定是一个问题。

毕竟,他对Go所说的几乎所有成功的开源项目都是如此:“这里有一个普遍的感觉,Go通过拥有一个具有良好品味和对语言的一致愿景的小核心团队做得很好,没有外界声音影响的团队,他们的行动缓慢,偏向于不做出改变。“是的。

所有成功的语言都有一小部分人做出最终决定。很多人会为这个决定提供意见,但没有成功的语言 – 事实上,没有任何成功的自由软件项目 – 是民主。成功的语言关注人们想要的东西,但是我认为,根据大多数人想要的东西改变语言是一种混乱和不连贯的方法。我相信每一种成功的语言都必​​须有一个由相对较小的人共享的连贯愿景。

也许Go是不同的,因为核心提交者都适用于Google。但无论该核心团队是由公司赞助还是由来自各种公司的人组成,开源都不是一个自由的民主。正如Simon MacDonald写的那样,“防止任何开源项目的范围蔓延是其成功的关键。”一个小团队更容易管理这个问题,部分原因是他们知道如果他们对他们所接受的东西过于混乱会有什么危险,Paul Lamsey说:“核心团队不会毫不犹豫地采取新功能,正是因为他们知道他们“我将永远坚持维持它们。”

简而言之,民主不是开源方式。不幸的是,Meritocracy也不是(尽管我们不喜欢它),考虑到雅各布的观点有多么艰难(或者不可能),可以闯入项目的核心提交者团队。

不。“社区”并不意味着(或不应该意味着)接受拉动请求的不受约束的权利。它甚至不需要开源。社区意味着什么因项目(或产品)而异,并且将包括健康的用户,贡献者和提交者组合。人们无法接受他们的拉动请求并不一定意味着它是一个封闭的社区。有时候,社区为健康做的最好的事情就是保持一个小团体严密审查的贡献。

(0)
上一篇 2022年3月27日
下一篇 2022年3月27日

相关推荐