对中国开源现状有些认识的人,必定会以为如今中国的开源发展正在一条“动车轨道”上,几年时间就有成百上千的开源项目进入人们的视野,特别是不少有商业背景或者有政府背景(即政府采购)更被认为是中国开源的种子选手。 每一年中国的开源软件促进会(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这样比较大的也并不太多,可是在中国开源的真个发展进程中的做用却很大,由于公司会倒,政府的政策会转向,社区不太容易撤销,特别是这种基于网络虚拟的更容易组织和完善。ide
开源生态系统说来讲去仍是回到这个开源生态系统的说法里来了,一个开源项目能够存活须要开发者、维护者、推广者、用户构成一个完整的通力配合的系统。商业项目中开发维护甚至推广都是有商业资金保障的,而政府扶持的项目则有开发维护的保障,而推广则藉由政府强大的行政方式以采购、摊派或者强制的方式来进行。可是社区项目就不同了,几乎全部参与者都在社区中,而推广凡是更是依赖项目的口碑。 不管何种方式都须要生态系统建设,从宏观上说是须要总体一个良性互动,上面举例中的一些停滞的项目大可能是开源生态系统建设的问题,大型的Linux开发版须要上游项目的完善发展,同时也须要下游PC厂商的OEM支持;手机操做系统既须要手机用户的使用,更须要普遍的设备兼容性;小型开源软件,既须要确实“挠到痒处”,同时也须要开源社区的大量支持,好比国外的不少开源项目就有很不错的社区支持,好比Firefox的社区开发支持,还有Foobar2000(一款只支持win的专业音乐播放器)发达的开发推广和用户社区。 综上,不管何种开源项目,以何种方式开发,创建一个基于社区的开源生态很是重要。对于商业支持的项目来讲,社区的开发团队和推广可以使得项目有广阔的应用前景,更有高效率低成本的宣传渠道,这些都是商业闭源项目所不具有的;对于政府扶持的项目,创建社区式的生态系统有利于增长项目更符合终端用户的须要,更重要的是避免“政府采购”产生的多种弊端。 絮絮不休了这么多,只是但愿可以让国产开源项目可以更加剧视社区建设,而不是建立了一堆开源项目,却短命夭折了。网站