centos 云计算 java mysql google php 程序员 nginx Python Ubuntu apache Windows shell 微软 编程 Android 开源 Firefox linux wordpress

為什麽大家都喜歡使用開源軟件?

使用開源軟件的理由很多,從實踐上到哲學上都有。

幾乎每天開源社區裏都有人在討論人們為何需要使用開源軟件。我非常贊同這個觀點。為了更進一步說清楚這個話題,我來分享一些這方面的觀點,說明開源軟件為何比相應的非開源軟件的優勢更大。

軟件 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 告訴他們的消費者:在他們不能隨意修拖拉機的商業年代裏,軟件的自由比任何時候都要重要。我看來,大多數人對於軟件的自由並不怎麽關心,直到它影響到你。想象一下這樣一個世界,你不能在你的電腦上安裝或卸載軟件。我擔心我們與這個世界的距離比多數人了解到的還要短。

關於你呢?你有一些不能沒有的開源軟件嗎?可能你不同意我的意見,並且認為開源軟件傻乎乎的,私有軟件能夠提供更好的體驗?請評論並分享你的觀點。

延伸阅读

评论