[编 者导语]随着软件技术的不断发展,软件的开源似乎已经变成了人们追逐的字眼。无论是老牌的开源软件厂商,还是专有软件厂商,都很愿意举起开源的大旗。那么 软件真的会一下子都开源吗?而当我们探讨开源软件时,就会发现“自由软件“这个字眼。那么自由软件是指什么?它与开源软件及私有软件的关系是什么呢?为此我特别采访了自由软件的爱好者徐继哲,并感谢他用宝贵的时间回复了这次访谈。
1,您好,请先向我们的网友简单做一下自我介绍好吗?
大家好,我是徐继哲。自由软件的支持者和倡导者。自从1999年开始使用自由软件到现在,我的主要工作经历都是和自由软 件密切相关。我现在一家互联网公司工作。这主要是因为互联网和自由软件有天然的内在关系,而且互联网公司在思维上比较开放,能够理解程序员和自由软件社区 共享知识的优势。
2,现在有人在说自由软件,有人在开源软件?这两者是一个意思吗?他们之间的关系是什么?
自由软件和开源软件其目标是完全不同的。不过很多朋友经常将二者搞混,甚至很多媒体也经常犯这样的错误。现在我们简要说明一下自由软件、开源软件、专有软件分别是什么。
在计算机工业的最初,软件天生就是自由的,所以都不存在这些概念。大家互相分享源代码,就像互相分享菜谱一样,彼此能够 自由的使用软件,能够互相帮组对方解决问题。随着Bill Gates发表《致电脑爱好者的公开信》,掀起了专有软件发展的大幕,后来诞生出来的各个专有软件公司将计算机软件当成板凳一样的产品去销售,以剥夺用户 使用计算机的自由为代价,建立起了专有软件暴利的商业模式,用户不再拥有使用、学习、修改、拷贝和再发行软件的自由。用户在使用软件的时候,只有依赖某一 家公司才能解决问题。
这个时候,Richard Stallman意识到这不仅仅是一个技术问题,更是一个社会问题。于是发起了自由软件,重建自由软件社区,他发起了GNU工程,创立了自由软件基金会, 开创了copyleft思想体系,发明了GNU GPL、GNU LGPL、GNU FDL等版权,开发了emacs、gcc、gdb等大量的优秀的自由软件。越来越多的人加入了自由软件社区,自由软件开始了蓬勃发展。
到了90年代中期,随着GNU/Linux的流行,越来越多的人意识到了这里的蕴含的巨大的商业价值。由于自由软件一直 倡导的是赋予用户使用软件的自由,那么这样的概念不易被华尔街接受,所以有一部分人开始从原来的自由软件社区分裂出来,并着手解决这个问题,后来他们提出 了开源软件的概念,不再强调用户的自由,而是开始强调开放源代码(自由软件带来的自然结果)是一种好的开发模式,更容易产生高质量的软件。这样的概念迅速 流行,到现在为止,自由软件和开源软件已经是两个不同的。
3,你认为推动自由软件发展的最大动力是什么?
自由软件赋予用户如下4个自由度:
0 出于任何目的运行软件的自由;
1 学习和修改软件的自由(获得源代码是前提条件);
2 为了帮助你的邻居,将软件拷贝给他的自由;
3 为了让整合社区获益,再发行软件的自由(获得源代码是前提条件)。
4,现在许多专有软件(proprietary software)厂商都在推进开源软件,你怎么看待这个问题?
对于我们普通用户来讲,关心的是自己在使用软件时候的自由。要考察一家软件公司是否真的想做有益于用户的事情,最简单的办法就是考察他们是否赋予你 运行、学习、修改、拷贝和再发行软件的自由。有一些专有软件厂商的做法就很好,比如SUN公司。前一段时间,我们看到SUN公司采用GNU GPL做为JAVA的版权,对于自由软件社区来说,这是真正的贡献。最近和SUN公司的一位高层技术负责人交流了SUN公司对于自由软件的看法,得知他们 内部还有很多具体的计划。这样的做法是真正的、受欢迎的做法。
5,自由软件对于我们中国的软件业会起到怎么样的作用?
自由软件为我们国家提供了历史性的机遇。请注意,自由软件反对的不是商业。自由软件从一开始就将软件看成了服务,而不是产品。所以自由软件早就身体力行时下流行的SAAS的做法。
如今,自由软件在计算机工业、教育、科学、研究等领域取得了丰硕的成果。我们如何以现有的自由软件技术为基础,按照自由软件的游戏规则发挥出自己的商业模式,是非常值得探讨的。而且这里面蕴含着巨大的商业机遇。在国外,已经有很多这样的成功的公司。
经过多年的积累,我已经将自由软件和互联网很好地结合起来,探索出了一个完整的商业闭环,希望能够在今年开始实现自己的想法。
6,国外有许多成功的软件项目社区,你认为它们成功之处在哪里?
确实,在国外有很多成功的自 由软件项目和社区。他们为何能够成功,值得我们思考。举个例子,我们现在的桌面系统基本上都是微软的Windows系统,而且盗版的比例非常高。而自由软 件已经能够提供可替代的技术解决方案,在这个时候,如果我们的环境告诉我们使用盗版软件很正常,无所谓,那么就是阻碍了正确的价值观和技术的普及。另外一 个重要因素的是需要大量的、高水平的、有服务社会意愿和时间的程序员。这也是我们严重缺乏的资源。
7,作为一名普通的软件爱好者,应该如何参与到软件社区中?
在任何时候,你都可以加入某个自由软件社区,比如GNU,订阅他们的邮件列表,观察他们的CVS资源库,阅读他们的文档和源代码,然后根据自己的能力和爱好选择一个切入点,比如贡献代码,帮助撰写翻译,在当地组织用户组,组织交流和讨论等等,都是非常好的参与模式。
非常感谢!
最后我希望大家能够从科学知识、百科全书的角度理解软件的意义。软件作为人类智慧的载体,应该是自由的,这是我们思考问题的出发点。