开源是什么?国内的很多软件公司或研究机构对开源的热情仅限于免费的代码,而绝少深度参与开源社区的活动。我们对于开源始终是利用多,而贡献少,从国内发起的有一定影响力的开源项目如果不是完全没有,恐怕也是凤毛麟角。我们是如此的吝啬,即使对于正在使用的开源项目,也不肯轻易“浪费”任何的开发的测试的资源。我有幸两次聆听过自由软件的精神领袖级的人物 Richard Stallman 的演讲,他特别强调“Free is not free”,自由不是免费。同样地,开源是自由(Free),而不是免费(Free)。也许,大家在毫无顾忌地尽情地享用开源的免费大餐的时候,完全忘记了开源的真正力量是自由,而不是免费。
另一方面,更为重要的是,有论者认为,开源本身就是一种免费商业模式,此言不虚也。这就如同正在被互联网公司演绎得如火如荼的免费商业模式一样。比如,我们虽然并没有为每次的 Google 搜索买单,但我们的搜索行为会作为大数据的一部分最终转化为 Google 的广告收入。拥有足够多的用户才是这种商业模式得以成功的关键所在。同样地,开源项目的源代码和最终的产品都是免费的,开放的,可以被自由地而不是任意地使用。开源的商业模式包括通过基金会募捐,向用户提供威廉希尔官方网站
支持服务而收取费用,另外,许多公司在做开源项目产品化的同时也向开源直接贡献开发和测试资源,这其实也是一种资助行为。当然,正如上文所言,得到大量的免费用户的支持,这种开源商业模式才有可能取得成功。
这可能是参与开发的程序员良莠不齐,加之监管不严所致,但也并非全部如此。我还记得经常开玩笑说,OpenOffice.org 代码有些函数长得常常从这头看不到另一头。哥德尔不完全定理指出,任何一个类似于罗素和怀特海在《数学原理》中给出的数论的形式系统,无论有多强,都是不完全的,总有一个良构的 G 命题,既不能被证明是真,也不能被证明为假,所以任何形式系统都不能完全地描述数论乃至于数学的全部的性质,这当然不是十全十美的结论,但从另一方面讲,这又意味着数学真理的发现仍然有赖于数学家们创造性的聪明才智,可谓失之东隅, 收之桑榆。
当然,计算机编程也可以看做艺术,如 Donald Ervin Knuth 的名著《计算机程序设计艺术》(The Art of Computer Programming)所呈现的技巧,因此,程序的质量和算法的性能确实有上下高低之别。总之,无论是公司和个人,完全没有必要把一切东西都当做宝贝疙瘩,像祖传的武功秘籍或中药秘方那样严密的珍藏保护起来,以为这样,就可以做到我有而别人不能够有,那可就大错特错了。所以,很多情况下,对开源的贡献并不会损害公司的竞争力,相反,还会加强公司的竞争力。