国内的很多软件公司或研究机构对开源的热情仅限于免费的代码,而绝少深度参与开源社区的活动。我们对于开源始终是利用多,而贡献少,从国内发起的有一定影响力的开源项目如果不是完全没有,恐怕也是凤毛麟角。我们是如此的吝啬,即使对于正在使用的开源项目,也不肯轻易“浪费”任何的开发的测试的资源。我有幸两次聆听过自由软件的精神领袖级的人物Richard Stallman的演讲,他特别强调“Free is not free”,自由不是免费。同样地,开源是自由(Free),而不是免费(Free)。也许,大家在毫无顾忌地尽情地享用开源的免费大餐的时候,完全忘记了开源的真正力量是自由,而不是免费。
开源是什么?
简单地讲,开源包括三个方面的内涵:
首先,开源是一个项目(Project)。作为项目,为了吸引更多的有兴趣且热心的技术的和非技术的人们的参与,开源往往有其独特的灵活的的项目组织方式和开发流程,这一点和公司截然不同。当然,一般地讲,一个开源项目常常由一个或若干个公司主导,但绝对不会排斥任何它他组织、公司、以及独立开发者的参与。开源项目的管理团队大多通过民主的方式产生。
其次,开源是一个社区(Community)。作为社区,开源为开发者、测试者、捐赠者、和用户提供了一个由邮件列表、 论坛、IRC和各种会议构成的交流平台。Open Source中的Open不仅仅是开放的代码,同时也是开放的交流的平台。只要本着相互尊重的原则,技术的、开发的、测试的、使用的、管理的几乎所有的问题都可以是讨论的对象。大家一起出主意、想办法,从各个方面为开源贡献力量。
最后,开源是一个产品(Product)。很多时候,开源发布的产品难以满足用户的需求。所以,在不违反相关许可证(License)的条件下,有些公司对其加以定制,就变身为自己的产品或解决方案。当然,有些公司也会反哺开源的发展。这是一个双赢的良性循环。几乎所有的开源项目都有相关的产品发布。这样的例子可谓举不胜举。Linux的产品化就是一个最经典的例子,可以说,如果没有Linux的产品化,也不会有Linux开源的枝繁叶茂。另外的例子还有Eclipse的各种衍生产品。而OpenOffice.org的分裂和衰落也许是其产品化不够多不够好导致的。在我们这个神奇的国度,据说有一个绝顶聪明的院士,把国外的一个开源项目发挥到了极致的水平,竟以此荣获了国家自然科学一等奖,令人叹为观止,不服不行。
重要的是,开源是一个自由的世界。人们可以自由地加入或退出社区,自由地讨论各种问题,发表各种建议。开发者可以自由地学习开源的代码和技术,用户可以自由地使用开源产品。有了开放的代码,在不违背开源代码和产品的许可证的条件下,可以自由改写、删除、增加开源产品的功能。公司和组织也可以自由地利用开源的代码和技术,自由地出售开源的产品。正如上文所述,开源鼓励公司参与的产品化。人人为我,我为人人,这也许可以作为开源的自由的真谛,不过,这实在是太美好了,美好得简直让人难以置信。回到现实,自由的愿景无论多么令人向往,一个开源项目/社区的成败最终还是系于民心士气,若自由的力量仍然不能唤起人们参与的热情,那么这个开源社区/项目存在的理由和价值就大大的值得怀疑了。
(责任编辑:安博涛)