他山之石:开源社区最大的敌人是自己
时间:2008-10-29 来源:it168
国外著名网站《Defamation》今天发表了一篇来自著名记者Bruce Bayfield的评论文章称,自由及开源软件(以下简称FOSS)社区最大的敌人不是微软,也不是其它什么公司,而是FOSS社区自己。FOSS社区中 存在九大不利于FOSS发展的态度问题,原文如下:
我本人非常热爱自由和开源软件。原因有二:一是,在这个崇尚自由的领域,我可以写自己真正想写的东西;二是,开源社区中的人们不仅仅非常聪明,而且同时还充满激情和勇于实践。这是一个令人激动的领域,对于能在这个领域工作我感到十分幸运。
但是,有些时候FOSS社区最大的敌人可能就是它自己。某些根深蒂固的观点让FOSS社区不再像以前一样团结,不利于实现FOSS共同的目标——提供所 有权软件的开源替代产品或传播自由开源软件精神。实际上,开源社区中的人们或多或少在某些时候都有过这些态度,包括我在内,但是我们很少来公开谈论它们。 而且正是由于这个原因,这些态度正在继续影响着社区前进的步伐。
要想克服这些问题首先要承认它们存在,以下是我从自己和周围的FOSS社区人士身上总结出来的九大共同问题,仅供参考:
1、不知道与对手共同发展
无论什么时候,FOSS社区的根基都是FOSS的理想或信仰,因此存在不同观点是必然的。这一点与宗教和政治团体有些相似,对于FOSS标准,人们持有不同的观点,并为之互相争论,这并不令人吃惊。
但是,很多时候人们在争论的时候忘记了拥有一个共同的目标。有些专业或半专业的学者把攻击别的社区成员当作了自己的职业,恕我不提他们的名字,因为那样发而会免费替他们做了广告宣传。
这些学者们往往语出惊人,但是多数情况下,他们的动机往往只是为了提高自己的知名度,而完全不顾他们的言论给开源社区所带来的分裂影响。
图1、互相攻击只为私利
更糟糕的是,现在自由软件和开源软件拥护者之间也出现分裂。无可否认,两者的思想是有区别的:自由软件更关注用户的自由;而开源则更重视高品质软件。虽然存在这些区别,但是两个阵营中的成员通常为使用相同许可的相同项目而工作,而且都具有一个一致的目标。
那么为什么要紧抓住两者的区别不放呢?在这个世界中,没有一个人能找到和自己完全一样的另外一个人。
2、过分关注程序
程序是FOSS社区的一个共同兴趣,很自然,社区成员会花费大量的时间来讨论它。不过,如果你想让FOSS社区中的其它人也对你的程序感兴趣,仅仅谈论 程序本身,可能效果不大,除非对方也是一个开发者。即便是FOSS的最大特点——免费,人们可能对此也没有多大兴趣,否则的话,应该会有更多的人来使用共 享软件。
对于大多数人来说,虽然每天有很很长时间在使用计算机,但是程序本身却不是他们最大的兴趣所在。
正如自由软件基金会执行主管Peter Brown在多年前指出的那样,FOSS需要从废物回收运动的例子中学习一些东西。回收者并没有向人们解释玻璃是被融化后再进行重新利用的过程,他们只是谈论回收可以给每个人的生活带来好处。
同样,FOSS社区也不要再谈论程序或它的许可方式,而去更多的谈论一些它给消费者带来的好处,例如用户权利、隐私和言论自由等,不要仅仅局限于计算机程序本身。
3、满足于模仿其它操作系统
多年以来,FOSS一直在模仿Windows和OS X。这种模仿是不可避免的,因为FOSS起步较晚,而且在很长一段时间内,在资金和人力等方面,比专有软件竞争对手匮乏很多。
另外,如果一个开源操作系统能够满足人们已经非常熟悉的操作方式的话,就可以让人们更加轻松的从其它操作系统切换到它上。开发者也不用再浪费时间重新发明窗口中的菜单风格或者复制/粘贴的按键组合。
但是,模仿做法也有它自己的弱点。可能会导致盲目的复制,例如通过模仿人们把主菜单设计在左下角,但实际上如果把它放在左上角,可以更方便人们使用它。 另外,模仿意味着你总是至少比别人慢一步。这不利于吸引新的用户,有谁喜欢使用一个不具有最新设计和功能的操作系统呢?
事实上,在很多方面,FOSS已经追上或即将追上商业操作系统,比如桌面应用和Office应用套件。在某些方面甚至具有领先优势,例如最新的KDE4。但是多数社区成员还没有完成从模仿到创新的思想转变,而这可能会阻挡FOSS前进的步伐。
正如Ubuntu创始人Mark Shuttleworth在去年夏天所宣称的那样,仅仅赶上苹果是不够的,目标应该是超过它。
4、对新人不友善
所有社区正在变成一个圈内人的团体。FOSS社区中有很多已经存在了很多年的团体,加上它的发展是建立在成员捐献的基础之上,因此相比其它社区,它可能 对新来者显得更加封闭、孤立。一个新来者如果希望能够融入这个社区,它不仅要首先贡献一定数量的技术方面的专家意见,而且要了解很多不成文的规矩。
或许我们可以理解上述情况,但是以下做法却是不可原谅的,很多社区成员毫不掩饰对新来者的不耐烦和蔑视。在开源社区中,我看到过很多次对于新手的一些简 单的问题的回复是“RTFM(去读那些他妈的手册的简写)”,我想这种没有礼貌的回复会让新手们失去了解FOSS的兴趣。
很明显,许多社区成员还没有意识到,一般的人在碰到问题的时候,最先希望的是获得别人的帮助,而不是自己去阅读相关文档,或者说,如果能够获得合适的帮助,或许会使他建立与社区的一种联系,将来或许也会为社区做出自己的贡献。
当然,不是每一个人都适合做技术支持。但是,一段简单的指导代码,或许就能够让新来者真正加入到社区中,而不耐心或蔑视,只会让他们远离社区,这显然不符合自由和开源软件的精神。
5、开发者具有特权优势
FOSS发起于开发者,而且直到现在他们的工作依然是开源运动的中心。但是,很多人可能没 有注意到,这个社区的成长规模已经远远超过最初。尤其是在一些大型项目中,文档编写者、测试者、设计者、营销人员和管理者,都已经成为重要的贡献者。一个 FOSS软件的发布,已经成为很多具有不同技能的人共同协作的结果。
但是,尽管发生了这种改变,在很多项目中,非开发者通常只具有“二等公民”的待遇。在很多案例中,他们不能成为项目的真正成员,而且不具有表决权。如果一个非开发者提出了一个对项目有帮助的建议,多数情况下开发者的回应是,“我们期待你的代码”,否则,不予考虑。
在这种环境下,如果非开发者们失去对项目的热情,一点都不奇怪。如果失去了他们,一个现代化软件项目的很多工作都没法完成。
6、把精力都集中在憎恨微软上
整个社区对微软一直都持有怀疑态度,的确,除了微软外没有一个专有软件公司一直对FOSS持敌对态度,而且最近的频频示好又显得过于假惺惺,难以打动开 源社区的人们。但是,开源社区中的一部分人似乎将更多的精力用在对抗和反对微软上面,而忘记了计算机行业中的自由原则。
有好几方面的理由可以让我们减弱这种敌对情绪,首先,它不会有助于实现FOSS的目标,不能提高我们的效率。正如openSUSE社区负责人Joe Brockmeier所指出的,与其花费时间在憎恨微软上,还不如多对开源项目贡献一些力量。
更重要的是,这种情绪会引起开源社区之外的人的误会,认为这是开源社区的主流态度,并由此认定开源社区中的每一个人都如同一个怨妇,多疑且喜欢发牢骚。这不利于鼓励外界人士参与到FOSS社区中。
不过,放弃强烈的反微软情绪的最大理由是,它可能让社区成员忽视了其它专有软件对手。举个例子来说,人们似乎没有关心苹果的所有权化举动,实际上在很多方面,苹果已经成为FOSS的一个主要对手。
7、将商业化开发作为一个成长模式
现在一些大型FOSS项目越来越像商业化软件机构,例如,很多产品不管是否有发布新版的需要,都设置固定的版本发布计划,这已经成为很多项目的标准,其 中包括GNOME、Ubuntu和Fedora等。最近,Ubuntu的创始人还提出了在其主要项目中实施“同步发布计划”的观点,以便让发行商更轻松的 根据版本发布作出计划,不过至今为止,这个观点没有得到更多的支持。
图2、Ubuntu的同步发布计划
在某些情况下,从商业应用开发中借鉴经验的做法是非常有用的。不过,我们应该一直牢记,尽管FOSS可以采用商业化软件开发模式,但是它们的目标却是不 同的。举个例子来说,当一个项目承诺定期发布新版时,是否违背开源的“准备好了再发布,而不是搞定期发布”的原则?如果照此下去,质量控制问题迟早是不可 避免要发生的。
更重要的是,FOSS开发从根本上来说不同于多数商业软件开发。在很多情况下,FOSS开发者中的大部分成员是大量分散 在全球各地的志愿者,而不是一个商业化开发团队的成员。正如FOSS发展历史中所证明的,这种环境意味着它必须边发展边形成自己的工作流程。举个例子来 说,如果测试者是志愿者,你如何保证测试计划能按时按要求完成?因此,和其它很多事情一样,FOSS需要创新,而不是简单的采用“拿来主义”。
8、把市场份额作为首要目标
如果放弃了FOSS理想,或者用户并不支持它们,拥有再多的用户也没有什么意义。在为市场份额增长感到兴奋的同时,FOSS社区需要记住,自己的目标不仅仅是提供一个替代软件,而是向计算机行业推广自由开源的思想和关系。
如果人们仅仅关注获得市场份额,或许会让社区成员的数量实现增长,但是可能会在最成功的时刻却失去了最重要的东西。
9、无需实现一个完全自由的操作系统
现在离拥有一个完全非所有权操作系统的目标已经非常接近,你可能会认为开源社区中的人们会加把劲来实现这个目标。但是,根据自由软件基金会最近发布的“ 最急需完成的自由软件项目”数据来看,社区中的很多人认为没有必要实现这个最终目标。原因是他们认为,无论如何人们都要为显卡使用所有权驱动,或者要在 YouTube上使用Adobe的Flash播放器。我们已经非常接近免费的桌面系统,因此不用再考虑完成剩下的一段距离,至少其它所有项目都是可以免费 下载的。
这种认为现在情况已经足够好的看法,似乎有悖于开源软件中的追求完美的重要原则。更确切说,这意味着接受失败,放弃了提供免费替代操作系统的思想。当距离最终目标如此之近的时候,为什么要选择放弃呢?
结束语
对于上述FOSS社区中存在的态度问题,人们可能会有不同的观点。我知道,很多人会对它们有不同的看法,或反对我的观点。
不过,我的目的不仅仅是让人们关注这些问题。我的真实想法是,FOSS已经如此迅速的增长到如此大的规模,它需要花时间来审视和盘点一下自己,一些老的 意见是否依然有用,或者新的方法是否与它的核心价值所一致。在变得更大以前,开源社区需要检查和评价自己的态度。否则的话,它将面临极大的风险,即使不会 完全失败,也会给自己发展过程中带来一些不必要的障碍。