什麼是開源?談談開源授權、歷史...

Total votes: 386

原文連結:What is open source? Licensing, history, and more

這陣子我有幸在2015 CCSC 中南大會(Consortium for Computing Sciences in Colleges 資訊教育組織聯盟),參與了來自紅帽公司(Red Hat 軟體公司)的吉娜·利肯斯(Gina Likins)有關開源教學的演講。

開源是......?

吉娜在一開始便詢問有多少人作開源教育工作?現場沒有任何人舉手,這表示她得從開源是什麼開始講起:她認為開源就像是餅乾和做餅乾的食譜。你可以把餅乾和食譜分享給朋友及家人,如果當中有人對堅果過敏而且剛好食譜裡有堅果的話,她可以直接更改食譜裡的原料,其他人當然也可以更改食譜的內容,讓餅乾更好吃。但你大可以到店裡買現成的餅乾,只是成分就沒辦法全都知道,而且要自己做出一模一樣的餅乾也相當困難。如果真的嘗試做出相同的餅乾,甚至還有承擔被起訴的風險

另一個開源的例子:你不會買一臺引擎蓋被焊住打不開的車子。竟然如此,為什麼我們還要去買專有軟體(非自由軟體)?如果你沒辦法知道引擎蓋底下有什麼,你只能維持著車子原本的樣子,這可能不是你所希望看到的情況。當然,有些人覺得這樣沒什麼不好的,但對於我們這種專家可不行這樣,我們得有想要深入了解並加以調整的想法。

授權許可

了解版權相當的重要。吉娜放了一張畫著花的漂亮繪圖。圖畫原本就有其著作權,吉娜則是透過創用CC授權方式分享它。那自由軟體授權和開源軟體授權有什麼不同呢?自由軟體授權的東西永遠只能以自由軟體授權方式分享散布,但你可以在修改開源軟體授權的東西後,以其他授權方式發布。如果採用自由軟體授權的話,沒有其他的選項,授權必須維持相同。

開源的歷史

知道神奇的開源力量怎麼來的也非常重要。1950年代的時候,軟體與硬體是綁在一起販售的。到了1960年代,由於司法單位認為這種作法是一種壟斷,事情才開始有了轉變。1983年,理查德·斯托曼(Richard Stallman)推行GNU計畫,開啟了自由軟體及開源的潮流。而在1989年的時候,第一版的GNU通用公共授權條款(GPL, GNU General Public License)正式釋出。
這些歷史是每個主修電腦科學的大學畢業生都得知道的!尤其是對於開源授權的了解,更是要清楚,畢竟我們需要知道其他人擁有哪些權利,可以使用我們所製作的軟體?

有趣的統計資料

美國《財富》雜誌每年評選的全美最大500家公司中,有90%使用開源軟體
全美50州的州政府皆使用開源軟體
當今76%的開發者使用開源的工具

關於學生

學生們也需要了解開源,以在找工作前將自己技能準備好。一位學生可以透過學習開源的作法,在一個虛擬團隊合作中向他人學習寫程式技巧。甚至藉由去參加開源計畫,學生們可以習得學習的方法,因為沒人會一直帶領著你,你必須自己學習進步。這就是讓學生學習解決問題、問對的問題、自己找資料閱讀的方式。透過開源教學,學生們得以著手撰寫程式碼,並且從中學習如何分工,並討論各種想法的好與壞。

筆者註:我自己完全不記得我以前電腦課寫過的任何程式。那些程式對我沒有任何用處,也不會讓我想再拿出來看看。但是在開源計畫中學習的學生們知道他們所寫的程式,是確確實實有人在使用的。

加入開源計畫

如果你正在尋找想加入的開源計畫,不妨看看「人道開源計畫」(HFOSS),參與這個計畫的人比較多元,而且也有較多的女性參與者。教導學生參與並執行計畫的能力相當重要,因為每個人在日常生活中多少要跟其他人合作。而且呢,一個人寫一份程式碼的機會也相當的小,一般都會加入一個已存在而非新成立的計畫,因此需要學習與其他團隊中開發者溝通。

待在一個開源計畫團隊,可以與不少業界的開發者互動。參與計畫的學生會發現,這在找工作的時候非常有幫助,同時這也是向自己證明自己實力的方式

開源小知識

我們要如何區分開源授權與私有授權呢?我們已經討論過授權相關議題,不過還有一些事值得一提,像是開源原則及開源社群。
以下列舉一些原則:

  • 開放式交流:透明化社群
  • 參與精神:創造源自於自由的合作
  • 快速地構想:雖然容易同時造成快速失敗,卻可以找出更好的解決方案
  • 菁英式競爭:最佳點子獲勝
  • 著重社群發展:一群人可以做更多事

這些看起來很棒是吧?這個嘛......,事實上是有些問題的。第一件事,如果你是一位老師,基本上你教的東西你都了解。開源計畫恐怖的地方就在於你不會清楚了解它裡裡外外的一切。不過這是很好的機會告訴小朋友:不懂是沒有關係的,並且教導他們怎麼問對的問題以及學習新事物的方式。其實這就是我們成長的方法,即使你寫出來的程式碼不被接受,你還是有所成長。讓學生們領悟這個道理,可以使他們以後有能力自己學習新的事物。

另外一點是,參與開源計畫會讓你覺得像是一個陌生人身處在一個陌生的島上。計畫裡通常都不會有像是經理或組長這種負責人,有時候這還蠻麻煩的。這是一個你無法控制的環境,你就像是個訪客一樣。情況不會如同你走進某間教室說:「這就是我們今天要做的事!」同時,社群裡也會有一些不是很友善的人。在自由透明的空間就會存在很多意見,但某些人表達意見的方式相當無禮。如果開源計畫團隊裡有人力資源部門的話,我相信這些事情會大幅減少,不過開源社群是不玩這套的,在這自由開放的地方,誰要講什麼都可以。不過有一個好處是,若你恰好身為一個老師,你可以藉此機會告訴你的學生怎樣的表達方式比較恰當。你可以在吉娜主持的阿帕契軟體基金會大會(ApacheCon)開場中,學到更多開源社群的禮儀。

「開源這種既令人畏懼又讓人驚嘆的東西,不覺得很神奇嗎?」吉娜說道。

老師們要如何將開源更進一步作為教學工具呢?POSSE(大學及青年領導力發展計畫)大會裡,有提供教育者教導開源議題的教學。另外,TeachingOpenSource.org(提供開源教學者的網路合作平台)也值得看看,你也可以在網站上提供電子郵件以獲得最新消息。最後也建議你到OpenHatch(提供開源教學者工具、討論平台的網站)上摸索,尋找製作課程的實用工具。

原作者: 
Nicole C. Engard
翻譯者: 
蘇浩禎
授權標示: 

本篇文章出處為 Opensource.com,翻譯改作後同樣以 CC BY-SA 4.0 授權發布。