微言码道 · 手记

趣谈自由软件与开源软件(二):自由软件与开源软件的分歧

—— 而言之,自由软件是一种高尚的价值观,而开源软件则是一种实用主义

简而言之,自由软件是一种高尚的价值观,而开源软件则是一种实用主义。

最开始出现的是自由软件,在1983年的时候,自由软件的创始人Richard Stallman就发起了GNU运行,意图打造一个完全自由的操作系统并为此而付出努力。

而开源运动则是从自由软件运行中分化出来的,在1998年的时候,自由软件阵营的一部分成员因不赞同自由软件运动的目标,从自由软件运动中分裂出来,以开源的名言开展活动。

现在,开源的理念更深入人心,为人所熟知。而自由软件的理念仍在努力奋斗中,其影响力似乎比不上开源运动。

那究竟自由软件与开源软件运动两者之中的差异有哪些,它们到底有什么分歧?

共同点

在说分歧前,先说共同点:

共同点一: 它们的重叠性非常高

其实,绝大多数大家比较熟知或常用的开源软件,其理念是同时符合自由软件的理念的。

比如浏览器中的Firefox以及Chromium(Chrome的开源版本),Linux操作系统中的相当大一部分,以及开源的数据库MariaDB,Postgres等,它们本身同时符合开源软件的理念,也符合自由软件的四个理念。

  • 自由之零:无论用户出于何种目的,必须可以按照用户意愿,自由地运行该软件。
  • 自由之一:用户可以自由的学习与修改软件,那做为这个的前提,用户是要能自由的访问到软件的源码
  • 自由之二:用户可以自由的分发软件给别人,以帮助他人
  • 自由之三:用户可以自由的分发修改后的软件版本,以使整个社区从修改中受益。

共同点二:它们都主张源码是开放的

开源软件这名称就是从源码开放这一点来的,这是它的核心主张。而自由软件的四个自由,若不能自由的获取源代码,也就无从谈起了。

所以无论是自由软件或是开源软件,其源码一定是开放并可以任意获取的。

共同点三:它们都将专有软件视为“另一边”

无论是自由软件或是开源软件,它们都拥有同一个核心的价值观:

我们与专有软件是不同的

当然,怎么个不同法,其实还是有区别的。 这点后面再说

共同点四:它们共同改变了行业的生态

我们得感谢自由软件与开源软件,它们的确改变了行业的生态。若是没有自由软件以及开源软件,如果我们的行业的生态全是由专有软件把持,很难想像今天的互联网能快速发展到如今的地步。

分歧

最大的分歧:理念与目标的差异

自由软件的理念是为用户的计算自由而战斗,用户应该能自由的使用任何计算资源,从操作系统到软件等一切。而专有软件这种是不合理的,限制了用户的自由,是不应该存在的。

而开源软件的理念是通过开放源代码,让更多的程序员参与进来的方式,使软件变得更加强大,并且通过开源的模式惠及更多用户。

所以,从上述理念上来看,就得出了我开篇的话语:

自由软件是一种高尚的价值观,而开源软件是一种实用主义

分歧二:对专有软件的立场不同

自由软件将专有软件视为敌人,是对立面。专有软件在自由软件运动中是不该存在的东西。

而开源软件运动对专有软件的立场是:不使用开源的方式,怎么可能构建出稳定可靠及惠及更多人的软件?

显而易见,两者的立场是有差异的。

而现实中,开源软件运动中有大量的专有软件公司参与,某种程度上说,开源软件与专有软件是有紧密联系的,密不可分的。

比如MySQL是开源的,但它还有个功能更强大的企业版。企业版在功能上更多更强大,而这些功能点也没有开源。类似的现象在开源的世界是其实是普遍存在的。

甚至相当一部分开源软件压根就是专有软件公司贡献的。

这种现象在自由软件运行中可能是不被接受的。

趋势

现在你应该对自由软件运动与开源软件运动有了解了,也能理解为什么开源软件发展的更好,而自由软件运动却不是特别好的原因所在了。

开源软件运动的理念,其实是对专有软件的一种有益的补充,它其实并没有反对专有软件,也不会去谈软件自由的问题,这是它迅速发展的原因所在,它与专有软件形成了良好的互动,也就是大家各有市场。

而自由软件运动则其实是一种抗争,它试图定义一种完全不同的软件生态,这种行为稍微想像下,会有多少软件商业公司支持呢?它试图颠覆当前的软件生态,重新构建一个不同的生态,这种做法的当然是举步为艰的。

我们仍然要向它们表达敬意,自由软件运动是先行者,它也实实在在的改变了我们软件的生态。

Linux还是GNU/Linux

在自由软件与开源软件中,一个非常有意思也有有争议的话题就是:

到底我们通常叫Linux服务器的这种操作系统,是该叫Linux还是该叫GNU/Linux?

而这个有意思的点在于,自由软件的创始人Richard Stallman以及Linux内核的创始人Linus Torvalds都卷入到其中。

下一篇继续聊:趣谈自由软件与开源软件(三):一个名称的争议,究竟是该叫Linux还是GNU/Linux