GitHub 的 App 會開源嗎?
早在 2019 年的 GitHub Universe 大會上,GitHub 官方就宣布,他們即將推出移動端 App。而近日,GitHub APP 終于問世了。
作為世界上最受歡迎的同性交友網(wǎng)站,在發(fā)布之后自然是喜大普奔,但在此之外,也有很多開發(fā)者提出功能不太全面,希望可以添加比如代碼編輯之類的其他功能。
對此,有熱心的開發(fā)者留言建議,建議將 GitHub 的移動應(yīng)用程序開源,大家一起來進行優(yōu)化。
對于此事,GitHub 的總監(jiān)給出了回復。
GitHub 的移動應(yīng)用程序會開源么?
對于這個問題,GitHub 的工程總監(jiān) Ryan Nystrom 給出了兩個回復:
"It's not right now。"
"Maybe."
開源是現(xiàn)在的一個大趨勢,雖然有很多軟件確實是不需要開源的,但作為全球最大的開源軟件平臺,自己的產(chǎn)品不應(yīng)該開源么?
當今很多開源項目的開發(fā)都是在 GitHub 上或者通過 GitHub 進行的。對于這一開發(fā)者用來“吃飯”的工具,改善 GitHub App 的使用體驗?zāi)苡行У母纳崎_發(fā)者的工作效率和方式,所以如果該項目真的開源,一定會吸引很多開發(fā)者參與其中。
但 Ryan Nystrom 之所以不急于開源或者不“期待”開源的原因,是他認為要想讓開源項目蓬勃發(fā)展,既要有對其感興趣的開發(fā)者群體,也需要該群體具備足夠的能力來為項目作出貢獻。
我們可以看一下 Linux。Linux 的開源之所以做的好,是因為每個開發(fā)者都需要這樣的一個操作系統(tǒng),并且有相當一部分人有能力對其作出貢獻。
但根據(jù)業(yè)內(nèi)分析師給出的分析,假如 GitHub 推出一個收費程序,那么開發(fā)者的興趣就會大幅降低;如果 GitHub App 的開源項目只是通過加載項/擴展的方式進行開發(fā),那么 GitHub 項目的開源就沒有太大的意義。
所以 GitHub 總監(jiān)說的“Maybe”,可能真的就是個“Maybe”了,畢竟沒有人比他們更了解開源能帶來多少價值。
開源的定義
開源的概念,在電腦誕生前就已經(jīng)出現(xiàn)了。最早的開源可能是發(fā)生在「吃」的領(lǐng)域,為了生存下去、提升食物的品質(zhì),人類學會了分享食譜。而目前對于開源比較認可的定義,由 Debian 的創(chuàng)始人 Bruce Perens 提出:
自由再散布(Free Distribution):
- 允許獲得源代碼的人可自由再將此源代碼散布。
源代碼(Source Code):
- 程序的可執(zhí)行檔在散布時,必需以隨附完整源代碼或是可讓人方便的事后獲取源代碼。
派生著作(Derived Works):
- 讓人可依此源代碼修改后,在依照同一許可協(xié)議的情形下再散布。
原創(chuàng)作者程序源代碼的完整性(Integrity of The Author’s Source Code):
- 意即修改后的版本,需以不同的版本號碼以與原始的代碼做分別,保障原始的代碼完整性。
不得對任何人或團體有差別待遇(No Discrimination Against Persons or Groups):
- 開放源代碼軟件不得因性別、團體、國家、族群等設(shè)置限制,但若是因為法律規(guī)定的情形則為例外(如:美國政府限制高加密軟件的出口)。
對程序在任何領(lǐng)域內(nèi)的利用不得有差別待遇(No Discrimination Against Fields of Endeavor):
- 意即不得限制商業(yè)使用。
散布許可協(xié)議(Distribution of License):
- 若軟件再散布,必需以同一條款散布之。
許可協(xié)議不得專屬于特定產(chǎn)品(License Must Not Be Specific to a Product):
- 若多個程序組合成一套軟件,則當某一開放源代碼的程序單獨散布時,也必需要符合開放源代碼的條件。
許可協(xié)議不得限制其他軟件(License Must Not Restrict Other Software):
- 當某一開放源代碼軟件與其他非開放源代碼軟件一起散布時(例如放在同一光盤),不得限制其他軟件的許可條件也要遵照開放源代碼的許可。
許可協(xié)議必須技術(shù)中立(License Must Be Technology-Neutral):
- 意即許可協(xié)議不得限制為電子格式才有效,若是紙本的許可協(xié)議也應(yīng)視為有效。
在軟件產(chǎn)業(yè)中,免費軟件、開源軟件與自由軟件的概念常常被不同程度地混淆起來,一般人并沒有理順其中的邏輯關(guān)系,造成了一定的誤解,也引發(fā)了不少的錯誤決策。
但其實簡單來說,免費軟件不一定必然開源,開源軟件不一定必然免費。這點大家都很好理解。
嚴格地來說,開放源代碼軟件與自由軟件是兩個不同的概念,只要符合開源軟件定義的軟件就能被稱為開放源代碼軟件(開源軟件)。自由軟件是一個比開源軟件更嚴格的概念,因此所有自由軟件都是開放源代碼的,但不是所有的開源軟件都是“自由”的。
雖說自由的態(tài)度就是要激勵打破牢籠穿越圍墻迎接思想的開放,努力分享展示自己的技術(shù)、原理,而不為了蠅頭小利而對自己所謂的“技術(shù)”沾沾自喜而固步自封,但自由軟件是否一定免費呢?
也不能一概而論。
每一位自由軟件的貢獻者當然是此軟件的開發(fā)者和免費使用者,但對于普通用戶而言,就不那么確定了。普通用戶一般需要的不是軟件而是服務(wù),軟件也許是免費,但是服務(wù)就從來都不是免費的了。
開源的價值
對于很多人來說,提到開源想到的就是「免費」和「非專業(yè)軟件」。但實際上,隨著開源的發(fā)展,現(xiàn)在的「開源」已經(jīng)成為技術(shù)發(fā)展最好的生長模式之一。
可以這么說,如果沒有開源,很多的科技企業(yè)都不能達到今天的行業(yè)高度,比如谷歌、Facebook 和我們前面提到的 Linux。
為了讓更多人能夠使用優(yōu)秀的產(chǎn)品、讓技術(shù)或者項目能夠群策群力、快速的發(fā)展升級,都離不開開源帶來的價值。
美國的科技企業(yè)之所以熱衷于開源,和文化有很大的關(guān)系。如果一家企業(yè)沒有開源項目,會被質(zhì)疑這家公司只會一味的索取,而不為行業(yè)和生態(tài)做出應(yīng)有的貢獻。
所以從企業(yè)層面來說,開源一方面可以樹立品牌形象,另外還可以通過開源項目吸引人才,招攬員工。往大了說開源對于企業(yè)甚至具有一定的戰(zhàn)略意義。
比如 Android,最初就是通過開源和病毒式的傳播一下就趕上了 iOS。
從個人層面來說,嘗試開源也有著兩個比較突出的意義。
第一是有助于提升自己的代碼水平。既然是開源項目,那么在寫代碼的時候一定會盡量的展現(xiàn)自身最好的水平,這會逼著自己讓代碼更簡潔、易懂。其次,你的代碼開源后,別人也能針對性的給你提出一些建議,幫助你進行代碼的優(yōu)化。
其次可以通過開源項目展示個人的能力。雖然現(xiàn)在 GitHub 已經(jīng)快被「別有用心的人」給玩壞了,但對于企業(yè)招聘來說仍然具有一定的參考價值。如果個人有個不錯的開源項目,那么在面試的時候一定是個不錯的加分項。
對于開源,你怎么看?