问中国开源社区 谁主沉浮?
8月24号有幸参加了“2006开源中国 开源世界 暨开放标准、开放架构、开源生态系统和应用解决方案高峰论坛”。会上各位大师都发表了自己对Open Source、Free Software以及中国在这些领域发展状况的看法,很受教育。其中很多人谈到了中国在开源社区方面做的还不够,应该说很不够,并提出了各自的设想。听后收益非浅,但也不完全赞同他们的观点。经过几天的思考,写了本文,表达自己的看法,为了说明自己的观点,文中有的地方可能有偏激不妥之处,还请各位不要为难在下,同时欢迎感兴趣的朋友和我一起讨论这个话题,你可以email:afreez@sina.com 或者登陆我的Blog:http://blog.csdn.net/ganxingming/。
一 国际开源社区与中国开源社区现状
Free Software(自由软件)如果从Richard Matthew Stallman(理查德·马修·斯托曼,简称为Stallman)在1971年开发Emacs(一种文本编辑器)算起,也有快40年的历史了。当然,比较热闹的Open Source(开源)运动稍微晚了一些,如果从Eric Steven Raymond(埃里克·斯蒂芬·雷蒙,简称为Raymond)1997年写的一篇有名的文章《The Cathedral and the Bazaar》(大教堂与市集)算起,也有10年左右了。由于Free Software与Open Source有诸多相似之处,以至于现在可以认为Free Software等于Open Source。
经过几十年的风风雨雨,现在开源已经取得了巨大的发展,很多顶尖级的IT公司也是纷纷表示对她的支持,生怕错过了这班开往天堂的列车,可谓热的一塌糊涂。国外尤其是美国的开源社区确实作出了突出的贡献,开发出了许多优秀的、广为流传的开源软件,涌现出了一大批大名鼎鼎的hacker。
国内虽然说在计算机领域还与国外有相当的差距,不过,也没有坐以待毙,还是在热血青年的努力下,在20世纪90年代搭上了这班车。最早将linux引入中国的人--宫敏博士,我们应当感谢他,本人也是这次在会议中第一次听到了他的包含爱国热情的演讲,很实在。由于所有的开源软件都是开放源代码的,所以,这就给我们机遇,一个可以和全球开源运动爱好者一起赛跑的机会。
国内(这里特指中国大陆,下同)在开源软件的研究以及相关社区的建设方面,现在看来还显得很单薄,大部分还在学习吸收阶段,虽然说,在一些关键开源项目中也可以看到为数不多的国人,例如,据统计,参与linux kernel工作的就有大概10个,但是,没有算的上出色的原创性项目或者很少,同时也没有出现在开源领域能达到家喻户晓的hacker。在短短10年就想达到国际顶级水平,确实也有点强人所难了;不过,只要我们找到正确的发展道路,在短时期内(5年?10年?)就可以培养出一大批出色的hacker,当然就可以开发出全球流行的开源软件。
二 为什么中国开源社区没有发展好
这次会议上,发言的牛人们也有很多指出了其中的原因,大致有以下几点:
(1)很难在中国开源社区找到比较有价值的项目;
(2)缺乏相关基金会在资金上的大力支持;
(3)开源教育开展的还远远不够;
(4)没有出现国内的开源领军人物(宫敏博士);
尤其是前两点,被谈论的比较多。一些公司想投资却找不到很好的有商业价值的开源项目,反过来,开源社区因为没有足够的资金做支持,很难很好的发展下去,结果好象形成了一个恶性循环(因为想方设法想在开源上赚一笔,所以很容易出现了这种现象)。如果没有记错的话,演讲者中只有宫敏博士提到了关键人才问题——国内没有开源领军人物。
记得小学的课本里有画龙点睛的故事,我认为,以上所说的原因确实是阻碍中国开源社区发展的重要障碍,但,能使中国开源社区这条巨龙腾飞的,既不会是一个才大气粗的基金会,也不会是一个技术超级牛的hacker。
能真正给龙点睛的是这样一个/类人:
(1)具有深厚的计算机基础理论,能充分理解开源的真谛并在这个领域做过一些实际的工作,发自内心的,十足的开源软件的狂热者;
(2)具有一定的领导气质(潜力)和管理经验,具有很好的亲和力与凝聚力;
也就是说,这个/类人不必是个国际有名的hacker,但一定要对计算机和开源有一定的造诣,并具备足够的管理能力。
为什么这么说呢?
中国的开源社区没有发展好,是由于没有原创性的、被国际广泛认可的开源社区。那么,这个开源社区从那里来呢?让我们先来看看国外成功社区的发展模式,如下图所示:
首先是一个出色的hacker提出自己的设想,并用程序实现这个原始的模型并放置在某一社区。不久,其他感兴趣的爱好者也会参与到这个社区,发表自己的看法并不断改良这个项目;待到时机成熟时,该社区就会吸引到一群使用者同时他们中的一部分也是免费的测试者,这时,一般就出现“嗅觉”灵敏的商业“分子”为了一定的目的对该社区提供一定的资金资助,从而可以使该社区更好的发展。
那么,在国内,这种模式是否可以行的通呢,或者说,是不是国内也应该生硬的照搬这个模式呢?我认为是不行的,这个模式我们只能借鉴,不能照搬。原因很简单,正如宫敏博士所说,国内缺乏出色的hacker,还没有出现这样的领军人物。为什么国内找不到这样的领军任务?我认为根本的原因还是我们的教育环节出现了问题(这个问题实在是太大了,说不清楚),如果我们要等到“领军人物的出现”,那要到什么时候呀?写到这里,不禁想起了一个有关足球的笑话:
三个准球迷,国籍是中、日、韩,死后同时到了上帝的面前,上帝对他们说:“按照惯例你们每人可以问一个问题。”日本球迷最先问:“日本何时拿到大力神杯?”上帝说:“还要50年!”日本球迷流着眼泪离开了。韩国球迷问了同样的问题,上帝说还要100年,韩国球迷同样哭着走了。中国球迷也问上帝:“大力神何日落户中国?”上帝走上前紧紧地握住他的手,上帝哭了。
我从来都不会去怀疑中国人的智商,之所以没有出现领军人物,犹如还没有中国籍人能拿到诺贝尔奖一样(虽然说这话太俗了)。
中国开源的前途是光明的,但是我们还没有看到;中国开源的道路是曲折的,我们还没有走完!
非常之时必待非常之人!
这个非常之人就要去解决这个问题,他要带领大家一起建设中国开源社区。我认为这个非常之人就是上面提到的“点睛”之人,他会怎样引领大家呢?
三 中国开源社区应当如何发展
开源运动这趟时髦的列车不会在车站等待我们国内领军人物的到来,我们如何才能享受到它给我们带来的便利呢?既然我们不能坐等领军人物的到来,那么我们就要想出相应的策略。
从第一部分知道,国内现在不是没有参与者,在国际开源社区中是可以发现国人的足迹的,他们的技术水平是不能被小看的,国内现在是没有技术领军者。做技术的可能会经常埋怨:“要是中国也有Stallman或者Linus或者Raymond,我一定会跟他干”!这里面其实引申着一种理念:个人英雄主义。“宁为鸡头,不为凤尾”,“一个人是条龙,多个人变成虫”,这是国人的老毛病了。我们常常太注重个人的作用,而忽略了团队的潜力。
三个臭皮匠,顶个诸葛亮!
我们现在就要找到这样一个非常之人,他可以团结一部分活跃在国际开源界的技术人才,让这些技术人才可以经常坐在一起,群策群力,首先进行相互交流,而后在一起拟订相关的开源社区,并一起来把这个雏形给建造起来;他要眼观六路,耳听八方,四处求财,用以给这些技术人才提供物资保障;他还要不厌其烦的拜会国家相关领导,以努力寻求国家政策的支持。同时,他要精力充沛,需要他做的事情太多了,因而要年轻(30岁左右?),Raymond在27岁左右完成了他的第一个开源项目,Linus在22岁时发布了linux,Stallman在31岁时创建了GNU项目……
下面先给出一个本文设想的大致的发展模式图:
中国开源社区的发展“afreez模式”示意图
为了区别,这里把这种模式称为“afreez模式”(我的呢称为afreez,看出我的虚荣心了吧^_^)。本文的观点也可以理解为,中国开源社区要想在世界的开源运动中取得属于自己的一片领地,目前缺的关键人物不是大将,而是可以指挥将士的军师。我们的队伍里可能找不到可以取胜的名将,但我们可以用几个甚至几十个小将去赢得自己的地盘。
还有一个问题,我们也忽略不了,而且是一个很大的问题。我们现在和国际社区相比还差很多,我们在发展的同时,别人也没有停止发展,我们怎么尽快赶上他们呢?
笨鸟勤飞!
Raymond曾经在《The Cathedral and the Bazaar》(大教堂与市集)中论述了Free Software的发展模式,分析了Bazaar开发模式成功的原因。我们如果也完全按照Bazaar开发模式来做的话,我看赶上国际水平是有问题的。为了缩短中国和国际在开源领域的差距,本文认为可以在开始的时候,采用Cathedral 和 the Bazaar两种模式的综合题,也就是说,首先,让这些国内出色的“自由人”成为专业级的“自由人”,这里暂时称为“专业自由人”。也就是说,不是让这些国内的hacker在业余时间工作,而是让他们全职做,一心一意的做中国的开源社区。Raymond在另一篇名为《Homesteading the Noosphere》(有人翻译成:开拓智域)的文章中也提及,人们只有在解决了生存问题之后,名望才成了驱动的目标,才会去做一些感兴趣的可以赢得名望的事情。接下来,您可能马上会问,谁会帮他们解决生存问题,也就是薪水问题呢?估计这只能依靠一些基金会或者政府支持了,这个就是“非常之人”的工作了。
四 中国开源社区的领军者与主力军
一根筷子轻轻被折断,十双筷子牢牢抱成团,中国开源社区的领军者就是把筷子捆牢固的绳子,他的首要任务不是要去做一根比别人强的筷子,而是想方设法把筷子捆牢。
中国开源社区的主力军是活跃在国际国内各大开源社区的出色的“能工巧匠”以及国内无数热血的开源爱好者,他们可以是最好的测试人员。
结论
简单说,发展中国的开源社区,关键要做到:
(1) 找到这个“非常”之人,去完成这个“非常之事”;
(2) 打造一批“职业自由人”;
成功开源社区的发展模式示意图