经常见社区里面就开源软件展开争执:到底什么样的软件算是开源软件?有的朋友认为必须要符合OSD(The Open Source Definition)标准的才是开源软件。有的朋友则认为只要源代码开放就可以。于是就出现了真开源和伪开源的说法,出现了各种各样的争执。开源社最近也展开了开放源代码是否就是开源软件的讨论。
其实这问题的核心不在于开源软件的定义,而在于我们少翻译了一个词,我们先来看国外的发展历史:
早期的软件在发行的时候都是有附带源代码的,比如早期的unix。Unix可以算得上比较早的Source available软件(虽然那时候还没有这个概念)。
后来比尔盖茨重新定义了商业模式,只给客户发行二进制包,不提供源代码。这是典型的商业软件(Business software)。
后来RMS看不下去了,说我们不能被某几个公司控制,于是发起了自由软件(Free software)运动。
后来有很多人觉得自由软件的哲学意义太强了,就提出了中性化的开源软件(Open source)概念。
与此同时也有很多的商业软件公司意识到给客户提供源代码也是很好的商业模式,就出现了很多的Source available的软件。比如我们的同行JIRA:),比如HTML5 GUI框架 Sciter。都可以付费得到源代码。
在西方世界里面,Free software, Open source software, Business software和Source available software的区分是非常明显的,各自的运作或者商业模式也都非常的清晰。
随着互联网的兴起,这些概念也都传到了中国,这些软件在国内也都有各自的代表。比如早期的LVS,到今天有很多的公司以开源软件来创业。商业软件自然不需赘述。但问题就出现在了Source available software这类的软件上面。这类软件在国内的典型代表是discuz。它的源代码是开放的,但从授权协议上禁止商用和二次开发。
由于Source available software在中文里面没有对应的翻译,这类软件的厂商也称自己的软件为开源软件。开源软件这个词在国内就有了两种解释,出现各种争执也就不足为奇了。 Open source 的会说你这不是开源,是伪开源。Source available的说,我源代码也开放了,你老说我伪开源啥意思呢?
怎么来解决这些分歧呢?我建议将Source available software翻译为有源软件。自由软件、开源软件、有源软件、商业软件,这样就可以和西方的四个概念分别对应,可以减少很多的口水。
这四种形式,可以分为两大类:开源软件和商业软件。自由软件肯定属于开源软件,有源软件也属于商业软件。开源软件是为了向商业友好,有源软件则是商业软件更加开放。所以开源软件和有源软件在形式上会比较接近。
还有一个概念叫做share software,中文可以翻译为共享软件。共享软件应当也属于商业软件。国内外有大量的软件采用这种方式来宣传和销售。
后来随着Github的兴起,现在有很多的软件在淡化授权。很多网友写了一段代码,你爱干啥干啥。这也一种新的现象吧。
====================================分割线================================
文章转载自 开源中国社区[http://www.oschina.net]