深層解讀開源軟件
從自由軟件到開源軟件,雷蒙德從概念和理論上清除了“開源”和“商業”之間的障礙,“開源軟件”可以進行商業化運作,“商業軟件”同樣也可以選擇“開源”。
“開源”的目的是方便知識共享,而商業化運作則是為了將停留在“知識”層面的軟件代碼與文檔轉變為“軟件商品”,從而使知識轉化為現實生產力。
對于個人用戶而言,他們更喜歡那些源碼開放的自由軟件,并不在乎軟件背后是否有正規的企業提供升級、打補丁等服務,但是企業用戶卻不會為了便宜就信任一家隨時可能消失的軟件組織,享受免費的服務。
而要想深入理解自由軟件和開源軟件之間的區別,以及為什么開源軟件也可以進行商業化運作,就必須從軟件生產的本質——“知識創新”談起。
知識創新可以分為兩個階段:研究與開發。研究階段的產物是純粹的知識,不是直接提供給用戶應用,而是提供給研究人員自己,作為繼續開發的基礎。開發階段則是將研究成果加以商業化應用,將其轉變為用戶可以直接使用的產品。
那么,按照這種劃分標準,軟件的源代碼應該是研究階段的產物,因為它們本身不能被用戶直接應用,還必須對源代碼進行編譯、連接、打包、部署,并輔以齊全的質量保證措[創 業網m.ningdatou.com]施與售后服務,才轉變為用戶可以直接使用的軟件產品。
由此,構思和編寫源代碼的過程可以看作是軟件的研究階段,而將源代碼轉變為軟件包并提交給用戶的過程可以看作是軟件的開發階段。
傳統的商業軟件公司將軟件的研究與開發完全置于內部的創新模式之下,包括以下步驟:
編寫源代碼——申請軟件專利——將專利轉變為軟件產品、服務。
而“自由軟件”則完全與之相反,軟件的研究與開發過程完全由松散的社區完成。
不難看出,傳統商業軟件和自由軟件是兩個極端。前者對知識的共享和相互借鑒有一定的妨礙作用,而后者則無法保證將知識轉化為商品。
而開源軟件則采取了折中方式,它將研究活動與開發活動進行分離,由不同的實體加以完成:由社區或志愿者進行研究活動,發布研究成果——源代碼。而商業公司繼續開發公開的源代碼,將源代碼轉變為軟件產品與服務,從中獲利。
這樣,既促進了知識的共享,同時又確保知識轉化為可靠的商品。社區成員可以借鑒并利用他人的研究成果,每個人都只需要貢獻自己微薄的力量便可產生“眾人拾柴火焰高”的[創業網m.ningdatou.com]累積效應。而企業將社區的研究成果轉變為產品,促進了社區的研究成果的應用,反過來又可以為社區提供大量資金。社區與企業相互促進,形成了開源軟件不斷發展、創新的良性循環。
|