开源?自由?

最近的一个 shellshock 漏洞闹得沸沸扬扬的。开源不意味着代码一直有人维护,有人修bug。

关于这个问题知乎上也有一些讨(tu)论(cao),忍不住想贴出来。

提到开源,就想到四个月前 Richard Stallman 在浙大的报告会。报告会的主题是自由软件和自由。

Richard Matthew Stallman,GPL 协议的作者,copyleft 的倡导者,也是自由软件基金会创始人。而 RMS 倡导的自由,是道德角度的自由,他认为专利软件是不道德的。有同学提出如果没有专利软件带来的收入,软件工程师如何维生的问题,RMS 居然说 Stealing food is even better than non-free software.(难怪 RMS 的着装,生活,身体状况都不是一般人的情况…)。

毫无疑问,RMS 是一位理想主义者,甚至是一位极端理想主义者,虽然他的想法,在某种程度上,是超前而美好的。他不用手机,他的电脑只用自由软件,系统也是自己的版本,对软件有洁癖(不希望个人数据被收集,所以不使用任何社交软件)。

关于自由和开源的区别(来自 RMS 的解说)
自由软件和开源软件差不多是一样的东西,都是软件,但是两种不同的哲学。自由软件和开源软件从哲学的角度看是非常不同的,因为它们基于不同的价值观。自由软件是关于自由以及社区,是一场道德运动,这场运动要求我们尊重其他人的自由,我们不应当忍受剥夺其他人的自由,我们不能让其他人成为被殖民者,因此自由软件涉及到对错的问题。而开源软件的哲学并不涉及到对与错,它仅仅是一个实际的价值观,这种哲学认为,他们有一个开发的模式,如果你按照这个开发的模式来做的话,那么就会得到一个高质量的软件。因此这就像是一个自由软件的一个非常浮浅的一部分就是开源软件,但是这个自由软件不光是如此,看一看如何来做更好的自由软件,这一点才是非常重要的,因为从使用的角度来看的话,这些研究是可以非常有用的。但是如果自由能够给我们得来技术先进带来的好处,我觉得不会有任何的抱怨,而且我也喜欢技术含量更高的软件,这个更为重要。因此开源软件的哲学,忽视了非常重要的一个问题,也就是如果让其他人成为被殖民者的话这是错误的,我们必须阻止。从哲学层面上它们是完全不同的,但是如果这两种哲学还有一个标准,就是什么是软件可以接受的,而这两种标准是完全不一样的。有一些部分的开源软件是自由软件,但是几乎所有的自由软件都是开源的。
毕竟只是初略了解开源,了解自由软件,要我说对 RMS 的感觉,我觉得他扮演一位类似教父(或者传教士)的角色(报告会后面他居然戴起了帽子,穿起了“披风”),他也是一位有个性的人,说话很直(有时候挺容易得罪人),不修边幅(胡子老长,还在报告会当场脱鞋涂药膏…),因此有人笑称他为“活在理想中的苦行僧”。

自由软件,在我看来,有如共产主义,如果有一天共产主义都实现了,那么自由软件也一定不是问题。大概 Stallman 有生之年,自由软件运动的发展还是不能达到 Stallman 所希望的状态,不过这不能阻止他成为我们心目中的英雄。

以前,我对自由软件嗤之以鼻,认为太过于理想,仔细想想,其实人类存在在很大程度上的意义也不过是朝着理想前进,软件的自由,与推倒柏林墙,与打破”防火长城”,与其他的所有自由其实代表了同样的一种精神。

评论