1 开源是大势所趋
随着计算机技术的发展,尤其是互联网技术和相关企业的兴起,开源软件在操作系统、编译工具链、数据库、WEB服务器、移动操作系统等各个方面已经成为主流。而且许多企业利用开源软件形成了独特的商业模式。比如谷歌的 Android 操作系统,从 2007 年开源发布第一个版本起,到今天已经发展到 4.1 版本,占据了智能手机操作系统一半以上的市场份额,谷歌也通过 Android 操作系统在移动互联网这一新兴行业中占据了领先和主导地位。再比如在服务器端广泛使用的关系型数据库 MySQL,在以开源软件和商业许可并行的模式下,得到了快速发展,并在 2008 年作价 10 亿美金由 Sun 收购(后者又在 2009 年被 Oracle 公司以 74 亿美金的高价收购)。相反,以前一直和开源软件做斗争的微软公司,却因为无法快速推出适应市场的 Windows Phone 操作系统,在移动互联网竞争中处于下风。为顺应潮流,微软也开始拥抱开源,比如向Samba项目贡献代码,放弃自己研发多年的大数据项目而选择 Hadoop为其大数据的核心等。
显然,纵观 IT 行业这二十多年的发展,开源软件从黑客的理想之国,已经形成了一股推进计算机及相关行业不停进步的巨大力量。很多人可能尚未意识到,我们使用的电脑中运行 有开源软件,手机中运行有开源软件,家里的电视也运行有开源软件,甚至小小的数码产品(如电子相框)中也运行有开源软件,尤其是互联网服务器端软件,几乎 全部是开源软件。毫不夸张地说,开源软件已经渗透到了我们日常生活的方方面面。那么,开源软件到底什么,开源软件尤其是国内的开源软件及社区的现状如何, 发展面临哪些困难和问题?
2 开源软件的基本概念
在讲述国内开源软件的发展情况之前,我们先就开源软件的一些基本概念做一些普及。
为什么会有开源软件?
广义上讲,开源软件指所有公开源代码的软件,包括某些商业软件也可能是开源的。但我们通常所说的开源软件,是狭义上的,指任何人可以通过极低的成本 (如仅仅访问互联网而无需其他额外费用)获得该软件源代码的软件,也就是其源代码向公众开放。和狭义上的开源软件相对应的,就是那些不向公众公开源代码的 软件,通常就是商业软件。
3 国内开源软件特别是河南软件市场的发展及社区现状
3.1 国内开源软件的发展简史
国内开源软件的发展大致始于 1997 年前后。那时,中国第一个(局部)互联网(CERNET)刚刚建立不久,1995 年在清华大学建立的著名水木清华 BBS 就是开源软件。自那之后,Linux 内核以及 GNU 项目中的成百上千个开源软件突然展现在国人的面前。在这之前,国内软件开发者,几乎没有人会认为获得程序的源代码是天经地义的事情(写到此处,笔者再次感 叹文化和背景的不同所带来的认知差别)。但随着带有源代码的 Linux 操作系统随着互联网以及廉价光盘的广泛传播,当你能看到这些优秀的软件是如何设计和编写出来的的时候,我相信,大部分程序开发者都会和笔者一样——那心情 岂止是“激动”两个字可以形容的?
在这样的背景下,中国也出现了一些开源软件。最初由国人开发的开源软件,主要解决的是 Linux 系统的汉化问题,流传最为广泛的应该是可以显示和输入中文的伪终端应用程序 CCE。
3.2 国内开源软件的特点和问题
但国内开源软件也存在很多问题,如缺乏重量级软件,缺乏持续维护和更新,质量一般,用户不多等等。另外,如开源中国创始人所言,国人所开发的这些开源软件,和国际主流开源软件脱节严重,绝大多数的状态是单打独斗。
比如淘宝主导或参与的开源软件,大多数和互联网服务器后台、云计算相关,这些项目的主要用户是淘宝自己。因为门户之见,这些软件很难被其他的互联网 企业所使用,大家不停地“造轮子”而忽视了开源软件发展必须具备的“共享”、“协作”之精神。当然,这种情况正在改变,比如上面提到的淘宝 TFS 系统已被其他互联网企业使用,ucore 项目也得到了诸多国内、国外大学积极响应和支持。
笔者希望国内的开源软件作者能够和国际主流的开源软件步伐保持一致,摒弃门户之见,要么加入国际化的开源软件,要么将自己主持的开源软件逐步国际化。这样,我们的开源软件才能得到源源不断的前进动力,也才能在国际化舞台上扮演更加重要的角色。
4 开源软件如何盈利
在高物价、高房价的今天,大部分人对此问题的第一反应是:“我就一刚解决温饱的码农,我开源,谁养我?”这问题,和我们在十年前推广开源软件理念时 遇到的问题几乎一样。但其实,这话已经大大落后于时代了!我们不仅仅可以通过使用其他人的开源软件赚钱,还可以通过开源自己的软件来赚钱。
4.1 别人靠开源软件如何赚钱?
在证明上述论点之前,我们先看看别人是如何利用开源软件赚钱的。靠开源软件赚钱的方式(经过验证的)无外乎有如下几种:
1. 双许可证模式。即在采取严格的开源软件许可证的同时(通常选择 GPL),给商业用户提供非 GPL 许可方式。这本质上是一种贩卖软件许可的行为,但开源软件带给开发者一个很大的好处,即传播迅速,快速迭代。笔者主持的 MiniGUI 项目就采用这种模式,在过去的五年当中,获得了几千万元的软件许可收费。当然,使用这个模式最成功的当属MySQL。
2. 基础软件采用宽松许可证,同时向基础软件的商业用户贩卖增值服务或者增强组件、开发工具等的许可。这种模式可用于类似 RT-Thread 这类的基础性软件上,RT-Thread 本身可以是开源且可无偿商用的,但其上的各种增值组件,如网络、文件系统、图形系统等,可以是商业软件。国外采用这种模式的以各类 CMS 系统为主。比如 Drupal 和 Concrete 系统,其基本系统是开源且免费的,但其上的许多插件、主题、模版等是收费的。有兴趣的读者可访问 http://www.concrete5.org 网站,其中还有“Marketplace(市场)”频道。
3. 混合模式,既贩卖工具等软件的许可,同时还向用户提供付费服务的模式。比如 Ubuntu Linux 发行版。
4. 成为平台型软件,并承载自己的互联网业务。这种模式在大型互联网企业中应用广泛。比如谷歌开发并开源 Chrome 浏览器,短短几年抢占了微软的很多市场份额,通过在 Chrome 中默认使用谷歌搜索引擎而获得极大的收入;再比如谷歌开源Android,一方面为了遏制苹果 iOS 的增长势头,一方面通过预置 Google 搜索而获得了大量来自移动互联网的流量收入。
显然,有了先驱们的成功案例,作为开源软件参与者,不论是企业还是个人,都可能名利双收。
4.2 IT 企业为何要参与开源软件?
IT 行业中的企业,即使是销售硬件产品的企业,也在不停地开发各种软件,同时也大量使用各种开源软件。对这类企业,开源自己开发的软件其动力是什么?
作为企业,参与或者主导一个开源软件,其最为明显的动力应该是上述的第四个商业模式,即打造一个平台型软件。但是,就中国IT 企业来讲,笔者尚未看到有此种实力,或者此种抱负的企业存在,毕竟,打造一个平台需要长期的投入,一般情况需要五年或者更长的时间。貌似中国没有一个企业 有这个耐心来投入五年这么长的时间在一个软件上。
那么为什么企业还要参与到开源软件的开发中?笔者认为,谋不了大利就谋点小利,企业主导或参与开源软件,至少有如下几个好处:
· 提高企业的美誉度。在利用开源软件的同时,也参与到开源软件当中,企业的美誉度会得到很大的提升。
· 员工更有激情。因为自己的作品能够公之于众,虽然著作权本质上属于企业,但作为实际的编码者,可以通过开源自己的作品来获得额外的成就感和满足感。这对于稳定开发团队、提高开发人员的积极性会有很大的帮助。
当然,也许过不了几年,中国也能出现实践第四种商业模式的大型 IT 企业,让我们拭目以待吧!