对中国开源现状有些认识的人,一定会觉得现在中国的开源发展正在一条“动车轨道”上,几年时间就有成百上千的开源项目进入人们的视野,特别是很多有商业背景或者有政府背景(即政府采购)更被认为是中国开源的种子选手。 每年中国的开源软件促进会(COPU)都会举办“开源中国,开源世界”的主题研讨会和相关活动,吸引国内外众多的开源开发者和相关企业。 但是同样也要看到,虽然开源项目数量众多,但是很多项目却很短命,几年时间便销声匿迹,其中有一些曾经甚是辉煌,但最终因为种种原因再也没有继续。本文力求以最通俗的方式来探讨和思考中国开源的生态环境。

数量繁多的国产开源项目

仅以开源中国网站上每天的统计数据来看,截止到2012年9月20日,总共有1254个国产开源软件,并且这个数字还在以每天3~4个数量快速增长!虽然数量上与人口来说所占比例极小,但是短时间内的飙升也确实看到中国开源的迅猛势头。 另外,特别是最近很多传统非开源企业背景的项目相继问世,比如淘宝旗下的诸多产品,百度的开源编辑器等等,这些项目多以基于Web的前台开发为主,显示出企业应用的一个方向和发展。 还有是由政府出资(政府采购)的项目,以开源的名义,比如龙芯的一些产品等。另外比如北京海淀区大力支持开源硬件等。 所有这些项目加在一起数量绝对超过1万个(而且还是最保守的估计)!如此繁多的开源项目,其生命期又是如何呢?

小众爱好还是大众口味?

国产的开源项目大致可以简单分成两类,“小众爱好型”和“大众口味型”,当然除了这两种主要类型还有一些比如商业需求的,但是数量比较少不在讨论之列。为何要如此分类,因为不同的类别直接决定了开源项目的生命期长短,当然这种分类方法往往有些问题,但是不影响分析。 小众爱好型的生命期一般比较短,随着爱好者和主要开发者的兴趣转移,这类项目基本难以为继,举个例子:Ubuntu 小熊猫Ailurus 曾经是一个和Ubuntu Tweak齐名的Linux系统修改以及个性化软件,自从支持到Ubuntu 10.10版本以后,就再也没有新的发展,也没有其他开发者继续完善了。 那么大众口味的就一定生命期很长么?其实也不一定,但是生命期还是略长于那些只是依赖于核心开发者的小众爱好型的。还是举个例子:比如星际译王(Stardict)是一个在中国开源界举足轻重的一款著名软件,几乎每个用Linux的都知道这款软件,它极其方便的辞典和翻译功能让大家非常喜欢,也有基于这个项目发展出来的其他项目(大多不知名或最终没有继续)。从各个方面来说,星际译王是绝对的是符合大众口味的。但是,随着其主力开发者的一些个人变故,这个项目现在也处于停滞状态,更因为没有建立大众化的开发者社区,而面临维护的困境。

商业支持、政府扶持还是社区支持?

那么如何才能支持和维系开源项目呢?目前主流的有三种类型,商业支持、政府扶持和社区支持。商业支持比较有名的比如Red Hat红帽,在中国比如那些淘宝的程序员开发的一些优秀的开源项目;政府扶持比较有中国特色,比如中科红旗Linux旗下的所谓“社区发行版”QomoLinux;社区支持的在国产开源项目中并不多见,比较成功的是Linux Deepin发行版,虽然其背后主要是由公司开发,但是其根基还是社区基础的。 商业支持势必以商业利益为重,一旦不再符合其商业利益发展,开源项目往往会进入处处掣肘的境地,最终往往也没有善终。国外比较典型的是Orcale收购SUN之后openOffcie最后变成了完全自由的社区版Libreoffice,国内这种情况还没明显的出现,不举例。 政府扶持作为天朝最有特色的一种开源项目,虽然数量不多,但是其产生的争议和议论却是非常多的,当然也不乏一些很有潜力的开源项目,只是由于被罩上了“政府采购”的魔咒而早早夭折,甚是可惜。另外CSIP(工业和信息化部软件与集成电路促进中心)也在促进OSS的开发和推进,这也是政府背景支持的一种。 社区支持的国产开源项目比较少,影响力像Deepin这样比较大的也并不太多,但是在中国开源的真个发展进程中的作用却很大,因为公司会倒,政府的政策会转向,社区不太容易撤销,特别是这种基于网络虚拟的更容易组织和完善。

开源生态系统

说来说去还是回到这个开源生态系统的说法里来了,一个开源项目可以存活需要开发者、维护者、推广者、用户构成一个完整的通力配合的系统。商业项目中开发维护甚至推广都是有商业资金保障的,而政府扶持的项目则有开发维护的保障,而推广则藉由政府强大的行政方式以采购、摊派或者强制的方式来进行。但是社区项目就不一样了,几乎所有参与者都在社区中,而推广凡是更是依赖项目的口碑。 无论何种方式都需要生态系统建设,从宏观上说是需要整体一个良性互动,上面举例中的一些停滞的项目大多是开源生态系统建设的问题,大型的Linux开发版需要上游项目的完善发展,同时也需要下游PC厂商的OEM支持;手机操作系统既需要手机用户的使用,更需要广泛的设备兼容性;小型开源软件,既需要确实“挠到痒处”,同时也需要开源社区的大量支持,比如国外的很多开源项目就有很不错的社区支持,比如Firefox的社区开发支持,还有Foobar2000(一款只支持win的专业音乐播放器)发达的开发推广和用户社区。 综上,无论何种开源项目,以何种方式开发,建立一个基于社区的开源生态非常重要。对于商业支持的项目来说,社区的开发团队和推广能够使得项目有广阔的应用前景,更有高效率低成本的宣传渠道,这些都是商业闭源项目所不具备的;对于政府扶持的项目,建立社区式的生态系统有利于增加项目更符合终端用户的需要,更重要的是避免“政府采购”产生的多种弊端。 絮絮叨叨了这么多,只是希望能够让国产开源项目能够更加重视社区建设,而不是创建了一堆开源项目,却短命夭折了。