社区纠纷不断程序员何苦为难程序员

北京市中科医院好不好 http://news.39.net/bjzkhbzy/170210/5218643.html

出品

开源中国

一君

日前,因为被多人侮辱大吼,Swift之父正式退出Swift核心团队。

诸如此类的“语言暴力”、“网络暴力”事件在开源社区乃至整个IT社区屡见不鲜。多个技术社区,都出现过创始人、重要维护者、贡献者因为感觉“社区氛围糟糕”、“受到伤害”而宣布退出的现象。更有甚者,还有科技公司领导被爆出叫嚣着让80后退出IT圈。后者可粗略视为是该领导过于偏激,且是少数案例,先不做过多讨论。但是在开源圈,怎么就这样了呢?

为了回答这个问题,本文梳理了以往的一些社区纠纷事件,发现许多矛盾发生在社区实际的管理者/层,与社区贡献者、参与者之间,双方的不满大致也可以归总成几类原因。

众口难调

从大教堂的开发模式转向集市开发模式之后,技术社区存在的目的便是为了聚众人之力,让项目更好。在集市模式下,开源社区给了个人极大的自由度,所有贡献者都可以畅所欲言,发表自己的想法,为项目作出贡献。随之而来的问题,便是如何协调所有人的意见。

社区的管理模也在一定程度上决定了社区日后的争吵风险有多大。当下的开源社区管理主要分成四种模式。一是由社区主导,采用自由贡献模式,“共识”是其前提,功能开发和版本发布等重要决策以社区共识为准。二是公司主导,由公司资助社区及软件的发展,相对来说,公司会拥有更多的实权。三是BDFL仁慈的独裁者模式,这是在社区模式的基础之上,社区中有一个“独裁者”的角色存在,他对一些重要决策有最终决定权,而非依赖社区共识。四是精英治理,在社区中表现突出、贡献最大的人被任命为管理团队,决策基于投票确定。

我们常见的纠纷事件,往往可以归总为“掌权者”和“贡献者”之争,这种争议更容易出现在“仁慈的独裁者”模式的开源社区中。其他三种模式中,许多纠纷的出现也是因为实际管理团队未扮演好自己的角色。

掌权者的不满

闻名世界的大型开源项目往往是某个“天才程序员”的作品,早期的开源社区一般都是“仁慈的独裁者”模式,独裁者饱受敬仰,比如Linux社区的Linus、Ubuntu社区、Python社区。然而,天才似乎更乐于单兵作战。

对贡献不满

暴躁大佬Linus在评价那些没达到他个人标准的代码方面非常*舌。曾有网友用了此前Linus在邮件列表中公开的一段回复,直指Linus在人际沟通中态度恶劣:“这也算是一个BUG?你已经成为内核维护者多长时间了?还没有学会内核维护的第一条规则?我再也不想收到这种明显的垃圾,像白痴一样的提交……”

对于一直看不爽的Intel,Linus对其提交的代码也是口吐芬芳。年初,为了修补Spectre漏洞,Intel工程师提供了一个间接分支限制推测(indirectbranchrestrictedspeculation,IBRS)功能的补丁。Linus当时就在邮件列表中公开指出IBRS会造成系统性能大幅降低,直言该补丁“就是彻彻底底的垃圾”。

不仅仅是Linus,在崇尚“精英主义”的BSD社区,也存在明显的“鄙视链”。BSD的第一版撰写者BillJoy不愿意相信庞大的志愿贡献者者们,他曾说:“大多数人都是糟糕的程序员,让很多人盯着代码不会真正发现错误。真正的错误是由几个非常聪明的人发现的。大多数人看代码不会看到任何东西......不能期望成千上万的人做出贡献并都达到高标准。”

这种看法一直存在于BSD之后的发展中,FreeBSD深度参与者MarshallKirkMcKusick就曾表示,90%的


转载请注明:http://www.xxcyfilter.com/zyjn/zyjn/15697.html