顯示具有 免費軟體 標籤的文章。 顯示所有文章
顯示具有 免費軟體 標籤的文章。 顯示所有文章

2017年8月29日 星期二

再談自由軟體與專有軟體


一直以來都時常會有些討論自由軟體、專有軟體的貼文有些似是而非的看法,所以本人在此不吝提出一些觀點,並針對混淆之處作澄清,希望各位讀者能參考參考。

一、有些人認為採用自由軟體會抹殺從事軟體開發的工作機會。我認為這是誤解,[0] 請見後述逐項說明。

二、自由軟體與免費無關,也有許多公司提供自由軟體的商業支援、或銷售自由軟體產品,這些即所謂商業自由軟體公司,例如美商 Red Hat 公司就銷售需付費的 Red Hat Enterprise Linux。[1] 至於我們常見的自由軟體願意無償提供,只是軟體開發單位自己歡喜甘願而已,將自由軟體和免費混為一談是討論自由軟體時最常見的錯誤見解。[2]

三、自由軟體的開發一樣要成本、維護也同樣要成本,這些成本多半來自於個人無償奉獻、商業公司、或基金會的支持,任何人都能向這些商業公司購買自由軟體,或是隨喜捐款給自由軟體背後的獨立開發者或維護的基金會。此外,向各位提供一個數據作參考:Linux 基金會公佈2016年 Linux 作業系統核心的程式碼開發有 92.3% 都出自商業公司;[3] 各位也可以進一步研究世界軟體大廠諸如 Oracle、Red Hat、Canonical、Novel 等是怎樣運用自由軟體產品賺錢的。自由軟體唯一與專有軟體不大相同的地方,就是他們的自由軟體成品取之於前人知識、技術、經驗,但成果不私藏,願意拿出來和大家分享,無論有無收費任何人都能自由使用、研究修改、再次散布、改善並回饋給社會大眾。

四、再來聊聊軟體的著作權問題。法律上,一般的實體有物權(有體財產),可以給來給去、賣來賣去;但抽象概念、辦事方法如軟體這類創作沒有實體(無體財產),只能用契約約定如何利用,這就是軟體授權的由來。目前根據伯恩公約之約定,任何人的著作在完成後都將自動取得著作權,所以不管是專有軟體或是自由軟體都受到著作權法保障:只是專有軟體想要佔有專門權利,所以拿著作權法去限制其他人如何使用獨家軟體(故稱專有軟體);[4] 而自由軟體希望利他,所以拿著作權法來保障任何人都能自由善用其軟體(故稱自由軟體)。[5]

五、接著談一下軟體的專利。軟體,說穿了,它的源始形式就是一串數學運算式,這些式子的主旨在於描寫如何完成某件事情的方法。在美國產業中,絕大多數的軟體專利都圍繞著含混不明的文字敘述打轉,甚至是將那些數學公式的描述換句話說(可參考網路上許多談論「軟體的荒謬性」相關文章)。[6] 這也是為何歐盟不允許軟體本身申請專利、以及對資訊表達的方式申請專利。然而,實務上為了抵禦專利蟑螂或其他專有軟體公司的侵害,無論前述的 Oracle、Red Hat、Canonical、Novel 等公司,或是大量利用自由軟體作服務的公司如 Google、Facebook 等,皆保有自己的軟體專利作防護,也甚至有 Open Invention Network 這樣的專利聯盟在保護自由與開源軟體。[7]

六、最後,人們今日所處社會的成果,無一不是建立在前人的知識、技術、文化上。牛頓曾說過:「如果說我看得比別人遠些,那是因為我站在巨人的肩膀上」。試想如果我們處在一個沒有自由軟體、只有專有軟體,並且處處充滿軟體專利的極端社會中,那麼要從頭寫一個不會被告的軟體大概難如登天,任何同領域的新創公司難與既有公司相競爭,整個市場終將被大型專有軟體廠商壟斷。這時我們就能瞭解,自由軟體得以讓任何人使用、修改、散布、回饋,也包括任何廠商,各廠商都能利用自由軟體推出商業服務、並積極修正改善或增添新功能爭取客戶,而這才是保障任何廠商都能參與競爭的公平做法。

好比手機市場,如果當年沒有自由的 Linux 內核心,那麼利用它作基底的 Android 也就無法於焉誕生,而市場上就更難有人白手起家和已成氣候的蘋果 iOS 競爭了。(附註:Android 系統是由許多自由軟體和專有軟體搭配構成,而非完全都是自由軟體)

至於教育上的應用,自由軟體允許任何人研究程式碼並做出改善,這點無疑是更平等、更自由的教材。[8]

以上個人淺見給各位參考。

可進一步參照之資料

0. https://www.getgnulinux.org/zh-tw/linux/misunderstanding_free_software/
1. https://www.redhat.com/en/technologies/linux-platforms/enterprise-linux
2. https://www.gnu.org/philosophy/selling.zh-tw.html
3. http://blog.nutsfactory.net/2016/08/30/linux-%e4%ba%8c%e5%8d%81%e4%ba%94%e9%80%b1%e5%b9%b4/
4. https://www.getgnulinux.org/zh-tw/windows/restrictions/
5. https://www.gnu.org/philosophy/free-sw.html
6. http://blog.nutsfactory.net/2010/05/16/patent-absurdity/
7. https://www.openfoundry.org/tw/foss-news/8592-open-source-innovation-patents-and-the-android-platform-in-perspective
8. https://www.getgnulinux.org/zh-tw/windows/stand_for_a_free_society/ 

作者:曾政嘉 (Cheng-Chia Tseng)。目前是中華民國軟體自由協會常務理事,此外亦長期參與多項自由軟體專案,為 Fedora 大使、Ubuntu Member、The Document Foundation Member、和 GNOME Foundation Member。  

2016年8月16日 星期二

世上沒有白得的軟體,自由軟體亦如是(下)

那麼對於沒有公司或基金會支撐的小型自由軟體專案,如果以免費方式發佈又會遇到什麼狀況呢? (續)
 

貢獻者時間競逐問題

要讓一個自由軟體專案能更多人參與,就必須解決貢獻者的生活問題,他們才有時間投入貢獻。因此要讓一個自由軟體專案能在臺灣在地生根發展,也一樣必須解決貢獻者的生活問題。

常見的自由軟體專案「投入時間」惡性循環就是:作者用閒暇時間開發,以自由軟體授權發佈 => 但只用閒暇時間開發,因此程式的臭蟲問題無法迅速處理,而且自由軟體的特性讓作者幾乎無法獲得額外收入 => 一些使用者因為程式問題久久未修而失去興趣甚至口出惡言,也因為忿恨心起當然無意樂捐給作者 => 作者只能用正職養活自己再說,有閑暇時間再把自由軟體開發當副業。

圍繞在這循環中的關鍵,就在於是否能解決投入者生活上的金錢問題,一旦生活無虞,就能全心投入,臭蟲也就逐漸少了,功能也越加豐富了。這就是為何許多專業的自由軟體專案,都需要有公司、有基金會、不斷籌募資金才能長遠持續下去的主因。

隱藏在免費自由軟體背後的代價

話說,各位知道你免費取用自由軟體時換取了什麼背後的代價嗎?

就小型的專案來看,通常沒有職業員工,只有業餘志工,因此需要業餘志工貢獻者的犧牲才能成就這樣一個專案。以臺灣常見的業餘志工參與模式為例,他們可能犧牲 了假期、睡眠時間或是健康(例如腕隧道症候群)、犧牲了和家人或小孩相處的時間、犧牲了交女友或陪女友的可能性等等,只為了能讓大家可以閱讀到中文介面、 能輸入中文字、甚至去貼合臺灣人的使用習慣。

有位朋友剛好是某自由軟體專案的主要翻譯者,他的職業是老師,他曾跟我提及:「老師是個做業餘自由軟體翻譯的好職業,因為寒暑假放假剛好適逢主要桌面環境或 Linux 散布版 string freeze 階段之後,正好可以處理翻譯。」(註:string freeze 是指這項軟體開發到一個程度,打算發表新版本,於是就不再改動軟體介面上看得到的文字,讓翻譯者有時間去處理的階段,最後再統合收錄翻譯整合到軟體中。)

永續經營自由軟體專案需要資金投入

所以大家能瞭解 LibreOffice、Blender、GNOME、Fedora、Ubuntu…等大型自由軟體專案何以免費提供了嗎?正是募集資金去支應貢獻者做事情,方法主要就是透過基金會或是商業公司來得到資金挹注,用錢去獲取貢獻者的投入時間。

基金會
  • LibreOffice by The Document Foundation
  • Blender by Blender Foundation
  • GNOME by GNOME Foundation

商業公司
  • Fedora by Red Hat
  • Ubuntu by Canonical

 

改變從現在開始

若想改變臺灣普遍對自由軟體的誤解,以為自由軟體就是免費,改變的開始就是「請不要再說自由軟體免費,因為自由軟體並非免費,免費只是提供者剛好佛心來的而已」。如果希望臺灣的自由軟體貢獻環境能有實質上的長期改善,就必須有資金的出現才行。期待臺灣有越來越多的基金會或公司願意投入這一塊,來帶領臺灣的自由軟體貢獻走到全新的層面。

期許未來臺灣能有一個更好、更健全的自由軟體貢獻環境。

作者 zerng07,目前是 Fedora 大使、Ubuntu Member、The Document Foundation Member、和 GNOME Foundation Member

世上沒有白得的軟體,自由軟體亦如是(中)

這樣一來,通常自由軟體專案都怎樣收費呢?(續)

常見自由軟體收費方式

目前主流常見的自由軟體廠商或發行單位,有以下的軟體收費方式:
  • 宣佈永遠免費提供,例如 Canonical 公司發行的 Ubuntu 作業系統、The Document Foundation(文件基金會)發行的 LibreOffice 辦公套裝軟體都是如此。
  • 必須付費的訂購版(月費制、年費制、或一次買斷),例如 Red Hat 公司發行的 Red Hat Enterprise Linux (RHEL,Red Hat 企業用 Linux) 作業系統等。
  • 自由讓用家決定費用,例如 elementaryOS 組織發表的 elementaryOS 作業系統等。
  • 主要軟體免費,但模組或額外功能需要付費,例如 XMind 公司推出 XMind Free、XMind Plus、XMind Pro 三套心智圖軟體,僅 Free 免費提供,而有更多附加功能的 Plus 和 Pro 則必須付費。
  • 僅發佈軟體不提及費用,但免費放在網路上供大衆取用,目前絕大多數自由軟體專案都是採取這樣的發佈方式。

問題來了,前面有提到即使是原作者或發佈者都無法限制後續第二手、第三手的收費模式,那麼他們是如何賺錢的?畢竟第二 手以後都有可能另外以免費模式提供,或是以更低價跟他們競爭?例如 CentOS 作業系統,就是先取得 Red Hat Enterprise Linux 的源始碼,然後重新編譯出來,免費在網路上發佈供大眾使用的成品。看到這裡,你可能認為這是兩個互相排擠的兩種產品,CentOS 應該會搶走許多 RHEL 的潛在客源。

Red Hat 公司和 CentOS 結盟

或許會令你意外,在2014年的時候,Red Hat 甚至宣佈跟 CentOS 組織結盟,也協助 CentOS 建立正式的管理委員會架構來帶領 CentOS 社群。他們並非是要透過這種滲透來打擊 CentOS 社群,而是透過支薪的員工來協助 CentOS 專案處理目前該專案運作上遇到的問題,並透過合作以擴大 Red Hat 相關產品的整體生態系統。為什麼呢?Red Hat 發表的問答集中就提到,CentOS 和 RHEL 的產品定位實際上並不相同,前者為使用者和貢獻者開發、維護支援的社群專案,後者為 Red Hat 公司為其訂購者開發、維護、支援的付費產品。CentOS 的支援來自社群,所有修正都直接取自 RHEL;但 Red Hat Enterprise Linux 更可以提供教育訓練、有完整的支援架構可以修正客戶問題、也能開發新功能導入新版本中。

白話來講,對 Red Hat 而言,CentOS 吸引的是還無法付費、或本身有能力不付費的可能客戶,而非搶走有能力付費的潛在客戶。既然 CentOS 源於 RHEL,若客戶需要商業服務,勢必要尋求 Red Hat 的協助。以企業而言,為了採用的產品有商業支援可以處理產品問題,多半會付費購買商業支援;若要採用免費的社群產品,就必須自主處理可能發生的問題,那也是另一種成本。畢竟凡事都有代價,天下沒有白吃的午餐。免費就必須付出非產品標示上的代價。

免費的代價

你以為你免費獲得了某項好處,但你可能已經花費許多時間、金錢等潛在成本而不自知。免費的自由軟體只是表像,它的花費就在你可能不知道的地方。

所有專業的東西都需要專業參與,自由軟體也是。如果希望軟體的貢獻者能參與軟體的相關工作,例如開發、翻譯、修正問題等,那麼這些貢獻者就必須先不擔心生活,而人生活需要金錢,因此公司會僱用員工來開發專業軟體。以 Linux kernel 這個系統內部核心為例,2010年 Linux Foundation 統計就指出,Linux kernel 有 75% code 源始碼來自支薪僱員開發;來到 Linux 誕生二十五週年後的2016年,這個比率更上升到 92.3%。例如免費提供到你手上的自由軟體產品,不管是 Ubuntu 這套 Linux 也好、LibreOffice 這套辦公軟體也好,事實上它的背後成本是許多公司、基金會、和志願貢獻者等無數人幫你承擔的。

那麼對於沒有公司或基金會支撐的小型自由軟體專案,如果以免費方式發佈又會遇到什麼狀況呢? (待續…)

作者 zerng07,目前是 Fedora 大使、Ubuntu Member、The Document Foundation Member、和 GNOME Foundation Member

世上沒有白得的軟體,自由軟體亦如是(上)

 天下沒有白吃的午餐

有句俗諺這樣說:「天下沒有白吃的午餐」,說明白點就是凡事都有代價的,東西不會憑空出現。即使你真的哪天得到一頓免費的午餐,事實上你或其他人可能已經為這頓午餐付出你所不知道或忽略掉的代價。

自由軟體目前流行的其中一個原因是因為「可以免費取得」,但最常被拿來反駁自由軟體背後成本高的論點亦是「免費的最貴」。

四大自由

首先,我們必須先澄清一下。「自由軟體」一詞並非指價格免費,而是強調使用者有四大自由,
  • 自由之零:自由使用、
  • 自由之一:自由研究與改寫、
  • 自由之二:自由散佈、
  • 自由之三:自由改善並釋出成果。
在實務上,即使是把軟體轉手給其他人的動作都需要成本,因此在軟體散佈出去的過程中,散佈人都可以向受用人收取費用。

自由軟體可以販賣

回到最早先 Richard Matthew Stallman (RMS) 開始提倡自由軟體概念的洪荒時代,他就是以販售 Emacs 這套編輯器賺錢生活的。此外,如 GPLv3 這項自由軟體基金會(FSF)所定的授權條款中的〈Preamble〉(前言)一節就明講到, 

When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things.

概略翻譯供參考:「當我們提及自由軟體時,我們講的是自由,而不是價格。我們的 GPL 通用公眾授權主要目的是希望您可以自由地將自由軟體散佈出去(而且如果你想要的話可以收費);自由軟體是提供你源始碼,或是說你想要源始碼就提供給你;自由軟體也是你可以修改這個軟體,或是把其中一部分放到新的自由軟體之中;而且你知道你有權做上述這些事情。」

不管是以免費或收費方式散佈該軟體給收受者,散佈者都必須給予收受者授權條款中明訂的所有自由。所以自由軟體講的是軟體的授權模式賦予使用者自由,無關免費與否,並不阻止任何人透過自由軟體賺錢。若你遇到免費提供的自由軟體,那只是剛好提供者佛心來的而已。

正是因為自由軟體可以給任何人自由散佈出去再給其他人使用,沒有限定軟體散佈的方式或費用,即使是軟體原作者或原發佈者也無法限制第二手、第三手…等,他們在散佈這項軟體時是不是也收取同樣費用。他們可能收取更高、更低的費用,或甚至願意無償免費提供都有可能。

這樣一來,通常自由軟體專案都怎樣收費呢?(待續…)

作者 zerng07,目前是 Fedora 大使、Ubuntu Member、The Document Foundation Member、和 GNOME Foundation Member

2016年6月15日 星期三

Visual Studio Community 與 Express 商業免費使用之謎




Visual Studio 是一款非常好用的開發工具,而 .NET Framework 也是極其成熟好用的開發框架,對於開發者來說可以快速完成所需要的軟體。



版本採用選擇?


.NET Framework 既然是 Microsoft 家的產品,理所當然應該要採用 Visual Studio 進行開發最為理想,對於沒有經費的團隊來說,採用免費版本肯定是優先選擇。

目前 Visual Studio 在「免費」領域有兩個版本:Community 與 Express。







真的免費使用嗎? 


目前有幾種觀點:「Community 是用來取代 Express 做為免費版本」、「Community 在企業也是完全免費使用」。

事實上真的是這樣嗎?我們來看一下微軟網站的說法:

Community 版 (連結)


Express 版 (連結)



並不是 Community 可以任意於組織內免費商業使用,有兩個但書,任一條件達成都算超過範圍:

  1. 電腦數多於 250 台
  2. 年營收高於 100 萬美金


至此,答案明朗。


回到問題,如何選擇?


若您的組織未來擴充可期,可先採用 Community 版本,待成長後進而採購 Professional 或更高級的版本;若成長也不考慮轉用更高級版本,那麼一開始就採用 Express 版可以降低未來轉換之困擾。


可是 Express 版少了許多功能怎麼辦呢?例如 Code Coverage、Profiling ...


開源的另一種選擇。


幸好,這世界永遠不缺熱血,有團隊開發了一款「SharpDevelop」。



SharpDevelop 已經是開發多年的專案,知名的跨平台 .NET 開發工具「MonoDevelop」就是從 SharpDevelop 分支出來(有趣的是,MonoDevelop 現在變成 Xamarin Studio,而且經過併購又重回微軟懷抱了)。

SharpDevelop 是完全開源 Open Source 的專案,對於 .NET 的支援性相當良好,我甚至可以同一個專案檔在 Visual Studio Express 與 SharpDevelop 之間互相開啟與存檔完全正常,同時也增加了許多功能與外掛套件支援,可用以補足 Visual Studio Express 缺少的功能,例如 Code Coverage、Profiling ... 等。

如果對採用 SharpDevelop 完全取代 Visual Studio 做開發有疑慮,在此我提供另一種參考作法:大部份開發等情況採用 Visual Studio Express 進行,需要其它進階的功能時,使用 SharpDevelop 做為輔助。


結論。


有些朋友提出,既然公司已經發展到一定程度,購買高階如 Professional 版本是應該的吧?

估且不論對錯,「軟體自由」是一種選擇,選擇所用的軟體,是一種自由,所以上述觀點正確,想繼續採用 Express 的想法也沒錯,想改用 SharpDevelop 的念頭更不是壞事。

最後,選擇適合自己的版本才是最重要的,若購買商業版本可以發揮具體效益,創造價值,肯定值得投資;但是,若採用了 Professional 甚至 Ultimate 版本卻沒發揮到應有的效益,甚至都是冗餘功能,實為可惜,則可選用 Express,或者選擇另一種思維使用開源軟體,不但節省,也不會讓自己因此而被綁住。

以上個人淺見提供。


原文轉自「節省工具箱 / Jason Tools」部落格。