对于许多国内的软件工程师,尤其是许多PHP开发工程师来说,开源与免费的概念还是很模糊的。为什么呢,首先开源是一个从国外舶来的概念,其次,中国人不习惯这种概念。
那么到底开源是怎么回事,跟免费到底会有什么样的区别呢,phpchina负责人李明在Comsenz、《电脑报》、新浪科技、PHPChina联合举办的全国互动之旅武汉站上讲到了两者的区别。如下文:
其实早期人们有一个概念叫Free,很多大的商场里面也写Free,那叫免费。比如,我们之中某个人写了一个万年历的程序,放在网站上所有的人都可以下载,这就叫免费软件。
一个开放源代码的软件有什么不同呢?我们给大家举一个最简单的例子,大家都知道一个使用PHP时不可或缺的服务器软件Apache。这个Apache就是一个开源的软件,它遵循一个开放源代码的协议,又叫大众许可协议。虽然Apache软件是授权给大众的,但是它有一点规定,所有的人都可以使用。但是使用的时候不能去掉它的LOGO(Apache的LOGO就是一个羽毛),而且所有发表的声明必须要保留。也就是说这个大众许可协议并没有规定你要交多少钱,但是你不能否认前人的功绩。
所以说在做软件的时候,如果你做软件是免费的就直接放在网上,不收费。这样的话,张三可以拿去修改,然后拿去卖。但是如果你做的是开源软件,就需要秉承自由的思想。所谓自由的思想就是指思想是继承下来的,借鉴前人的思想,不停地把思想积累下来。因此,一个软件要想发展起来,就应该进行不断地沉淀的话,而开放源代码就是让所有的人就能够参与进来。大家一起不停地去努力,这种概念就叫做开放源代码的概念。
所以我们在讨论开源与免费的区别的时候,一个最核心的理念是,是否考虑些免费意外的事情。比如,思想的传承等等。还有一点是,开源的软件在稳定性、安全性方面的优势是非常明显的。
这里我们再举个例子,2001年的时候政府做了一个采购,当时没有采购Microsoft的。很重要的一个原因就是他们不开放源代码,因为如果一个软件不开放源代码我们看不到任何的细节,在安全性方面可能会差些。另一方面可能是因为钱,但更重要的是因为安全。比如说“神舟六号”这个令所有的中国人感到欣慰的事情,里面有一个很重要的控制台,需要有一个很稳定的系统,你可以想象下那个可能是Windows吗?很显然,不太可能。玩笑地说,如果一激动是蓝屏了,杨利伟可能就下不来了,这是非常有可能的。
这里我们再讨论下现在许多高端的应用。如果有一天,移<!>动公司告诉你说你所有的余额都没有了,你会怎么办?我想各位都没有接到过这样的电话吧。所以说,他们需要一个非常稳定的平台。这一方面有个例子,中国移<!>动就用了惠普的Linux来承载他们许多的高端应用。这个惠普的Linux就是开源的,是基于这样的一个思路来做的。
再说说我们的PHP,它之所以能够走到今天,就是因为有这种开源思想在支持。PHP社区在互联网上拥有成千上万的程序员来支持,他们都愿意做这种事情。因此,PHP在稳定性、安全性方面就得到极大程度的提高。而如果PHP采取的是免费的策略的话,我想现在它还是否存在都是一个未知数。
另外,我们要说下为什么要去做开源。如果一个人做事情既能够维持自己的生活,同时又能够帮助别人不是很好吗?有个老板就这么说过,他说他有一个想法就是做一个开源软件从而有利于国家、人民的同时,自己也有获益。因为我们开放源代码的同时,我们自己可以赚到钱的。而且从另一个角度来说,我们以前每年投入几十亿的美金去买Microsoft的软件,这个价格是否有些昂贵了,我们纳税人的钱不应该都去买这些软件的。所以为什么我们不能做一些开源的软件,比如我们在做的PHP,这是利国利民利己的好事。
我们再说下一个Linux业内很知名的人物,他早期经营一家公司,还来卖了,后来炒股又翻了二番,后来上了一次天,他就是Ubuntu的推广者。他还相信软件总有一天会不要钱。现在你们任何一个人都可以到Ubuntu得网站上面去申请光盘,全部是免费的。
最后,我们也相信软件总有一天会不要钱的。到时候我们靠什么赚钱呢?我们不能都变成雷锋啊?当然不是,我们依靠的是解决方案和服务。这是互联网以后最重要的两个盈利空间。而那个Ubuntu的老板就说他要等到那个时候。我们想不单是Ubuntu的老板,对于我们每一个中国人来说,开源软件都是一个机会。