欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

开源软件在中国的使用和发展问题 博客分类: 开源 SpringCamelServiceMixCXFApache 

程序员文章站 2024-02-22 14:12:52
...

开源软件在中国的市场可谓庞大,但是开源软件的商业在中国却发展的不好。

 

上周日我参加一次SOA草根论坛 的聚会的时候和大家聊到这个问题, 感觉现在大家对在企业应用中使用开源软件是又爱又恨。 爱的是使用开源软件可以降低商业项目开发的前期成本,提高商业项目的开发效率; 恨的是开源软件对于项目开发人员是黑盒,需要花费大量的精力去研究,同时对于开源软件的日后的维护缺乏相应的支持。

 

在当天的讨论中我听到来自开源软件使用者程序员的声音:

 

1. 开源软件 vs 免费软件

在 国内大多数的公司CXO的眼中,开源软件就等于免费软件,首先我不需要支付任何版权费用, 从网上下载下来就可以直接使用, 既然源代码都能看见了,我无非就是投入几个程序员让他们好好研究研究就可以应用到我的商业产品中了。在CXO的心目中对开源软件使用过程中的投入基本上为零(反正我是要给程序员开工资的), 而在开源软件使用过程中涉及软件许可(软件再包装), 开源软件后续版本维护的成本基本上都不在考虑之列。

 

可以说这是一个典型的中国特色, 而这个特色是由于中国的官本位思想所造成的。 很多有能力的程序员在干了几年编程工作之后为了他的职业发展需要基本上会变转向管理, 而一旦他转向管理之后,很少有时间去专研技术。这样就造成了有决策权利的管理者对于技术不那么热衷,技术对于他开说只是一个结果(你就说这个问题你能解决 不, 而不是一个漫长艰辛的磨练过程)。

 

这样开源软件使用过程中产生的一切后果都由程序员来扛了,虽然使用开源软件的程序员很想请人来做商业咨询,但是他们却很难想向公司领导开这个口,因为技术是他们在是公司领导眼中的价值之所在,公司领导会认为有源代码都有你还搞不定,这不是就说明你的能力不行吗?由于程序员的流动性比较强, 对于产品上线后的维护问题, 程序员考虑得并不是太多, 他们只是暗暗祷告别让我成为那个救火队倒霉蛋就行了。

 

爱在心里去口难开, 程序员在使用“免费软件”的同时,背负了太多的责任。

 

2. 开源社区

在当天的讨论中,我曾经问过大家一个问题, 就是大家在使用开源软过程中发现了bug会这么做?

我得到的回答是自己研究,到相关论坛上发帖子问?

我接着问还有其他什么途径吗?有没有试图和你使用的开源软件作者联系 ? 有没有在开源软件项目的网站上提交Bug 报告? 还有如果你发现了这个开源项目有问题,在抱怨这些问题时候,有没有试图去做出你自己的贡献帮助修复这些错误。

 

在 我成为Apache CXF 和 Camel 的Committer之前, 我也使用过开源软件 ACE,和大家有着很类似的经历。当时使用ACE完全是靠个人兴趣,也许是语言的问题,也许是在中国的开源项目太少了, 当时我没有一点融入到ACE开发社区的想法,遇到的问题基本上就是在国内的论坛。可能是成为Apache 开源项目的Committer之后,由于角色发生的转变, 我考虑到问题的角度不同了。

 

我发现开源项目最大的财富不是那些放弃版权等代码, 而是开放交流的开源社区。在社区中菜鸟和大牛可以平等地对话,客户与开发者直接进行交流, 这是一个程序员与程序员平等对话场所, 只要你说的有道理你的意见或者建议就能被接受。如果说开源项目中的那些代码是可交付成果, 那在开源社区中的讨论就是这些可交付成果的灵魂, 如果你在使用这些开源软件,如果你想对这些开源软件做出自己的贡献,那请加入开源项目的讨论组, 社区论坛, 在那里寻求帮助和贡献你的智慧。

 

现在让更大的程序意识到开源社区的重要性, 发展好本地的开源社区, 似乎成为了我向社区贡献代码同时,最迫切的一件事, 因为只有这样,才能让开源软件在中国走得更好。

 

3. 开源软件商业支持

 

对 于开源软件来说, 如果是它是一个使用范围很广的软件,可能需要商业支持的需求就比较小。例如Spring, 会使用Spring的人太多了, 一般在Spring使用过程中遇到的配置问题大家都能解决,这个可能和国内多从事应用软件开发的人员比较多有很大的关系。 对于他们由于他们只是使用Spring, 不需要在理解Spring内部代码基础之上进行二次开发,自然没有什么对Spring的商业支持。

 

但 对于ServiceMix, Camel,CXF 这样软件来说,由于使用范围比较狭窄, 熟悉的人员就不多, 如果想把这样的软件应用到企业集成或者是在其之上进行包装,二次开发。如果没有商业支持, 程序员们需要的投入的精力那是可想而知。 对于开源软件的商业支持, 在国内开展的不是很好, 这可能是各大软件集成公司对咨询有着很大的认识误区。 在他们眼中咨询只是大公司在售前推销自己商业产品的一种手段, 很多时候都是免费的。 当然大公司的咨询成本最后可以转嫁到销售的产品之中, 对于开源软件来说起商业支持收入的最大来源是依靠咨询和培训,以及日后的订阅服务。对于开源软件商业支持厂商来说要从本来不多的商业收入中拿出大量的资源 来进行免费的咨询服务基本上不可能的。

 

试想一下如果开源软件项目没有办法养活自己,哪还有开源软件能让你免费使用,改变这种现状是开源软件在中国发展过程中所必须解决的一个问题。

 

2011年9月18日 

回顾这些问题,简单总结如下

   苦逼程序员有使用开源软件的权利,但也应该有获取开源软件商业支持的权利。

   开源社区文化有待提高,需要本土社团的掺和。

   国内商业支持环境有待培育,国内开源企业还需要继续成长。

三年过去了,除了能看到一下继续为开源事业努力工作的人们,其他问题都还没有得到很好的解决。