为什么使用开源软件?
使用开源软件的理由很多,从实践上到哲学上都有。
几乎每天开源社区里都有人在讨论人们为何需要使用开源软件。我非常赞同这个观点。为了更进一步说清楚这个话题,我来分享一些这方面的观点,说明开源软件为何比相应的非开源软件的优势更大。
软件 vs 操作系统
你是否知道,几乎所有的人运行软件都是为了软件能让他们完成某项特定的任务,而不是由于这个软件运行在某个操作系统之上?移动用户可能是他们所选平台的死忠粉丝,而对于桌面用户,则会选择他们最熟悉的。
我知道的一些 Mac 用户之所以用 OS X 主要是看重那些好的软件和用户体验。当被问及如果其他平台也有同样好的软件,用户体验也很好,是否原因迁移时,他们一般会说没问题,只要迁移成本低于一台 Mac。同样的回答也能从 Windows 的游戏用户那里听到,他们只是为了游戏而选择的 Windows,而非平台本身。
当然并不是说所有人都是这样,那样的想法也不对。我的观点是,有足够多的人是由于某个非开源软件能够帮助他完成某项工作而选择这个软件的,而不是由于软件所依赖的操作系统。在这个前提下,我相信这其中有很多人通过比较开源软件与他们正在用的非开源软件,能够从中受益。
选择开源软件的实践理性
一些 IT 相关的人和更多的技术型的电脑爱好者都认为开源软件安全程度更低一些,他们认为这是由其开放的特性决定的。同样,他们还认为开源软件的可靠度也会低一些,因为背后缺乏像微软、Apple、Adobe 这样的大公司的支持。
我却并不这么认为。我相信开源软件有着更高的安全性和灵活度,因为它们没有什么可以隐藏。任何时候,都可以通过查看源代码来对软件的工作流程进行审核,你也可以为软件开发提供帮助,或者还可以从内部研究程序是如何工作的。要说所有的开源软件都是 100% 安全的,可以做到坚不可摧,那我肯定是在说谎。很显然没有软件是完全安全的,这也是为什么软件都强调及时安装更新和补丁。
再进一步看看更新的问题,非开源软件停止开发之后,更新也随之停止的情况也挺常见。对于开源软件,有兴趣的成员还可以 fork 或者继承代码,继续发布软件的更新。Geary email 程序就是这方面的很好的一个例子。当 Yorba 关门并停止对 Geary 的支持之后,GNOME 基金会将其接管并进行托管。 GNOME 同样还负责其他一些方面的处理,包括 IRC 聊天、邮件列表、代码贡献者的提交等功能的开发和维护。
使用开源软件的另一个重要原因是避免软件厂商的强制更新。例如,假设你使用了一个非开源的软件,某天厂家发布了一个新的版本,并且解释说老版本的文件格式在新版的软件上将不再被支持。这意味着,如果你在不同的电脑上安装了不同版本的这款软件,它们之间由于兼容性是没法交换文件的。软件商的目的就是让你在所有的电脑上都运行相同版本的软件。
如果使用的是开源软件,那么文件的老格式就会在软件的不同版本保留,或者是新版软件会支持老格式的文件的导入。Microsoft Office 的文档就是一个很好的例子。LibreOffice 现在虽然支持 docx 格式,但是还是会有些格式化和兼容性方面的有些问题,因为这是一个 Miscrosoft 私有的文档标准。LibreOffice 对 ODF 格式的支持上,与 Word 2007 及更高版本都是完全兼容的,因为这是一个开发的文档标准。所以支持这样的标准格式是没有任何问题的。但是 docx 却不是这样。
最后一个考虑对于那些需要依赖软件支持的公司很重要。非开源软件的支持,意味着需要从软件厂商获取服务。如果厂商停止对该软件的支持,那你就没有办法了。但是即使是他们还继续提供支持,恐怕你的体验也不会太好。是的,为什么他们需要对此热心呢?你需要获得支持的时候,反正你不得不去找他们。
在开源世界,尤其是企业应用应用领域,有丰富的开源支持公司提供帮助。很多开源项目提供商业的技术支持。并且,如果一个项目没有此类支持服务,你通常可以找到一家独立的公司,为大量的开源应用提供付费支持服务。很多时候,这些独立的技术支持公司本身就是那些开源软件认证程序的一部分。例如,包括从 Linux 认证到 LibreOffice 认证。
开源软件的哲学理由
除了使用开源软件的实用理由,还有一个哲学上的理由。自由从大脑里第一个蹦了出来。开源软件采用协议允许你保存代码并使之变得更好。这里,你可以自由的使用并在开源社区分享你的修改。真是这种存储代码的自由使开源软件受到了如此的欢迎。
GPL是最流行的开源授权协议之一,由自由软件基金会发布,并被目前众多著名开源软件采用。GPL最棒的就是它鼓励对代码改进的分享。这使得开源社区可以合作排除bug和发布必要的修补。
对于私有软件,甚至是免费软件都有其价格。免费软件并不鼓励其用户提交改进。首先,你并不知道代码是干什么的,或者其是否安全可靠。第二,你不能看到它在界面背后是怎样工作的。所以就算你有能力进行bug修复,你也不能直接提交贡献。免费软件的其它问题就是无尽的提示,残缺的功能或可能捆绑有恶意软件。
使用开源软件最大的原因之一可能就是控制。每天,我都能在不同的论坛上读到这样的故事:一个私有软件没有经过允许就自动升级了。Windows 10 就是一个漠视用户的典型例子。另一个例子就是试图破解私有游戏或软件的产品密钥。如果DRM因为某种原因失效,那么受影响的会是用户——而不是开发软件的公司。开源软件不依赖产品密钥或其他用户认证手段,以便于在本地运行软件。开源使得用户的软件是完全自由的。
我想说的最后一件事是成本。开源软件设计之初就是让所有人都能使用它,不管贫穷或富有。身无分文同样可以享有开源软件,甚至是他们不能贡献一点儿捐款。虽然绝大多数开源软件都依赖于捐款或销售服务,但是获得软件并不需要支付固定的费用。
开源软件提供真正的所有权
生活在像 John Deere 告诉他们的消费者:他们能对他们的拖拉机做什么和不能做什么的商业年代里,软件的自由比任何时候都要重要。我看来,大多数人对于软件的自由并不怎么关心,直到它影响到你。想象一下这样一个世界,你不能在你的电脑上安装或卸载软件。我担心我们与这个世界的距离比多数人了解到的还要短。
关于你呢?你有一些不能没有的开源软件吗?可能你不同意我的意见,并且认为开源软件傻乎乎的,私有软件能够提供更好的体验?请评论并分享你的观点。
感谢 Shutterstock 提供照片。