昨天在CSDN看到了一篇讨论开源的文章,引来跟贴无数,甚是激烈。向来口水战总被指为意义甚微,不过还是会有许多人耐不住寂寞,当然这其中也不乏金玉,但轻率的争辩总是多过理性的交流,因此在这样的氛围里智者也很容易因为言词过激而自乱阵脚。
仔细看了文章以及部分评论,只是我没有参与其中,那是因为我对开源的本质、背景、历史以及相关知识知之甚少,自认为不足以妄加评论。不过这并不妨碍我求知的念头,也不妨碍我试图从中汲取自认为有价值、长见识的内容。为此,我在网上与几位友人交换了意见,随后又找来了往期的《程序员》查看了几篇有关开源的文章和报道,自觉长进不少,忍不住想记诸文字。(在这里对银狐999、Jagie,!Kent表示感谢,与他们的交流让我逐步理清了思路)
针对一个问题的讨论很容易因为引申过多而偏离主题,因此,我宁愿将议题缩小在一个能够接受的可控范围内。
首先,肯定一个观点:开源作为一种现象,其存在自是有其道理的。想必多数人不会对此有异议。
其次,关于开源的动因,及其延伸议题,比如:意义,作用等等。
引述银狐的一席话:“国内的软件发展,开源可以成为很多人交流思想的一种方式。重要的不是代码开发,而是在开源开发组织中,能够有一些人的交流、讨论。这方面,我们欠缺。我们只能够在固定的公司内部讨论一些技术话题,那是远远不够的。交流的方式有很多种,论坛、文档、书籍……但是,能够扎扎实实的一点点让人投入的,也只有开源的讨论、构造、开发了。”
相信这是银狐的切身体会,我也深表赞同。这让我联想到:为了某些共同的“需求”,一群志同道合者在一起讨论交流、协作开发,并把结果在彼此间共享。每个人在付出的同时,也得到了来自整体的超过个人数倍的回馈,从而求得“小我”与“大我”的共同发展。这该是一种共赢。
再次,关于开源所引发的一些问题、争论、疑义等等。
开源得以存在的前提之一是需要有一群能够就某些观点达成共识的人,否则就如地球人与火星人的对话(有如这场争论)。一切应该建立在自由公平的原则和基础之上。引述Jagie的一番肺腑之言:“我现在利用很多开源的东西:tomcat,hibernate,cvs,jfreechart,log4j……等等,我非常尊重这些软件的作者,是他们,免去了我很多重复性的劳动。如有可能,我希望加入到他们的行列中去。我就是开源运动的坚定拥护者。我愿意自己的代码为大家所用。”
此处引来第一个问题:如果有人打破了这一平衡那又怎样呢?正如我们所见到的,存在利用开源来谋取利益和假借开源为名谋取利益的现象。也许一个GPL并不够用,而某些牟利行为到是可以经由类似LGPL、BSD这样的许可而变得名正言顺和无可厚非。另外,对于诸如基础架构性的开源软件而言,所谓的肆意剽窃,意义又有多大呢?或者能力所限者又能剽到多少呢?想必可以囫囵吞枣般抄袭过来的,多半不会是什么复杂的东西,除非只是简单的拿来主义,用用罢了。取诸开源者,能否还诸开源,也许真的只是自觉行为而已,而这种行为无关于开源大局。
如果说动因部分有关开源的论述,更多的是从非商业角度来考虑的话,那么另一个引出的问题则与利益和现实有关。Jagie用“高尚”一词来形容开源实践者们,我总觉不妥。正如很多人所怀疑的,理想主义者如何面对温饱问题呢。不得不承认,国外的开源运动远比国内成熟,就连毗邻印度在自由软件方面也已跟上了国际水准。因为,这些开源社区的成员多半有着固定职业和稳定收入,这使他们得以有暇顾及开源事业。而另一方面,某些商业公司也会鼓励员工支持开源,这当然有赖于商业利益驱使。另外,依靠自由软件赚得物质回报者也大有人在,比如JBoss的“免费软件+品牌服务”商业模式,还有一些其他的商业模式,这都和“高尚”无关。相信这也会让怀疑者们感觉到开源的现实价值,那些开源的倡导者们也不过凡人尔。还是Jagie的话:“开源作者靠做开源软件也不至于饿死,人家可以做培训,做咨询。”关于开源如何盈利,这是又一个艰涩的议题,此处不打算继续讨论,以免跑题。
不过另一个我现在依然不得其解的问题是有关开源团体如何协作开发的问题(请原谅,我还是跑题了)。像JBoss那样有数十人专业团队者自不待言,而至于Apache那样的数万人开发规模(甚或Linux),他的协作方式,至少Brian的解释(《程序员》2003年第5期)并没有解除我的疑惑。因为,正如Brooks在《人月神话》里所提到的,人越多并不代表越容易完成既定任务,沟通的成本,最主要的是某些任务具有不可分割的特性,又岂能轻松“摊派”给多人呢。
真是奇怪,最近总能看到有关开源问题的文章,这是巧合吗。最后,就以gigix最近在他的blog上所写的一段文字来结束本文:
“每个人都需要别人帮助,每个人也都有帮助别人的需要。”获得别人的帮助,是为了世俗的利益;帮助别人,是为了心灵的满足——用马斯洛的话来说,是温饱与自我实现,人类的两种不可或缺的诉求。仅仅追求心灵的满足,会因为付不起房租而痛苦;仅仅追求世俗利益,也会在面对星空时感觉一丝落寞。帮助与被帮助的张力,是Eclipse——乃至整个Open Source——社群存在的理由。