今天在园子里看到了一篇有意思的文章,大意是反对开源软件,认为这会损害程序员的利益,破坏整个行业。并表示,自己的一个软件成品,就不开源了,不做损人不利己的事情。
先不去谈开源会对软件行业带来什么影响。软件本身就是个邪恶的东西,绝大多数商业软件都是为了提高工作效率的,提高工作效率即意味着会有很多人因此而丢掉饭碗。在行业软件、企业软件领域最为突出。一套系统的部署就意味着N多人员的闲置,继而被精简,这也是这类软件在中国不好推行的原因之一,因为中国人力成本低,裁员有处罚,扩招有奖励。
既然软件是邪恶的,我们为什么还要做软件呢?开发软件岂不也是损人利己的事情?
因为这是社会发展的趋势。更多的事情由机器完成,短期内看,会造成很多人的失业。但从大方向来看,这能提高生产效率,增加国民生产总值,最终是每个人都能受益。同样的,开源和免费的软件短期内看,会造成一部分人利益的损失,但从长远来看,这能推动软件行业的发展,使得软件的开发效率提高,带来更多的产值,从而使得整个行业都受益。
实际上我们已经是这个故事中的受益者。正是由于软件行业有着众多的免费、共享的发明和技术,我们才能坐在这里,写写代码,赚点钱糊口。试想想,如果没有编译器,没有程序设计语言,没有便宜的计算机,没有功能全面的操作系统,没有统一的网络通信协议,我们能开发什么?开发出来的东西能做什么?而软件行业又是否能容纳这么多糊口的人呢?恐怕所谓的软件行业仅存在于少数几个贝尔实验室吧。
事实上要达到那篇文章作者所述的破坏软件行业的目的,根本就用不着开源,因为一个免费的东西足以砸掉很多人的饭碗。开源的目的不在于免费。中国的知识产权保护和法律精神并不完善,事实上很多开源软件都有禁止用于商业用途的条款,即意味着如果你要用这套代码牟取商业利益,是违法的。
开源的目的在于知识共享,开源不过是把全世界当作一个开发团队,让所有认识的,不认识的人都能参与到同一个项目的开发中来。显然,在公司内部开发团队中,是没有封闭源代码一说吧。如果将源代码封闭起来,又怎么共同开发呢?
开放源代码同样是降低重复劳动最好的一种方式,无论我们有多少种方法对已经编译好的东西进行修改和扩展,都不如直接查阅和修改源代码来的简单。
不可否认,在中国有着很多的拿来主义,将开源的东西视为免费的,随意使用他人的劳动成果而完全忽视许可协议。对待开源的项目,完全没有任何参与的计划,只是打算拿来改改,糊弄老板,骗点小钱。这一部分人也造成了中国软件行业整体的低迷,降低了行业收入水平。但这并不是开源的问题,大浪淘沙,随着软件行业的发展,这类型的“软件人才”终究会被淘汰,将来软件的要求会越来越高,所谓的权限管理、数据访问、工作流引擎等等通用模块,不是开源就会免费。但开源不等于免费,免费也不等于无利可图。。。