教训 从中我们可以学到什么教训?詹姆斯重申了自立门户可以变成一件好事,只要开发成果能够回归。尽管做了很多努力,Android内核的开发成果没有回归到官方内核。而且我们也不清楚内核社区提出的方案时,Android开发人员有没有参与其中。他说,也许我们应该使合并代码变得更简单。内核社区应该找到更好的办法来处理这个流程。目前的流程很容易卡在代码走查这个环节,尤其是当代码量很大的时候。 自立门户的项目也需要思考他们的流程。自立门户容易产生“非我发明”的心态(译者注:not-invented-here,指拒绝使用非自己创造的技术),导致他们不愿意公示自己的开发成果。因为发布代码去找骂,谁也不愿意。自立门户时间越长,情况就越糟,因为改正基本的设计错误(内核社区的观点:wakelocks机制就是一个错误)会更难。为防止这种错误发生,需要这些项目变得更包容,经常发布他们的代码,并向内核社区咨询意见——即使他们不打算采纳。打破壁垒,使思想能够相互交流,这很重要。 詹姆斯又谈了一点关于“许可证恐惧”,他指出GPL就是我们的惧、惑、疑(译者注:即FUD,Fear,Uncertainty,Doubt,这是一个专用名词,指向客户灌输其他竞争公司产品的负面观念)。内核社区对许可证的讨论,看起来很吓人。他们对这个问题也需要降降温。对GPL的恐惧往往是受外部利益驱使,但我们也在尽可能使他们能受益。内核社区应该主动出击,帮助大家消除这种恐惧。比如,可以帮助Android看看能不能换用GPL授权的代码。Linux基金会曾经做过一些工作,但詹姆斯认为内核社区应该提供帮助。他说,其实相较于大多数商业许可证协议,遵守GPL更容易。这一点我们必须要澄清。 在遵守GPL的问题上,我们必须澄清一些界线。比如,用户空间的代码,不算是起源于内核(译者注:这样就不需要遵守GPL)。明白了这些界线,可以帮助大家消除对GPL的恐惧。 内核社区应该更好地培养和拥抱多样化,鼓励别人单干(这可能带来重大的进步)并帮助他们回归。詹姆斯说,在这个问题上,内核社区只能说是勉强及格,还有很大改进空间。我们接受的代码,只来自于和我们有一样价值观的人。这造成的结果就是,把Android内核合并回来的难度越来越大。 公司如果想掌握项目的控制权,应该以赞成或反对的方式,而不是独自占有项目的所有权。李纳斯·托瓦兹(译者注:Linus Torvalds,Linux创始人)是一个很好的例子,他有很大的控制权,但这只是因为内核社区相信他能做出正确的判断。也就是说,社区如果信任你,那么他们很高兴交出大量控制权。这就是为什么“善良的独裁者”模式能大行其道。另一方面,如果公司通过拒人门外的手段来昭示它的控制权,或者逼贡献代码者交出版权,这必然会与开源社区交恶。 詹姆斯说,总之,对于所有牵涉其中的人来说,Android是一个两败俱伤的结果。我们所有人都必须好好想想,如何才能做得更好。我们需要找到更好的办法来鼓励和管理自立门户的项目,并消除对许可证的恐惧。自立门户的项目也应该想着要合并回去。这样,项目(比如Android)既能取得商业成功,也能在社区中取得成功。 |