为什么大家都喜欢使用开源软件?

使用开源软件的理由很多,从实践上到哲学上都有。

几乎每天开源社区里都有人在讨论人们为何需要使用开源软件。我非常赞同这个观点。为了更进一步说清楚这个话题,我来分享一些这方面的观点,说明开源软件为何比相应的非开源软件的优势更大。

软件 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 告诉他们的消费者:在他们不能随意修拖拉机的商业年代里,软件的自由比任何时候都要重要。我看来,大多数人对于软件的自由并不怎么关心,直到它影响到你。想象一下这样一个世界,你不能在你的电脑上安装或卸载软件。我担心我们与这个世界的距离比多数人了解到的还要短。

关于你呢?你有一些不能没有的开源软件吗?可能你不同意我的意见,并且认为开源软件傻乎乎的,私有软件能够提供更好的体验?请评论并分享你的观点。

作者:Matt Hartley

来源:51CTO

时间: 2024-11-05 14:42:28

为什么大家都喜欢使用开源软件?的相关文章

它们养活了一票国产软件!这些开源软件你知道吗?

现在各种国产软件已经牢牢占据了国内市场,无论是在浏览器.下载软件.压缩软件还是视频播放器等领域,都可以看到国产软件活跃的身影.诚然,国产软件在很多方面体验都不错,但之所以它们这么强,很大程度上是因为在核心技术方面,借用了相当多来自开源软件的技术.大家对国产软件都相当了解,但对于国产软件背后的开源软件,又知道多少?今天,就一起来谈谈国产软件背后的开源软件吧. 养活了一票国产浏览器:Chromium 国内有很多"极速浏览器",所使用的是Chrome同样的引擎,这点大家都相当了解.不过,对于

Facebook、微信团队、Twitter、微软开源软件列表一览

  编者按:本文来自微信公众号"InfoQ"(ID:infoqchina),编辑小智:36氪经授权发布. 对于为什么要发布开源项目,Facebook开源项目负责人曾经解释过:一是开源能够帮助他人更快地开发软件,促进世界创新,主要是社会价值层面的考虑.二是开源能够倒逼Facebook的工程师写出更好的代码.三是开源能够更有效利用社区的力量,帮助Facebook一起解决难题.开源,让世界更美好,不是吗? Facebook开源软件列表 从Facebook的GitHub账户中可以看到,Face

开源软件的时代来临

在将来的五年中,有一半的IT软件将是开源软件.开源软件引领这云计算,大数据,移动互联网和企业移动时代的发展.在调查中,MichaelSkok(NorthBridgeVenturePartners合伙人)表示根据目前移动应用和云计算应用的部署情况来看,我们正在进入一个令人激动的开源创新时代.这不仅仅是说开源软件的创新会更快,更是意味着这些软件可以在云端快速的部署,并且作为一项服务被使用. 其他接受调查的人表示,软件的质量是他们选择开源软件的最重要的三个原因之一.他们同时认为软件的成熟度也同样重要.

2013年应该关注的10个开源软件

  本列表来自黑鸭子软件的"年度新人"奖,该奖项主要关注 JavaScript 和移动方面. 黑鸭子在周三发布了其 "2012 Open Source Rookies of the Year" ,该列表中特别指出了 10 个在 2013 年值得关注的开源软件. 这些软件包括: 1. Ansible Ansible 提供一种最简单的方式用于发布.管理和编排计算机系统的工具,你可在数分钟内搞定. Ansible 是一个模型驱动的配置管理器,支持多节点发布.远程任务执行.

.NET 将推动开源软件的发展 justleon(原作)

NET 将推动开源软件的发展    justleon(原作)         在过去的时间里,基于Windows的开源软件物数量实在太少了.在网上查找一些开发相关的网站,内容也不外乎抄来抄去那几篇怎么做三角的Button啊,怎么做不规则的窗体啊,怎么把程序放到右下角的托盘中啊.当然不是Windows的程序员就是这种水平,当然也不是Windows程序员不团结,搞不出一个开源软件.      在Windows上的开源项目的阻力来源于:1.OS的封闭:MS做了太多的东东,束缚了程序员的创造力:3.开发

初创的互联网公司是使用开源软件还是自主开发

导读:开源软件具有很大的优势,这不容否认,无论是技术上还是产品成熟度上,许多开源的网站程序都满足了大多数用户的需求.不过对于某些公司来说自主开发的程序可能更实用,这一起的出发点就在于公司对于自身需求的认识. 不可否认,经过几年的潜心研发,现在很多开源软件已经非常成熟,那么作为一家初创的互联网公司,我们是该使用开源软件还是自主开发呢? 我有一个技术出身的朋友,自己做了一个论坛,当做完后,在网上发现了开源的DZ,觉得自己的论坛太简单,功能和成熟程度远远不如DZ,于是非常后悔,每次讨论到开发的时候就谈

.NET将推动开源软件的发展

在过去的时间里,基于Windows的开源软件物数量实在太少了.在网上查找一些开发相关的网站,内容也不外乎抄来抄去那几篇怎么做三角的Button啊,怎么做不规则的窗体啊,怎么把程序放到右下角的托盘中啊.当然不是Windows的程序员就是这种水平,当然也不是Windows程序员不团结,搞不出一个开源软件. 在Windows上的开源项目的阻力来源于:1.OS的封闭:MS做了太多的东东,束缚了程序员的创造力:3.开发语言和工具太多太杂了,各种程序员之间无法顺利的交流.Linux方面天生没有这些桎梏,系统

基于开源软件在Azure平台建立大规模系统的最佳实践

前言 Microsoft Azure 是微软公有云的唯一解决方案.借助这一平台,用户可以以多种方式部署和发布自己的应用. 这是一个开放的平台,除了对于Windows服务器和SQL Server的支持,Microsoft Azure也支持了大量主流开源软件和框架,包括Linux, Tomcat, Java等.如何将一个基于开源软件的系统迁移到Microsoft Azure平台,并充分发挥云在弹性.敏捷性等方面的优势? 本文和读者分享一些最佳实践经验,并在文末以中国网络电视台的系统迁移作为参考案例.

Java开源软件六大帮派

Java开源软件千千万,就好像一个江湖,有势力的有背景的就结成了一个帮派,经过不断的竞争,淘汰,六大帮派脱颖而出. 丐帮 - Apache Software Foundation 在我开始学习Java的时候,Apache的Jakarta子项目还很弱小,Apache的头牌是Apache HTTPD Server(至今也还是头牌),如今已经成了江湖第一大帮.Apache势力庞大,背后有众多大厂商的支持,例如IBM资助了apache的好几个 project,Sun则和tomcat合作密切,而BEA砸下