—— 而言之,自由软件是一种高尚的价值观,而开源软件则是一种实用主义
简而言之,自由软件是一种高尚的价值观,而开源软件则是一种实用主义。
最开始出现的是自由软件,在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