1. 程式人生 > >開源社群的由來(轉載)

開源社群的由來(轉載)

開源的含義

 “開源社群”(Open Source Community)更準確的名稱應該是“開源軟體社群”(Open Source Software Community);而“開源軟體”(Open Source Software)則是“開放原始碼軟體”的簡稱。因此,要想解釋什麼是“開源社群”,就必須先解釋什麼是“開源軟體”;而要想解釋“開源軟體”,就必須先解釋什麼是“原始碼”(Source Code)

簡稱 全稱

開源社群(Open Source Community)

開源軟體社群(Open Source Software Community)

開源軟體(Open Source Software)

開放原始碼軟體
  1.  

 

 

 

前言

  • 原始碼,也稱源程式,是指人類可以讀懂的計算機語言指令。之所以被稱為“原始碼”,在於2點:
  1. 原始碼是目的碼之源。電子計算機只能讀懂以機器語言表達出來的目的碼,它讀不懂原始碼。但人們直接通過機器語言編寫目的碼,既不符合人的語言習慣,也十分低效。因此,人們通過近似於日常語言的高階語言來編寫原始碼,然後通過計算機系統中的編譯器,原始碼就可以轉換為電子計算機可以讀懂的目的碼。這樣做,既符合人運用語言的習慣,也更為高效。從這一點來說,原始碼是相應的目的碼的源。
  2. 原始碼是後續相關軟體程式碼的源。對於程式設計師來說,看到1款軟體的原始碼,就能夠讀懂軟體設計者關於這款軟體的設計構思,而如果讀懂了1款軟體的原始碼,在理論上講,就可以在其基礎上開發出一系列的後續軟體。從這一點來說,1款軟體的工作程式碼是後續軟體工作程式碼的源。

在某種意義上講,開源軟體才是軟體產業的本源。1969年,美國電報電話公司(AT&T)貝爾實驗室的研究人員Ken Thompson編寫了UINX的第一個版本,這是一個多使用者、多工的作業系統,整個七十年代,它都在免費傳播,從而迅速成為在大學和研究機構中很流行的系統。UINX是人類第1個用高階語言(C語言)編寫並有較高的執行效率的系統,是使用原始碼的軟體的先驅,也是開源軟體的先驅。

雖然開源軟體是軟體產業的本源,但是,今天的軟體產業的主流卻不是開源軟體,而是“私有軟體”(Proprietary Software)。因此,研究開源軟體,就不得不談及私有軟體。

開源社群的起源

私有軟體

1976年2月3日, Bill Gates發表了著名的《Open Letter to Hobbyists》(致電腦業餘愛好者的一封公開信),在這封公開信中,Bill Gates明確提出軟體應該具有“CopyRight”(版權)。這封公開信奠定了軟體產品“CopyRight”的理論基礎,也促使私有軟體成為軟體產業發展的主流。Copy Right”理念的提出,必然導致原始碼被徹底被封閉起來,這是因為3點:

  • 不封閉原始碼,必然導致一些非本軟體開發企業的程式設計師以免費方式獲得原始碼,並以此無償使用這款軟體來獲利,而該軟體開發企業難以收回開發成本;
  • 不封閉原始碼,一旦非本軟體開發企業的程式設計師讀懂了這款軟體的原始碼,他就可以在此基礎上開發出一系列的延伸軟體,而這些後續軟體必然與本軟體開發企業自行開發的後續軟體產生競爭,這將嚴重損害本軟體開發企業的利益;
  • 即使本軟體開發企業並不準備自行開發後續軟體,其他程式設計師開發的後續軟體的“Copy Right”也存在著難以合理界定的難題。

從這個意義上講,私有軟體就是閉源軟體。客觀地講,Bill Gates的“Copy Right”理念以及私有軟體的興起,對於推動軟體產業的興旺功不可沒。但是,Microsoft等私有軟體廠商對於軟體市場的壟斷,引發了使用者和廣大軟體開發者的強烈不滿,興起了反對私有軟體理念的運動,開源軟體就是這種運動的重要組成部分。首先興起的私有軟體運動,是自由軟體運動(Free Software Movement),它是開源軟體運動的先河,因此,在詮釋開源軟體之前,應該先介紹一下自由軟體。

自由軟體

1983年,MIT的Richard Stallman 開始倡導自由軟體運動。1985年,Stallman等人建立了自由軟體基金會(Free Software Foundation,簡稱FSF)。Stallman提出了與“Copy Right”理念針鋒相對的“Copy Left”(許可複製權)理念,其表現形式是GPL,即公共許可證(General Pubic License)。自由軟體應該是具有如下4大自由的軟體:

  • 出於任何目的執行該軟體的自由;
  • 有研究該軟體如何執行並加以改進使之更符合自己需要的自由;
  • 有重新發布以幫助鄰里的自由;
  • 有改善程式,公佈改進方案(以及通常的修訂版)以推動整個社群利益的自由。

1991年,Linus Torvalds開發出Linux,並接受“Copy Left”理念,使得自由軟體運動有了自己可以與MicrosoftWindows相抗衡的作業系統。自由軟體運動初戰成功。但是,自由軟體運動關於自由的追求,畢竟和現實的商業氛圍格格不入,帶有著過於理想化的色彩。這種反商業的信條,讓一些本來也反對私有軟體的人士對自由軟體敬而遠之。正是在這種背景下,一部分原有自由軟體運動人士,如Eric Raymond,開始嘗試將理想的自由軟體與現實的商業氛圍進行某種銜接,這就是本文所涉及的開源軟體運動。

開源軟體

1998年2月,Eric Raymond等人正式創立“Open Source Software”(開源軟體)這一名稱,並組建了開放原始碼(軟體)創始組織(Open Source Initiative Association,簡稱OSI)。OSI曾給出了開源軟體的標準定義。按照OSI的定義,開源軟體是指允許任何人使用、拷貝、修改、分發(免費/少許收費)的軟體。它必須滿足以下6個條件:

  • 允許自由地再發布軟體;
  • 要求程式的原始碼是可獲得的;
  • 可以修改和派生新的軟體,並可以重新發布;
  • 釋出時保持軟體原始碼的完整性;
  • 許可證不對任何個人或群體有歧視,許可證不得歧視任何應用領域;
  • 與程式有關的權利必須適用於任何重新發布的程式,不需要得到附加的其它許可證的許可。

用一句話概括,開源軟體就是原始碼開放且可以自由複製的軟體。開源軟體運動超越自由軟體運動的地方在於,它既抓住了私有軟體的Achilles Heel(阿基里斯之踵),即封閉原始碼,又可以實現與商業氛圍的結合。

開源社群

由於以Microsoft為代表的私有軟體企業佔據著軟體產業的主流地位,開源軟體要想生存和發展,就必須在組織形式上進行創新。這一創新是由Eric Raymond在1998年提出的,他在被堪稱開源軟體的<The Cathedral and the Bazaar>(大教堂和市集)中正式提出了“開源社群”模式(Raymond將開源社群形象地比喻為“市集”)。開源社群是開源軟體開發最重要的組織形式,是由所有參與開發和改進可以軟體的愛好者所組成的社群。

2002年,Seidel發表了論文<An Initial Description of the C-form Organization>(關於C型組織的最初描述),認為開源社群是一種新的組織結構,他將這種新的組織結構命名為“型”組織。Seidel認為“型”組織有6個基本特徵:

  • 沒有正式的組織邊界;
  • 追求更高目標的強有力的團隊文化;
  • 所進行的工作沒有物質報酬——免費公佈產品的原始檔;
  • 沒有商業祕密——所有的開發工作都是在網際網路上公開進行的;
  • 聯絡方式經濟有效(通過網際網路)
  • 專案最初源自於興趣而不是基於市場調研。

LernerTirole2001年發表論文<The Open Source Movement :Key Research Questions>,他們經過研究發現,開源社群往往由核心團隊、領導者使用者、跟隨使用者、商業企業組成。其中,核心團隊居於整個社群的中心,是非制度化的、動態的社群領導者。開源軟體的領導者往往具有如下2個特徵:

  • 領導者都是專案初始程式碼的開發者或早期的重要貢獻者;
  • 在軟體後期發展中,不一定是重要的貢獻者,而是專案管理者,並具有可信的管理者地位。

從上述關於開源社群的分析可以看出,開源社群這種組織有著不同於軟體開發企業的本質特徵,這種本質特徵就在於,軟體開發企業內部的各個員工是基於利益關係而組織在一起的,而開源社群內部的各個成員是基於興趣而走到一起的。從這個角度來說,軟體開發企業是一種利益組織,而開源社群是一種興趣組織。

開放社群

對於開源社群這種軟體開發組織,西方學者進行了更加深入的研究,他們提出了更為深刻的理解,這就是“開放社群”, (Free/Open Communities)

Tzouris2002年發表了論文<Software Freedom, Open Software and the Participant's Motivation——A Multidisciplinary Study>(軟體自由、開源軟體和參與者動機——一項多學科的研究),在這篇論文中,Tzouris首先提出,開源社群應該是“開放社群”,他界定了開放社群的4個基本特徵:

  • 共享的標準化和原則性的信念:指的是基於共同理解的為軟體作貢獻的共享的價值理念;
  • 共享的因果信念:指的是對因果和報酬結構的共同理解;
  • 對合法有效性的共同意見:指的是貢獻者對目前問題採用的解決方案的有效性具有一致意見;
  • 共同政策企業:指的是能夠通過為軟體提供原始碼實現的共同目標。

Reagle2003年發表了論文<Socialization in Open Technical Communities>,在這篇論文中,Reagle也認為開源社群應該是“開放社群”,他認為“開放社群”應該具有如下5個特徵:

  • 開放性:提供滿足開放原始碼定義的產品;
  • 透明性:可以獲得所有的程式、規則、決定和原理;
  • 完整性:確保所有的程式和參與者貢獻的完整性;
  • 不歧視:禁止對個人、團體或與社群活動不相關的特徵的歧視,應客觀評價個人和建議的優缺點,領導階層應屬於精英分子或建立在民主選舉基礎上;
  • 不干涉:這是開放的關鍵,如果參與者不同意前幾條的標準,他們可以帶走自己的產品在他們自己的概念標準下著手自己的工作,不受任何干涉。

如果僅僅憑藉興趣,開源社群是難以發展壯大起來的,開源社群要想真正發展壯大到可以和巨型軟體開發企業進行有效的競爭,就必須在興趣的基礎上,形成共同的文化,也就是要將開源社群從興趣組織發展為文化組織。

這一點,前文所提到的SeidelTzourisReagle3位學者都已經認識到這一點。Seidel認為“型”組織應該“追求更高目標的強有力的團隊文化(型’組織的第2個特徵)”。Tzouris關於開放社群的4個基本特徵的研究,實際上都是指開源社群的文化特徵。Reagle認為開放社群應該具有的“不歧視”和“不干涉”也都是關於開源社群文化的界定。西方學者關於開源社群所應具有的文化特徵的研究成果,在一定程度上已經初步揭示了本文所指的開源文化的內涵。當然,在本文看來,這些學者關於開源文化內涵的理解,無論在全面上,還是深入上,都有不足,還需要本文展開進一步的研究。

總結

 

如果僅僅憑藉興趣,開源社群是難以發展壯大起來的,開源社群要想真正發展壯大到可以和巨型軟體開發企業進行有效的競爭,就必須在興趣的基礎上,形成共同的文化,也就是要將開源社群從興趣組織發展為文化組織。

這一點,前文所提到的SeidelTzourisReagle3位學者都已經認識到這一點。Seidel認為“型”組織應該“追求更高目標的強有力的團隊文化(型’組織的第2個特徵)”。Tzouris關於開放社群的4個基本特徵的研究,實際上都是指開源社群的文化特徵。Reagle認為開放社群應該具有的“不歧視”和“不干涉”也都是關於開源社群文化的界定。

西方學者關於開源社群所應具有的文化特徵的研究成果,在一定程度上已經初步揭示了本文所指的開源文化的內涵。當然,在本文看來,這些學者關於開源文化內涵的理解,無論在全面上,還是深入上,都有不足,還需要本文展開進一步的研究。

轉載自:http://blog.51cto.com/zhaisj/465512