談自由軟體

「自由軟體真是好東西!」 我就直接開門見山不賣關子了,這篇文章就是來說服大家使用自由軟體的!

你常使用盜版軟體嗎?沒有盜版軟體就不知如何使用電腦嗎? 望著許多軟體高貴的價格讓你買不下手,不知學什麼好嗎? 自己的數位檔案必須依賴特定軟體、甚至特定版本才能正常開啟使用, 害怕有一天這軟體不再能用時,一輩子的檔案就付諸東流嗎? 想研究、學習、了解軟體到底是如何工作的,甚至喜歡寫軟體嗎? 或者只是不知道什麼是自由軟體而想要了解嗎? 如果你符合以上任一情況,你就是這篇文章的寫作對象, 我也誠摯的邀請你來了解,最好實際使用自由軟體,也許它會給你一些解答。

從我第一次認識什麼是自由軟體,就漸漸愛用這種東西。 它有些優點、有些缺點、有些與以往的認識不同的特性,對我來說可是瑕不掩瑜、物超所值。 這幾年來常常向人介紹推薦自由軟體,發現大多數的人甚至沒聽說過自由軟體,知道的人裡也對它有著不少錯誤認知, 甚至有些人因為一些誤會而不敢去使用自由軟體,平白失去了與這麼好的東西的機緣,甚為可惜! 於是就想寫一篇文章來向大眾介紹我所認識的自由軟體。 以下文章將分幾大部份進行,文章結構將儘量以要點模式,如同問答項目般的編排, 以利讀者快速跳至感興趣的主題閱讀、或是未來回頭檢索。

1 什麼是自由軟體?

在解釋什麼是自由軟體的時候,我通常喜歡拿部落格做為例子。 我們應該都看過書、也買過書,一本書的生成需要作者的智慧、出版的資源、以及銷售通路的支援, 因此讓想要閱讀書本內容的人花上一些錢來購買是非常合理的。 但不知道各位對網路上一大堆的部落格有什麼看法? 部落格的文章數量不只多,還涵蓋各種不同領域,有些甚至是非常專業的內容, 就這麼放在網路上無償的給我們觀看,不知各位有沒有想過這些作者勞心勞力圖的是什麼? 我想有些人沒想那麼多,就是喜歡分享自己的知識、經驗; 有些人可能受到利益單位的業配贊助而寫作; 有些人可能根本就是公司僱員,因此寫部落格文章是它的工作; 還有些人可能圖個名聲和知名度; 當然也有更多我沒想出來的原因…… 那麼,把文章換成程式碼,把部落格換做是網站平臺,又何嘗不是如此呢?

由部落格文章的模式可裡理解,有一些人寫了軟體,把程式碼分享給全世界,讓有需要的人可以自由使用。 自由軟體最重要的精神就是「自由」、「開放」、和「分享」原則, 所有的人不只可以自由使用軟體,還可以藉由閱讀程式碼來研究軟體的運作,甚至修改軟體來符合自己的需要, 最後再回饋自己的修改,分享給其他的人, 這就是自由軟體的概念。 軟體界的著名人物 Richard Stallman 在 1980 年代左右發起了「自由軟體運動」後, 自由軟體有了比較明確的定義。 不管實際的授權條款在細節上有什麼不同,所有的自由軟體一定提供了以下 4 個保障,否則就不能自稱為自由軟體 [1]

  1. The freedom to use the software for any prupose.
    你可以基於任何用途使用自由軟體,軟體發行人不能限制你使用軟體的目的。 因此很明顯的,任何自由軟體不會有什麼個人版、家庭版、專業版、還是企業版什麼的, 自由軟體只會有一個版本,而所有的使用者都可以使用全部的功能。

  2. The freedom to change the software to suit your needs.
    你可以自由的修改軟體來符合自己的需要。 為了能夠自由修改軟體,自由研究軟體的權利當然是必要的; 為了能夠自由的研究軟體,軟體發行商提供原始程式碼(包含所有相關文件)也成為責任。 自由軟體要求,所有的「軟體客戶」都要能夠容易的取得軟體程式碼, 並且不需要加價購買或設下其它障礙,因為提供程式碼是軟體發行商的義務!

  3. The freedom to share the software with your friends and neighbors.
    你可以自由的分享自由軟體給任何人,自由軟體不能夠為這件事情設下任何阻攔。 所以下載自由軟體後把它分享給眾親朋好友是合法的,即使你並不是軟體原作者。

  4. The freedom to share the changes you make.
    這點與上一點是一樣的,如果你對軟體做了修改,你也可以把這些修改分享給別人。 唯要注意的是,依據實際授權條款的不同,在某些條款下你對軟體做出的修改是必須要分享給你的客戶!

使用某一套自由軟體在更多的權利義務細節上還要看實際的授權條款規範如何而定, 然而這些授權條款差異所影響的都是開發人員或軟體開發商這些需要「修改或衍生程式碼」的人, 而對於通常僅「使用」軟體的一般大眾其實沒有什麼影響,所以就不再細究。 對於有興趣想要了解的人可以自行參閱相關文章 [2] [3]

做為對比,人們通常會用「商業軟體」或「專有軟體」這些名詞來指稱那些自由軟體或開源軟體以外的其它類型軟體。

簡單來說,自由軟體給了使用者極大的自由,這也是自由軟體號稱「自由」的根本原因。 不可否認自由軟體中絕大部分的所謂自由是為了軟體開發人員而設, 然而對於通常不參與軟體開發的一般大眾,自由軟體也連帶的賦與了很多在一般商業軟體上不尋常的, 在使用和分享上的自由。

1.1 都是什麼人在開發自由軟體?

其實問這個問題就和問「都是什麼人會去寫部落格」是差不多的! 不同於部落格文章通常都是一位作者寫成,自由軟體的作者通常是一大群,我們稱之為「社群」。 也許一些自由軟體的開發是由某位人士發起的、或者由某位人士原作、或者開發中由某位人士所主導, 但基於開源共享的精神,往往會有一大群人分享出自己的修改, 可能是某些問題的修正、可能是某種新功能的加入、可能是讓程式可以在某個平臺上執行的修改、 也有可能是某個既有功能的更有效率寫法等等, 大家你來我往,最後就是每個人都貢獻了軟體或大或小的一部份。 因此,我們便常用「社群開發」或「社群維護」這樣的詞來說明自由軟體的開發團隊。

這個開發團隊不同於我們所認識的公司或機關行號的嚴明組織, 自由軟體社群由散居在世界各定的軟體開發者組成,靠著電子郵件互相來往,大多數人素未謀面。 人員來去自由,個人比較有空的時候可能多負擔一些開發工作,而忙碌的時候可能就從當中抽身。 這種組織其實看起來比較像是朋友圈,我們稱這種組織叫鬆散組織。

至於開發人員也是千百種,有些人是基於喜歡分享知識、有些人喜歡與各路好漢一起工作的感覺、 有些人圖個名利或磨練的機會,還有些人是受雇於公司行號組織機關的僱員,參與某自由軟體的開發是他的工作。 雖然英雄好漢來自四面八方,但通常那種自願參與自由軟體開發的人都是佼佼者, 畢竟擁有這等能力和興趣的人才會想要在工作生活之暇來做開發軟體以利眾生的事情!

1.2 自由軟體都有哪些?

問自由軟體都有什麼軟體,就和問網路上可以免費閱覽的部落格文章都有些什麼是一樣的! 任何使用自由授權條款發行的軟體都是自由軟體, 改天你自己寫了一個軟體並以開源共享原則發行,則世界上的自由軟體就又多了一套。 因此我不可能列舉出世界上所有的自由軟體們! 不過當中有一些比較流行或知名的自由軟體,比如說 Firefox、FileZilla、PCMan、LibreOffice 等等, 可能你或你的朋友之間已經有人在使用了也說不定喔! 另外,這裡還有教育部為各種用途,特別是教育用途所推薦的自由軟體列表 [4] 可做為參考。

2 常見的誤解和疑問

2.1 我又不會寫程式,自由軟體的所謂「好處」對我有意義嗎?

自由軟體有很多好處,比如說可以研究程式碼、可以修改程式碼等等, 可是我又不是程式設計師,這些好處為我是不是和沒有是一樣的? 我又不會寫程式,怎麼可能去「修改程式以符合自己的需要」?

我想這是很多的軟體一般使用者會有的疑問。 的確,一般的使用者因為不會寫程式也不會改程式,所以好像沒有辦法直接受惠於自由軟體的開放自由; 而自由軟體對一般人的直接好處好像也只剩下使用和分享上的自由了! 這裡我提出的見解是,改程式這件事其實不需要大家都會, 只要有人去做這件事,基於共享原則,大家就能受惠!

想想,你對於一套軟體的期望,難道沒有別人和你懷有同樣的期望嗎? 對於一套軟體上的問題或錯誤,難道沒有別人遇到嗎? 對於軟體上尚不足的地方,難道沒有人也覺得不足嗎? 對於一個流行的自由軟體,其中的開發者自然也多,其實很多的問題可能一段時間後就會得到解決; 而很多期望的新功能,也許已經有一票人正在開發中也說不定! 就算你用的這套軟體比較冷門,拿著程式碼在手也不至完全無法做事,因為你不會寫程式的話,可以請會的人幫忙啊! 只要付出足夠的誘因,總是可以找到人解決你的問題; 但對於拿不到程式碼的專有軟體,除了期望並等待廠商可以優先想到你的需求以外,還能有什麼做為?

2.2 自由軟體和免費軟體是一樣的嗎?

這是一個很普遍的問題了,即便是使用英文做為母語的人也常會問出這個問題! 自由軟體「通常」可以讓你無償取得使用,而免費軟體也是如此,那麼它們之間的不同是什麼?

免費軟體其實仍是商業軟體,一切遵守商業軟體的規則和策略, 只是基於某些商業考量,「目前」軟體的發行商讓你免費使用他的軟體而已! 有幾個地方可以體現出這個不同, 首先你只擁有軟體的「使用權」,拿不到軟體程式碼,沒有研究、修改、發佈的權利。 第二是保障性,就如前所述,免費軟體就是商業軟體,目前基於商業策略考量給你免費使用, 但未來的任何時候,原來的發行公司都可以片面改變發行策略。 也就是,即使只是無償的使用權,也沒有人能夠保證你能永遠擁有!

而自由軟體給你完善的保障,即便原開發商打算改用商業授權重新發行軟體, 對於原來在自由授權下已發行的軟體仍是沿用原來的授權(由授權條款的條文內容所保障)。 在真實的案例中,一群忿忿不平的自由軟體開發者甚至會拿開源條款的程式碼直接分支出另一個自由的專案繼續開發維護下去, 比如說 DivX 和 Xvid 之間就是這樣的關係 [5]

免費軟體其實只是商業軟體當前願意讓大眾無償使用的狀態, 類似的狀況還可以在所謂「試用軟體」上找到,不過它又做出了更多在使用上的限制; 而自由軟體是完全不同的概念,它強調了使用者的自由,也就是無拘無束的自由,比較類似於人身和思想上的自由。 誤解的來源大概是來自於自由軟體(Free Software)字義上的多意問題吧! 在英文裡,人身自由、思想自由可用 free 形容,比如說「I am a free man」; 然而用來形容免費、無償的形容詞也是 free,比如說「The beer is free for you」。 因此現代開始有些人喜歡使用更加精準的 Libre 一詞來描述這個身體思想上的自由概念。

2.3 聽說自由軟體安全性差?

認為自由軟體(或開源軟體)安全性差的觀念通常是以訛傳訛造成 [6]

認為自由軟體有安全性問題的立論點通常是「因為程式碼大家都看得到,所以哪裡有弱點也容易找到!」 這個說法事實上說的很合理,對於看不到程式碼的軟體需要使用很多瞎猜的方式來找尋可能可以利用的弱點; 而開源軟體因為有程式碼可以看,程式在哪裡做了什麼事清清楚楚,從程式碼找弱點是相對方便快速得多!

但是實際上的使用經驗卻剛好相反!自由軟體的安全性表現通常遠好於封閉原始碼的商業軟體,這又是為什麼呢? 人熟能無過?只要是人寫出來具有一定複雜度的軟體就會有蟲。 然而自由軟體大家都看得到程式碼,在無數隻眼睛觀看之下,程式的問題往往很容易被挑出並處理掉; 有心人士要想在程式碼裡面偷加一些奇怪的後門,而能夠躲過大家的眼睛,也非常不容易! 反而是封閉原始碼的私有軟體,軟體的品質和安全性全仰賴開發商的努力, 問題是一間公司能夠有多少開發人員?在產品策略和用人調度之下,又有多少人能夠付出心力在持續的關注和維護安全性問題? 自由軟體的開發維護人力來自於社會大眾,想想身邊親朋好友, 就算 100 人裡面才有一個軟體工程師, 就算 100 個軟體工程師裡面才有一個高手, 就算 100 個高手裡才有一個可以在閒暇之餘參與自由軟體開發維護, 這樣算來全世界會有多少個自由軟體開發人員?又有哪間公司可以請得起這麼多人來開發維護一個產品? 並且這些人還都是高手中的高手!

最終在實際上,對於流行流通的自由軟體,軟體問題通常很快的被發現,也很快的被修補完畢, 使得實際表現上,自由軟體相比於同類的商業軟體品質更好也更安全。

2.4 聽說使用自由軟體沒有支援也沒有保障?

有些人認為使用自由軟體沒有保障,因而裹足不前,一直不願意嘗試自由軟體, 這當中又以中小企業用戶為最。

使用自由軟體沒有保障的說法來自於,自由軟體通常是由一大群鬆散的人員開發而成, 當真的遇到什麼事情的時候,找不到人可以負責! 企業軟體選用系統常要求一定的長期穩定性,而也因為沒有一個可以「負責」的人或機構, 許多中小企業便為此感到不安,怕自由軟體的開發有一天說不玩就不玩,或者想變就變、想新就新!

我的回應是,先說說個人用戶,對於大家可能常使用的商業軟體比如說 Windows 或 Office 等, 微軟有給你什麼保障了嗎?你在遇到問題的時候有打電話給微軟讓他負責過嗎? 最後還不是自己 Google 或問親朋好友來解決!

不管是個人用戶還是企業用戶,對自由軟體的任何問題其實都可以在網路上發問, 熱心的網友通常會解答你的問題,甚至多數的問題可能早有解答。 當然,沒有任何人有義務對你的問題提出解答,或是在你期望的時間內提出解答。 若你希望可以有個人真正為你負責,讓你放心的把心中的不安交給他處理的話,其實可以花錢購買商業支援。 只要你願意付錢,很多相關公司會樂於提供你對於特定自由軟體的保障, 比如說維護服務讓你可以安心的使用這套軟體,而不需去管現在 OpenOffice.org 的所有權到底是 Oracle 還是 Apache; 客製化服務可以讓你對軟體的許願成真,而不需去期望社群的人一定要在多少時間內做出這個全世界可能只有你在用的功能; 諮詢服務可以讓你在對軟體有各種疑問或操作問題時,一通電話打過去就能有人為你解答。 提供這類服務的公司很多,比較有名的就有 Red Hat 提供 RHEL 服務、Canonical 提供 Ubuntu Linux 服務、 以及臺灣的晟鑫科技提供 OxOffice 服務和企業導入服務等。

最終,要改變的只有我們腦袋裡的觀念而已。 傳統上,軟體的各種服務都是由開發商提供, 畢竟對於原始碼不開放的軟體,除了原廠大概也沒有別人可以提供什麼有效的服務; 而自由軟體的服務單位往往不是原開發單位,甚至有時候對於同樣一套軟體可以找到兩家以上的服務提供商。 對於閉源軟體,軟體的服務往往是附加性質,實際的內容取決於開發商的資源配置考量,甚至保障性不足。 比方說你若有一些舊軟體必須在 Windows 98 上執行,那麼你現在還能夠買到 Windows 98 的服務支援嗎? 相對的,即便對於一套已經過時許久的自由軟體,只要你能夠支付足夠的資金,就可以找到能夠接手的人! 而專門的服務商通常在軟體服務上會更全面週到,畢竟提供軟體服務就是這些公司的主要工作和收入來源!

最後補充強調一點,經過以上說明後,可能有些人會誤解以為:若不購買服務支援,那所使用的軟體就沒有保障了! 事實上購買服務支援不是必要的,不管是為個人用戶還是企業用戶而言。 想想你使用別的軟體、甚至是下載破解的軟體,你會因為覺得用起來沒有保障而不用嗎? 當你遇到問題時,可以找親朋好友、或上網搜尋解決辦法, 再不濟,程式碼就在那裡,也可以自己跳下去處理! 購買商業服務其實多半是企業用戶花錢省事、或者是想要把工作和責任分出去給別人的手段之一, 你總不能要求經營一家小餐廳的商家還要養一票工程師,就為了處理餐廳裡面使用到的某些軟體日常可能發生的問題吧? 但反過來說,也是有不少具有一定軟體維護能力的大公司, 他們會選擇依靠自己的 IT 部門人員來處理公司內的各種軟體相關問題,而不會向外購買軟體服務支援。

2.5 聽說只要用了自由軟體就一定要把所有程式碼全公開在網路上!

有些人因為認為只要使用了自由軟體,就必須要把所有的程式碼放網路上公開,甚至因而不敢去使用自由軟體! 這也是一個非常神奇而令人感到訝異的問題!

自由軟體的很多原則和規範通常只有在進行軟體開發有關工作時才會有所影響, 也就是說,對於甚至可能不會寫程式的一般使用者,去擔心這個問題就是完全多餘的! 你難道有遇過因為下載了 Firefox 後幫同學安裝,可是沒有隨附程式碼給他,然後竟然因此吃官司的事情嗎?

可是若你是想要對軟體從程式碼上做一些修改或研發的話, 你就會需要去了解你所使用的軟體授權具體賦與你的權利義務是什麼? 即便如此,你也未必一定就要公開程式碼給大眾。 首先是有些授權准許你不公開修改或衍生的作品,這就是很多商業公司喜愛的軟體授權方案, 讓他們可以使用現成程式的功能,卻不需要公開自己的程式碼。 再者是任何的自由軟體其實並沒有要求你必須將程式碼公開給「大眾」,而只要求你要將程式碼附給你的「客戶」。 也就是說,如果這個人不是你軟體的用戶,你就沒有義務送他程式碼; 若你只是改改程式碼自己用而沒有散佈給別人,因為這時軟體的客戶就只有你一人而已, 也就沒有需要將程式碼公開出去。

我曾在一家公司裡目睹一個真實的案例,有一位軟體部門主管遲遲不肯導入版本控制系統。 一問原因才知道,該主管認為使用開源的版本控制如 SVN、Git 等會讓自己的專案程式碼必須公開在網路上, 而商用的版本控制系統又需要不少錢,以致遲遲無法決定! 顯然這位軟體研發主管完全沒有搞清楚自由軟體授權、要不然就是把 Git 系統和 GitHub 服務給搞混了! 事實上以這個案例來看,完全無需擔心自由軟體的授權問題。 因為在這個條件下其實是他們只是「使用」Git 來管理自己的檔案(我故意不講程式碼,免得有些人搞混), 他們又沒有要去「修改」Git 程式,即便修改了,也只需要公開修改後的 Git 而不是其管理的所有專案程式碼! 就算如此,也只要他們那個部門的人可以拿到修改後的 Git 程式碼就好,完全無需公開在網路上! 遇到這種因為神奇的理解錯誤而錯失使用自由軟體機會的案例,我通常感到既可惜又無言…… [7]

2.6 自由軟體沒有版權?

有些人以為自由軟體是沒有版權的軟體,這是個誤解。 雖然這個誤解似乎對於純粹使用軟體的人沒有什麼影響,但會使可能有志參與自由軟體開發的人產生猶豫!

雖然自由軟體本者共享的基礎鼓勵分享,甚至有時會用 Copyleft 一詞做為形容(與 Copyright 相對), 但是自由軟體並不是沒有著作權的公眾領域軟體! 你可以分享、可以修改、可以衍生創作程式碼,但不能拿了別人的程式碼後說你才是原作者! 自由軟體可以讓人隨意散佈,但原創作者仍享有完整的著作權,包含商標權, 而這也是為什麼很多自由軟體改作品都會改名字的原因, 比如說 OpenOffice.org 和 LibreOffice、以及 DivX 和 Xvid 的關係就是這樣。

甚至,在作者群單純明確可控的狀況下,產品所有權人還可以改變軟體發行的授權, 比如說取消自由授權而改以商業授權發行(如 DivX)、或使用多重授權來發行(如 wolfSSL)。

簡而言之,自由軟體提供了使用者分享、研究、修改、與改作的自由, 但並沒有要求作者必須要拋棄著作權!

2.7 自由軟體如何產生商業收益?

有些人會好奇,自由軟體要如何融入商業活動、產生收入? 有這樣的好奇或疑慮是非常合理的,因為若一種軟體模式與商業環境互相矛盾衝突的話, 會使得公司行號不願意投入此種類型軟體的開發,使得這種軟體終究只能活躍於一群完全做公德的小圈子。 而脫離商業社會的資源和付出,也將使得軟體的發展動能受到極大限制!

自由軟體主張自由但其實並不反商,事實上完全允許商業行為; 只不過因為自由軟體獨特的特性與一般商業軟體不同,使得無法以一般常見的商業行為來套用在自由軟體身上牟利!

2.7.1 販賣

首先,自由軟體完全是可以被販賣的, 自由軟體運動 [8] 的發起人 Richard Stallman 年輕時就賣了不少自己寫的軟體! 雖然目前大部份的自由軟體都可以在網路上無償下載,但自由軟體的規範並未要求軟體一定要無償提供給大眾。 自由軟體規範軟體發行人有義務在分發軟體時,將程式碼一同送交予被發送的對象,也就是所謂的「客戶」。 因此不是任何人都能夠向您索要程式碼,他必須要先成為你的產品客戶,而這個過程沒有任何商業限制; 換句話說,你完全可以像一般商業軟體一樣販賣自由軟體,然後再把程式碼附送給買軟體的人 (比如說 Red Hat Enterprise Linux 就是這樣的例子); 當然,若你選擇把軟體放在網路上供自由下載(比如說大部份常見的自由軟體), 則任何人都可以輕易成為你產品的用戶,那程式碼就必須要能夠隨意下載了! 這個時候,軟體執行檔反而不是必須提供的,因為有了原始程式碼,任何人都可以自己把軟體二進位檔給編出來!

當然,再更深入了解就會發現,這種使用一般商業軟體的思維來販賣自由軟體的路是走不下去的! 任何客戶都可以在拿到你的程式碼之後轉兜售或直接公開在網路上,因為自由軟體完全不阻止散佈軟體的權利! 不過通常因為商標權的關係,這種被拿去轉發行的軟體通常都會改個名字和商標, 比如說 OpenOffice.org 與 LibreOffice 之間的關係,或 Red Hat Exterprise Linux 與 CentOS 的關係就是這樣。 也因為這樣,大部份的軟體一旦以自由軟體授權散佈,就乾脆直接放給大眾下載,省得麻煩, 結果就只剩下少部份的自由軟體需要花錢購買。

這也是為什麼當很多問起自由軟體與免費軟體有什麼不一樣時,自由軟體擁護者往往都會說: 「自由軟體不是免費軟體,免費只是它的副作用」。 的確,自由軟體真正在乎的事情是使用的自由和分享的精神,只是湊巧大部分的自由軟體因為某些因素而決定免費發送而已!

2.7.2 服務

那麼一般如何從自由軟體的販售中得利呢?經過前面的解釋會明白,自由軟體本身很難賣錢, 而一般靠著自由軟體營利的公司主要販售的是其提供的軟體服務! 需要比較實際的解釋嗎? 自由軟體通常很容易取得,然而很多的問題在後面才慢慢浮現:
打算改用自由軟體,但與你之前使用的軟體差異很大,不知如何學習入門嗎? 沒關係,我來教你,人數很多的話還可以安排教育訓練課程(比如說公司導入 XX 軟體系統時)。
一時找不到需要的功能應該如何操作嗎?軟體使用上遇到不明白的問題嗎?一通電話打來,我為您解答!
使用軟體覺得不安心,因沒有人可以為你負責嗎? 社群那票人求新求變,程式一直在更新,怕有一天與現在的環境不相容又無法處理嗎? 沒關係,交給我來維護你的系統,我們比社群穩定、也願意為您負責!
您有特殊的需求需要特別的客製化,卻無能力進行修改,或不想倘這混水嗎?沒關係,我們為你處理,還有保固喔!
您還有更多不同的個人需求嗎?沒關係,通通都可以提出來, 只要您願意繳錢,我們儘量配合您的需要!

雖然一般個體用戶很少願意去使用這樣的服務項目並付出金錢, 然而對於大部分的企業用戶來說,這樣的服務確實有他的價值和需求,而提供服務的公司就能從中賺取收入。

2.7.3 市場策略

另外還有一種商業模式,促使商業公司投入自由軟體發展,甚至投入大量僱員進行開發! 這種方式通常不會產生直接的收入,它所產生的利益主要以產業發展利於該企業的面向出現在商業戰場上。 比如說 Red Hat 顧忌於 KDE 的獨大,使得其本身無法抵抗 Troll Tech 公司的任何開價, 這促使 Red Hat 大力支持另一套新興而尚不健全的類似工具 GNOME 的開發 [9] 。 GNOME 的發展成熟使 Red Hat 在購買 Troll Tech 的 Qt 產品授權時得到談判的有利條件, 隨著 GNOME 的發展健壯並吸引眾多商業大頭倒戈支持,最後甚至迫使 Troll Tech 將 Qt 以自由軟體授權開放! 還有更多其它的例子都可以看到,在某些適當的狀況下,商業公司會投入資源開發完善特定的自由軟體, 以獲取商場上的可觀利益。 比如說眾多硬體廠商會加入 Linux kernel 的開發,好使 Linux 在自己的平臺上得以正常運作, 甚至連 Linux 的死對頭 Microsoft 都不得不貢獻 Linux kernel 程式碼 [10] [11]

2.7.4 捐款

除了直接或間接的商業收入來源促使商業團體投入開發外,也有更多自由軟體的開發維護純屬公益性質, 這些軟體大部份靠著願意付出額外時間和熱情投入自由軟體的志士來開發與維護,或透過一些公益基金會來維持運作。 其中有些單位會接受外界的捐款以作為支持,例如 Mozilla 和 LibreOffice。

3 自由軟體的缺點和侷限

不能否認的,每種不同的東西都會擁有不同的特性,其中有些是優點而有些會成為缺點,自由軟體當然不例外! 在澄清了一些關於自由軟體的誤解、和介紹自由軟體的好處後, 接下來就要說明一些我觀察到的自由軟體的侷限、或不足的地方, 這是為了讓人能從更全面的觀點來了解自由軟體。

在自由軟體以外的軟體種類中,佔比最大、特性差異最大、也是最常被拿來與自由軟體對比的軟體種類 大概就是一般常見的商業軟體了! 因此我在下面的部份也不免俗的使用商業軟體來與自由軟體做一些比較和評論。

3.1 品質

前面提過,自由軟體雖然大部份由熱情的自願者貢獻勞力, 使得自由軟體「通常」的情況下比其它軟體更為高品質、強壯、安全、高效。 因為能夠有閒為公眾提供熱情的通常都是高手中的高手, 再來是全世界的自由軟體開發人員數量之多,不是任何一間商業公司可以比較的, 又加上自由開發者沒有商業公司的關於資源和策略所產生的強制性的開發重點移轉聚焦, 讓每個開發者可以針對他所在意的問題做出最完美的解答。

然而事情並不總是如此,除了商業公司當然也能夠聘到高素質的開發人員並產生出高品質的產品這個原因以外, 自由軟體的品質往往與開發人員的數量形成密切關係! 但是前面不是才說過自由軟體的開發人員多到沒有一間公司能請得起嗎? 全世界的開發人員是很多,但實際上每一套軟體得到的關注程度不同。 某套軟體的志願開發者通常都是該軟體的使用戶,因為功能不滿足、或發現問題等機會後因緣際會跳出來貢獻才能, 這導致使用者數量龐大的流行軟體如 Linux kernel、Firefox 等通常擁有海量開發人員; 但無名、冷門、或特別專業領域的軟體開發者往往就寥寥可數,軟體的品質自然不易提升, 在這種情況下,商業公司的同類型產品更容易擁有完整強大而高品質的表現。 當然這不是絕對的!也是有極度流行流通而使用者眾的軟體比如說 OpenSSL,但裡面卻是亂成一團; 或是像 Git 這種幾乎是一個人開發成型的軟體,卻沒有人能夠挑剔它的品質或功能。 少部份的例外總是存在,但以大體來看,自由軟體的品質幾乎與使用者數量和流行流通狀態呈現絕對的關係!

3.2 高手思維

自由軟體的志願參與者通常擁有很高的素質,然而在某些面向上這反而成了缺點! 怎麼說呢?高素質的開發人員能夠提供軟體無可挑剔的品質, 但在使用體驗這個方面,高手與一般非專業使用者的想法往往大相逕庭。 比方說,對於一般電腦使用者,你會願意使用 Office 軟體製作文件還是使用 LaTeX? 你會願意嘗試有圖有按鈕有動畫的 FileZilla Client 還是純文字命令介面的 ftpget? 壓縮解壓縮檔案的時候你會想用 WinRAR 還是 tar + xz + gpg? 諸如此類,會讓你覺得為什麼這些狂人使用的東西都讓你覺得這麼難用這麼反人類; 然而反過來其實他們也覺得你愛用的軟體難用又彆扭! 說到底其實就是使用軟體的思考立足點不同所造成。

由於大部份的讀者應該都不是電腦專業用戶,我就用別的東西來做為解說。 大部份的人應該都有照相的經驗,看過專業攝像師拿著超專業的相機可以拍出極美的照片, 但若讓一般普通人拿上這個相機,那拍出的畫面應該普遍醜過使用傻瓜相機拍攝的照片, 搞不好連如何操作才能夠成功拍下一張照片都是一件不容易的事情! 如果說看在普通人眼裡,專業照像機是難學難用難掌握的話,那對於軟體又何嘗不是如此? 若讓一位專業攝像師拿著傻瓜相機來工作,可以想像他抓狂的模樣! 因為相機自動決定的攝像參數如此笨拙,卻又沒有可以人為介入的方法, 就連想要搭配一些如閃光燈、快門延長線等等自己的週邊器材都無從做起! 而這不也是那些電腦高手不喜歡使用所謂方便好用的大眾軟體的主要原因之所在嗎? 在大部份沒有商業公司介入的自由軟體裡,絕大部分的開發者既軟體使用者會把軟體設計的非常完美; 不過這個完美是站在高手立場來看的,於是對於普通人來說,很容易就會產生難用、難學的深刻印象。 看看早期的 Linux 和各種 shells 的發展、再看看早期 Git 的操作方式,就不難發現這個脈絡。

依實際的使用觀察可發現,雖不是絕對,但自由軟體中一般使用者使用體驗良好的軟體背後通常都有商業公司的影響力存在。 這很容易理解,就如同前面說的一樣,試想若汽車的市場和開發一直都只由一群技術高竿的車手和技師來主導的話, 那麼像自動排檔、娛樂媒體等發明大概不可能會出現在現代汽車上面了! 由一群軟體開發高手研發的軟體,往往只能在專業用戶這個小圈裡面流行,而難進入大眾市場。 一個能夠被一般大眾所接受的軟體,除程式內容外,美術、人因、地區化、與行銷推廣等資源缺一不可, 最終造成通常只有商業勢力介入的產品才能夠普及於大眾的結果!

3.3 過度強制開源

其實這個點有一點一竿子打翻一船人的味道,並不是所有的自由軟體都具有這個「缺點」, 不過偏偏常見的一些基本軟體經常會以類 GPL 的授權發行,以致這項特點所產生的影響力往往足夠強大。

自由軟體提供了使用者特別在程式碼上的極大自由,但有時候這點會讓商業發行有所顧忌。 依據每個軟體的使用授權不同,有些授權如 GPL 會要求對於軟體的修改、改作、延伸創作等之後的作品也要以相同授權釋出, 甚至僅僅只是自己的軟體使用到這些軟體的功能,也會受此條件束縛! 舉個例子,這樣的條件下在 Linux 底下就算寫個 hello world 程式也會需要以 GPL 授權釋出, 因為你的程式會需要呼叫 printf 函式,這功能在 Linux 上通常是由 glibc 程式庫提供,而該程式庫的授權(在從前)即為 GPL! 這會讓很多程式碼內含商業機密的產品公司不願意為某些環境開發產品,例如說顯示卡驅動程式或其它敏感儀器的驅動程式, 這也是為什麼從前 Linux 一直缺乏驅動程式的重要原因之一。

過度強調自由到「強制」自由開放的情況,反而使得很多開發商對這個生態卻步,最終反而不利這個生態的活性。 也因此種局面,才催生出後來對開發者較為寬鬆的 LGPL 等授權,至此才緩解了這種蕭條的情況!

3.4 專門應用或冷門應用的缺乏

雖然我們推崇使用自由軟體,然而並不是在任何的用途上,都有自由軟體可以使用! 大部份的自由軟體由一群懷抱熱情的志願人士發起並參與, 那麼這些人大多散佈在什麼領域,大概就決定了自由軟體注定只活躍在這些應用上。 對於任何一個應用需求之下的軟體,首先必須要存在有具有該需求的足夠數量使用者,才能撐起這個市場; 這些使用者裡面,也許有一些具有程式開發專長; 而具有程式開發專長的使用者裡面,也許有一些會想要貢獻才能來開發自由的軟體; 又需要具備一定的數量的具有程式開發專長且願意做出貢獻的使用者,才能撐起這種自由軟體的品質和完整性。 因此我們可以得到一個簡單的結果: 在擁有數量足夠龐大的使用者或潛在使用者的應用用途上,才比較有可能出現可堪使用的自由軟體!

看看實際的狀況,在一些實際需求強勁的應用,比如說文書處理、網頁瀏覽器、作業系統、或編譯器等, 我們可以找到各種不同的自由軟體,其中大部份的效能、功能強度、和安全性等表現甚至超過同類型的商業軟體; 再看到一些比較專門的應用領域,比如說影像處理、音訊處理、CAD/CAM 等, 雖然也存在一些自由軟體,但各種的功能表現比起同類型商業軟體可能就比較遜色; 若再往下看看一些更專業或更冷們的應用,比如說 CFD 等,則連要找到一套存在的自由軟體都非常困難! 這個道理非常明白,在使用者群足夠小的領域裡, 基本上能夠具有專業知識到可以涉入這個領域而成為軟體使用者,人數就夠少了, 更遑論還要期望其中有軟體開發能力並且具有熱情的人來開發自由軟體! 當然,反過來說,在需求普遍的應用用途裡,你一定可以找到傑出的自由軟體; 特別是在電腦科學和軟體工程相關領域,這是自由軟體數量最多、種類最豐、綜合表現最為強悍的勢力範圍, 因為在這個應用領域的使用者群中,具備軟體開發能力的比例相較其它領域是非常的高!

那麼除了志願開發者外,商業力量是否會介入冷門領域來開發自由軟體呢?我想答案是否定的,不然這個問題就不存在了! 商業公司不會無端涉入自由軟體的開發,因為這不符合獲取最大商業利益的原則, 商業上的力量往往是在一些特別的市場競爭態勢下,才導致投入自由軟體的開發相較之下能夠得利, 甚至迫於情勢才會進入自由軟體的開發工作。 在專業又冷門的用途上,加入競爭所需要的知識、技術、和經驗等門檻很高,使得通常是少數公司寡佔市場, 而在這種狀況下,販售閉源的私有軟體顯然更能夠賺得利潤並掌握使用者們!

綜和全部的因素,最終造成在需求群體過小的應用領域裡,通常只有少數的商業產品可以選擇! 而在普遍流行的需求、特別是與電腦科學或軟體工程有關的用途中, 若你沒有選擇使用自由軟體將會非常可惜,因為錯失了使用地球上最強大軟體來解決你的問題的機會!

4 為什麼你應該要使用自由軟體?

如同我最開始說的,我極力推薦大家使用自由軟體。 在知道了自由軟體是什麼、以及了解了一些有關它的各種特性和長短以後, 接下來說明我鼓勵大家使用自由軟體、或者說為什麼你應該要使用自由軟體的理由。

4.1 免費

除了極少見的自由軟體需要花錢買之外,絕大部分網路上能找到的自由軟體都可以被任何人免費下載使用的! 這大概是所有自由軟體擁護者都會向你吹捧的好處,但很不幸的這一項特點也是一直以來最有爭議的一項!

絕大部份的自由軟體不用錢,可以讓人無償取得並無限制的使用,這點沒有爭議; 但是不需要授權費不代表使用該軟體的成本就一定比較低! 我想絕大多數的一般使用者並不是從一開始接觸電腦以來就在使用自由軟體, 不然可能也就不需要來看有關什麼是自由軟體的文章了! 在這樣的前提之下,從你已經上手習慣的軟體轉而使用自由軟體,會不會一下子不習慣、不順手? 會不會有一些常用的功能找不到在哪裡?會不會甚至有些使用上的思維也需要轉換? 更別說還有從前使用舊軟體所累積下來的成果要轉換到新的使用環境可以接軌的程度,又會耗費不少力氣! 這就是數位時代所謂的「轉換與遷移成本」,我在我的前一篇文章有探討過這一部份 [12] 。 若把這部份的成本也算上去的話,那麼「轉而使用」自由軟體所需要付出的代價 不見得會小於繼續使用已經使用了數年的既有軟體。

對於個人用戶而言,轉換的成本並非高到無法跨越,通常只要下定決心,遇到的困難其實都不難解決; 然而對於企業用戶而言,轉而使用自由軟體所需付出的成本就更為高昂了! 企業用戶面對的是一群的員工要脫離已經上手的軟體轉而使用另一套軟體, 其中每一個人的資質、接受度、固有經驗和習慣等都不一致,轉換所需的相關教育課程和訓練少不了; 若再加上企業在先前已經基於舊軟體所進行的有關於工作流程、相關工具、或相關延伸產品都要從新開發修改的話, 這個成本將更為可觀! 何況還有在換用新軟體間的轉換適應期,因尚未熟練或遭遇不熟悉問題而造成的工作效率下降的問題! 綜合全部的考量,使得換用其它軟體的成本高昂,就算新軟體不用授權費也很難形成足夠的誘因。 說到這部份,其實反而不是自由軟體的問題, 因為對於這樣的公司行號而言,換用任何一種其它軟體的成本都是非常高的!

但再反過來說,如果你遇到一個從未涉入過的應用,想要找尋一套合適的軟體來處理你的問題時,就應該優先考慮使用自由軟體! 對於一個從未接觸過的應用來說,不管選用什麼軟體都需要摸索、學習,自然也不存在既有資料的問題, 那麼既然沒有轉換遷移的成本,在有自由軟體可選的狀況下,我實在想不出有什麼合理的理由可以不優先考慮自由軟體? 唯一合理的解釋大概就是這個潛在的使用者並不知道自由軟體的存在! 畢竟在臺灣,教育場所一直以來對自由軟體相關的部份付之闕如,身邊的朋友絕大部分從來沒聽過什麼自由軟體, 而這也是我為什麼決定寫下這篇文章的主要原因。

此外還有一個殺手級的因素可以讓自由軟體免授權費的優勢蕩然無存,那就是盜版問題! 對於一個盜版猖獗的地方,自由軟體要不要授權費其實是無關緊要的, 因為在他們的觀念裡任何一套軟體都是不需要花錢買的! 你又怎麼能夠在小偷強盜充斥的地方推銷正版軟體呢?

4.2 安全性

軟體的安全性其實有很多面向,除了前面提過的與軟體本身的缺陷和修補方面外,這裡我強調的是來自「惡意程式碼所造成的安全性威脅」。 對於不提供程式碼而只發佈二進位檔案的軟體,你很難得知這軟體在背後偷偷做了多少事情! 你覺得正常的公司不會做出這種不道德的事情嗎?那來看看下面一些「已被發現的」實際案例吧:

  • DOC 檔案內藏隱私資訊。 [13]

  • 蘋果裝置上的後門軟體。 [14]

  • 小米手機偷傳資料到北京。 [15]

  • SONY 音樂光碟暗藏後門程式。 [16]

  • 美政府買通資安大廠 RSA,於加解密機制中暗藏後門。 [17]

  • NSA 要求微軟安置在 Windows 裡的後門。 [18]

除了正常經營的公司外,更別提那些提供「破解版軟體」的人會在裡面加什麼料了, 基本上是什麼都有、什麼都不奇怪!

自由軟體的特點在這裡體現出來,因為程式碼是公開的,懷有惡意的人很難能夠在裡面偷加料而不被發現, 例如數年前發生在 OpenBSD 的疑雲就是個不錯的例子 [19] ! 這個特點有時候也成為一些國家政府討厭自由軟體的一項重要因素, 其中最有名的案例大概就是幾年前發生的 TrueCrypt 事件了 [20] ! 道理很簡單,各種訊息加密軟體、系統都可以在開發公司的私心、或者國家力量的介入下,暗藏各種後門功能, 讓使用者以為可以很安心,但事實上當某些國家真的有需要時,便可以「非常快速的」破解這些加密訊息! 特別是在史諾登揭露了美國的稜鏡計劃後,這些事情更成為舉世皆知的公開秘密。 而自由軟體開放不受控的特性使得其他勢力難以插手干涉,自然就成為一些惡霸國家欲除之而後快的對象!

而必須澄清的是,這並不是自由軟體才具有的優點,只要能夠拿到程式碼,就可以自己檢查、編譯程式。 事實上有不少商業產品允許在使用者付出一定的代價之下提供客戶程式碼, 這也是為什麼很多政府敏感單位願意使用商用私有軟體的主要原因, 例如美國國防部竟然會去採購使用 Windows, 但他沒告訴你的是,他絕不敢在買不到程式碼的狀況下使用 Windows!

那麼既然只要能拿到程式碼,是不是自由軟體有什麼差別呢?

  1. 在需要取得程式碼的前提下,自由軟體其實是更為廉價的方案。

  2. 除了你以外,自由軟體還有全世界數不清的專家在監視、維護; 而對於購買程式碼的商業軟體,你只能憑一己之力去做所有的這些事。

4.3 調整和適應的自由度

自由軟體通常會給用戶極大的自由,當然,主要的原因是來自於開放程式碼的關係。 因為有程式碼在手,用戶可以做出各種深度的修改和客製,關於這點前面已經提了不少次,相信再說下去耳朵都要長繭! 但除了程式碼的因素外,還有另一個原因來自於設計思想。 自由軟體主要思想是開放、自由,自然它的開發參與者大部份都有海納百川的胸襟, 在開發的過程中,他們通常會本能的包容、並尊重每一個使用者的個人意識; 反而商業軟體通常會比較限縮使用者的各種選擇性,一來是省得麻煩,再來是若能藉此鎖定使用者的話,何樂不為?

這就是為什麼自由軟體通常可以執行在各種環境、搭配最多的前後工作流程的原因之一。 另一個表徵體現在設定調整方面,自由軟體的設定配置項目通常都很細碎, 細到可能大部份的人都不知道大部份的設定項目是做什麼用的、或者大部份的設定項目對於一般人都沒有修改的需要, 但選項仍然在那,就為了可能有那麼一天你會需要而存在! 舉例來說,開源的作業系統在安裝時通常會檢查電腦上是否存在別的作業系統,並試著兼容它, 而微軟的作業系統則認為你的電腦應該只使用他的系統,而忽視其它已安裝的系統; 另比如說在 Windows 10 的某些版本上面,微軟想盡辦法的阻饒你使用 Edge 以外的其他網頁瀏覽器 [21] [22] ; 又比如說 GNOME 或 KDE 的使用者即使在不修改程式碼的情況下,能夠配置出截然不同而令人炫目的桌面環境 (Search for Compiz by Google), 但在 Windows 或 Mac 上你能夠調整的幅度極為有限!

4.4 長期的資料保存與銜接優勢

在資歷保存和數位永續的切入點來看,使用自由軟體能夠給予使用者長久的保障, 而這才是我覺得的使用自由軟體的最重要好處! 有關於數位永續的議題我已在我的前一篇文章裡詳細論述過 [12] , 簡單來說,選擇了私有不公開的數位資料格式做為資料儲存和交換的依據的話,會演變成對特定廠商甚至特定軟體的依賴, 而長遠來看這將令使用者陷入極為不利的處境。 因為對特定產品的依賴,使得即便市場上出現了更適合的產品,你也沒辦法跳槽; 此時就算其他品牌的產品更便宜更強大,你對於所依賴廠商的任何不合理的索求,基本上也沒有任何反抗能力; 若不幸的這個廠商有一天不復存在了,將極有可能令你的資料進入萬劫不復的境地, 依資料複雜度而言,甚至有可能連花大錢解決問題的機會都沒有!

因此用戶若能向廠商購得資料儲存格式或交換協定的文件資料、甚至是得到程式碼的話,將能夠為自己留下極大的自主性和後路。 而從這個角度來看,使用自由軟體不正是一種極為廉價的解決方案嗎? 同樣因為自由軟體參與者通常都主張開放自由的關係,自由軟體對於公開的標準通常擁有一種接近偏執的愛好, 這又讓自由軟體的使用者更有保障, 因為大多時候用戶並不需要去研究修改程式碼,就能夠在好幾套符合標準的軟體解決方案中自由切換。 以網頁瀏覽器為例,Firefox、Chrome、Safari、和 Opera 等瀏覽器的使用者大多自由的互相跳槽來去, 但一些當初依賴 IE 和 .Net 與 ActiveX 所建置的網站卻讓使用者沒有使用 IE 以外瀏覽器的選擇!

5 使用自由軟體應有的心態

在了解了自由軟體是什麼、並明白自由軟體的各種優缺特性後,基本上你已經具備足夠的知識去使用或評估自由軟體。 接下來我要寫一些關於心態上的認知,好讓大家在使用自由軟體時能夠先有良好的心理建設, 至少在遇到一些令人氣餒的問題時能知道不該罵誰而應該怪誰。

5.1 當本地語言翻譯不足時

對於各種軟體,我想最常成為使用者跨入障礙的應該就是語言翻譯的部份了! 不管多麼強大、或者多麼簡單的軟體,只要它沒有中文語言版本,是不是就很容易讓人望之怯步? 而對於自由軟體,可能還有一些更讓使用者心情起伏的狀況, 比如說中文翻譯不完全,介面中仍含有大量英文;或者是有簡體中文版本,卻沒有正中文版本!

一般面對這樣的狀況,人們可能容易埋怨開發商不推出自己語言的版本, 甚至責怪說為什麼在語言上被大小眼對待,比方說同樣是中文卻只提供簡中版本。 對於商業軟體,這樣的抱怨是合理的;但對於自由軟體,我們不能抱怨任何人! 如同我們從前說的,自由軟體主要依賴一群志願者的貢獻, 因此,自由軟體的本地翻譯不足時只代表了一件事,那就是 與你同語言同文化的人裡面,很少人在使用這套軟體、要不就是沒有人願意做出貢獻。 那麼,你覺得應該要歸咎於誰呢?

在使用自由軟體而遇到和語言有關的問題時,不妨想想其他與你相同語言文化的使用者是不是也會感到困擾? 若是你有空閒有餘力,是不是願意提供比較正確完整的語言翻譯好造福自己的同胞呢? 如果你下次看到軟體只有簡中版本,這代表了大陸人熱衷於此,而臺灣、香港等地沒有人願意付出, 那麼與其抱怨,何不化悲憤為力量,互相較勁,把它變成良性競爭的動力?

5.2 當軟體不符自己期望時

與翻譯不足的情況類似,當你使用自由軟體而感受到任何功能或其它部份的不足時,其實你可以有更積極的做法。 請常記得,自由軟體是大家一起付出的產物,因此若您有什麼不滿足的地方,也可常常思考自己是不是能夠貢獻什麼? 若你有能力,不妨多付出一些,使它更完整,也造福群眾; 若你沒有能力,也可以提出你的意見、願望、遭遇的問題等意見回饋,好讓有能力的人能夠得到更多實際的資訊來完善開發; 若你仍然不能滿足,那麼也許這套軟體還未成熟完美到可以符合你的需要,也許它還需要一些時間機會來慢慢茁壯。 時間寶貴的你當然可以有選擇其它軟體的權利,當然可以自由的來去, 只是注意應當收起漫罵,畢竟你並未支付報酬給任何人不是嗎!

5.3 當程式可以正常運作時

若很幸運的,某套自由軟體在你的裝置上能夠正常運作,甚至能夠流暢執行而沒有遭遇任何問題的話, 請不要把它視為理所當然! 我想對於大部份的個人用途上,你應該沒有為這套軟體付出一分錢, 而這套軟體卻是多少人無償的共獻出自己的心血,才能讓你順利的運用它來處理你的問題。 下次當你意識到所使用的軟體可以正常的工作而沒有給你加添額外麻煩的時候, 不妨在心底深深的感謝所有為了眼前軟體而付出的人,就是那些與你素未謀面、勞心費力,卻讓你可以輕鬆享受一切的人們。 常懷感恩的心,並期許自己有一天也可以為大眾、特別是自己的同胞做些什麼事情。

6 我可以為自由軟體做什麼?

正所謂人人為我、我為人人。 若你有幸使用自由軟體,並且覺得受益良多的話,除了感激以外,你還可以有更具體的回饋行動。 但是因為大部份的人不了解自由軟體生態,當心裡出現想要造福眾人的一把火時,卻不知道自己能夠做什麼? 這情況可能讓有些人心裡鬱卒,因此,我下面要來列舉一些可能的實際回饋方案供讀者做為參考。

6.1 加入開發行列

如果你對這軟體有很多想法、並且也擁有改變的實力,那麼何不介入程式的開發,直接提供你的強力貢獻來造福同胞? 自由軟體界如果能有更多像你這樣的人共同付出的話,一定會進步神速的! 與其嘴上抱怨程式如何的不令你滿意,那就來改吧!做出你滿意的樣子,再回饋給社群。

另外這裡要特別提醒一點,大部份的人可能會把開發和寫程式畫上等號,但這是不對的! 自由軟體的開發固然需要人去寫出不少程式,但是對於美術、操作介面、語言翻譯、流程設計、和測試等等的人員的需求一樣急切! 除了寫程式以外, 如果你善於繪製程式所需的各種圖示、背景等、或是願意提供本地語言翻譯、或是願意測試並回報程式的各種問題、 或是還有其它你認為能夠貢獻的地方,都可以嘗試著去做付出。

在你下載到程式軟體的網站,應該也能找到連繫開發團隊的方法(通常是透過電子郵件), 可以大膽的主動聯絡並加入有關的討論。 而對於測試回報等狀況來說,情況會更簡單一些! 有些平臺有架設缺陷回報系統,你只要填寫並送出即可, 而有些平臺可能會需要在討論區內提出所遭遇的問題來做為回覆報告。

6.2 提供意見與回答問題

如果你已經使用某套軟體好一陣子,自認對這套軟體足夠熟悉了, 那麼你也可以在社群網站上、或是各個討論區內解答回覆其他使用者對這套軟體的各種疑難雜症, 這會節省許多人大量的時間精力,也會讓不少人直接感激你所做的付出! 如果你當初在入這套軟體的時候,也從不少前輩那裡得到幫助指引的話,那麼請時常想著這些畫面, 思考初學者的處境,這會讓你在面對一些可能令你發狂的白痴問題時可能會派上用場! 如果你從前沒有任何的前人可以取得幫助的話,要不就是軟體太簡單、要不就是你極度聰穎以致不需要其他人的幫助, 要不就是這表示你是走在這軟體生命週期前端的時代開創者, 不管是哪一種,你其實可以從你開始站出來,做為第一代的資深前輩來庇蔭後進。

除了面向使用者以外,你還可以轉而面對開發者。 做為一個資深用戶,向開發社群提供你站在使用者端所看到聽到和體察到的各種有用意見, 或者提供你的各種看法或期望。 做為開發團隊的眼睛與耳朵,以不同的角度提供開發團隊不同視角的訊息,使開發成果能適合更多的使用環境。

6.3 贊助

除了直接介入程式的開發維護工作或者服務支援外,還有一種方法比較不需要讓人勞心費力,那就是直接提供金錢上的援助!

雖然大部份的自由軟體讓人無償下載使用,但不代表他們不願意收受金錢。 社會大眾的捐助款項可以用來補貼開發人員、或是支付一些正職開發人員的薪水、 以及支應其他行政推廣人員費用、或用於分攤辦公室場地相關成本, 特別是對於由 XX 基金會所維持的維護組織而言,這些捐款會很有幫助!

因此若你想要回饋自由軟體,卻沒有太多能力或時間的話,也可以透過贊助的方式做為幫助。 有些軟體可以在下載頁面附近找到捐款贊助的選項,請大膽點下去,並依據個人的意願撥款給開發維護團隊吧!

6.4 使用它

幫助自由軟體其實還有一種很簡單又不費力的方式,就是去使用它!

即使沒有能力或沒有心力參與任何與自由軟體有關的工作,我們也能夠透過使用自由軟體來給出幫助。 僅僅只是使用自由軟體就能夠幫助自由軟體,這怎麼說呢? 再回到我一開始舉的部落格文章的例子,世界上那麼多人耗費心力寫作豐富內容的文章放上網路供人無償閱讀, 圖的是什麼?又什麼樣的狀況可以激勵這些志工作者更賣力的寫出更多東西呢? 不就是每一個作者都希望有更多的人來看他的文章嗎?那麼在自由軟體上面又何嘗不是如此? 對於一套自由軟體,愈多的人去使用它,就能讓開發者擁有愈多繼續做出好成品的動力; 愈龐大的使用者群體,也能給予開發社群更大的使命感,督促大家兢兢業業的開發出高品質的程式、和眼光更為長遠的設計。

同樣的概念再延伸下去,推薦其他人使用自由軟體、並推廣自由軟體的概念,讓更多的人接觸並了解自由軟體, 一樣是每個人可以為自由軟體所付出的極大貢獻,其功勞並不亞於參與開發和捐款贊助以及以其他方式提供幫助的人!

所以請不要認為自己沒有為自由軟體做出什麼付出卻無償使用而心懷愧疚。 請大膽的使用它、把它介紹給親朋好友中可能有需要的人,這個付出就足夠大了! 當使用人數愈來愈多的時候,假以時日,你會發現手上的自由軟體變得更強大也更好用!


1. 「The Free Software Definition」, GNU, 連結
2. 「自由開源軟體授權條款的三分法」, 自由軟體鑄造場, 連結
3. 「五種開源授權規範的比較」, InspireGate, 連結
4. 「常用自由軟體」, 教育部自由軟體數位資源推廣服務中心, 連結
5. 「Xvid」, 維基百科, 連結
6. 「李家同他是怎麼拿到電機及計算機學位的啊-_-」, 沒見過壞人嗎?, 連結
7. 「那些台灣軟體產業所缺少的 – 開放源始碼」, 程式設計 遇上 小提琴, 連結
8. 「自由軟體運動」, 維基百科, 連結
9. 「Linux 桌面两大阵营 GNOME 与 KDE 的战争」, 阮一峰的IT笔记, 連結
10. 「Why is Microsoft contributing to the Linux kernel?」, Quora, 連結
11. 「Why does microsoft contribute to the Linux kernel?」, Jonas Stein, 連結
12. 「數位時代需要面對的困難:資訊保存與接駁」, 伊蜜澤瑞, 連結
13. 「.doc檔洩露機密」, 毛慶禎, 連結
14. 「蘋果電腦的 iOS 7 MDM 及其他監聽陰謀」, 資訊人權貴ㄓ疑, 連結
15. 「小米手機偷傳資料到北京?iThome找資安專家實測:有」, iThome, 連結
16. 「電腦支援 Windows 10, 小心廠商沒收你的開機鑰匙」, 資訊人權貴ㄓ疑, 連結
17. 「美政府買通資安大廠 RSA,於加解密機制中暗藏後門」, Wayne 韋恩筆記, 連結
18. 「NSA 要求微軟安置在 Windows 裡的後門…​ 保護智財, 無可奉告」, 資訊人權貴ㄓ疑, 連結
19. 「OpenBSD 並沒有內藏 FBI 後門; 值得關切的是神秘版的 RSA 加解密演算法及 SecurID」, 資訊人權貴ㄓ疑, 連結
20. 分析一下 TrueCrypt 之死(自杀 or 他杀?),介绍一下应对措施, 编程随想的博客, 連結
21. 「就是不給你選!微軟限制 Windows 10 S用戶更改瀏覽器及搜尋引擎」, 高敬原, 連結
22. 「微軟仍不願你在 Windows 10 輕易更換預設瀏覽器為 Chrome、Firefox」, 陳冠榮, 連結