開源,一起來搞事情啊

開源是指源代碼公開,是一種軟體發布模式。我們通常看到的軟體都是經過編譯的程序,只有軟體的開發者才能看到程序的原始代碼,也只有他們才知道代碼的整個架構和思路是怎樣的。而開源就是把這些我們本來不知道的源代碼公布出來,所有人都可以對這些代碼進行修改和優化。

利大於弊

對於公司來說,要想盈利,公開軟體的源代碼是有風險的,因為開源意味著競爭對手也可以看到,一些特別的演算法或者代碼思路可能會被盜用。這時,源代碼就像是高手的武林秘籍,你肯定想越少人知道越好。所以大部分公司的軟體如果是開源的話,他們只會公開其中的一部分,有競爭力的核心部分一般是不對外公開的。但總體來說,開源的好處是大於弊端的,開源可以讓所有人來修改和優化代碼,使程序的運行更加完善、軟體的功能更加豐富,而且隨著互聯網的發展,共享的理念越來越受到重視,開源有利於開發者之間的交流,能夠推動項目的進展,還能推動整個技術行業的發展。這種情況就好像是再強大的武林高手也是要參加武林大會和各派掌門切磋武藝交流學習的。

最著名的開源項目就是Linux系統,Linux是一種計算機操作系統,和我們通常使用的Windows系統類似,但它是開源的。Windows系統是基於圖形界面操作的,而Linux系統最大的特點是基於命令行操作的,這個也導致Linux受眾面沒有Windows廣。但大多數伺服器都是基於Linux系統的,例如谷歌的安卓系統、蘋果的iOS系統,也就是說我們訪問的那些網站和軟體都是Linux系統在支撐著,毫不誇張的說,Linux是互聯網的基礎。而且,針對Linux系統的病毒爆發是世界上最少的,為什麼呢?因為開源,開發的人這個項目的人多了,Linux系統形成了眾多版本,所以病毒在這個版本生效了,在另一個版本就不一定生效。而反觀代碼不公開的Windows系統,我們的計算機就要裝著各種殺毒軟體,防止系統被病毒攻擊。

開源是趨勢

如今,不管是哪家公司或者企業,即使是全球最強的科技公司也開始免費共享他們最新技術背後的代碼,可以說免費共享達到了空前的盛況。他們知道選擇免費共享不僅會推動整個技術行業的發展,他們也將因此獲得進步。這是一個既利己也利他的選擇,也是如今的科技行業運轉的基本方式。

蘋果開源

2015年,蘋果開源了他們的編程語言Swift,蘋果的這個舉措使得他們的編程語言不僅支持蘋果設備,還可以支持所有的設備,包括運行 Linux、Android 和微軟 Windows 系統的設備,也就意味著即使是競爭對手的設備也不再被他們排除在外。蘋果的這個決定是明智的,因為隨著開源軟體的發展和擴張,現今的互聯網時代和 90 年代Windows 系統繁榮發展的世界完全不同了,它不再僅僅依賴於單獨一個計算平台,而是共享才有利於自身技術的進步,Linux系統就是一個成功的例子。

人工智慧開源

谷歌也選擇公開了TensorFlow的源代碼,TensorFlow 是谷歌人工智慧服務的軟體引擎,谷歌的圖片和語音識別以及語言翻譯工具都基於該引擎。為什麼?因為谷歌知道人工智慧對他們的未來而言意味著什麼,他們知道自己選擇共享軟體意味著自己發展進步的速度將會更快。因為即使谷歌再強大,也不可能把全球的頂尖技術人員都僱傭到自己公司,而選擇開源就能夠集思廣益,讓全球的技術人才幫助完善這個項目。當然谷歌也不傻,沒有把TensorFlow 的所有秘密和核心都公開,而是有選擇性地開源,但是他們公開的代碼也足夠他們和這個行業利用來產生重大影響。

以上是從科技行業發展的高度來講述開源的好處,其實開源對於程序員個人來說也是良師益友。參加開發一個開源項目,程序員之間可以進行技術交流,碰撞出智慧的火花,不僅能推動項目的發展,更有利於個人的進步,因為開源意味著你可以看到別人寫的代碼,從中學習到很多他人有而你沒有的優點。

以上內容轉載自編程少年青少年編程愛好者學習交流社區 - 編程少年

今日原創遊戲推薦:貪吃蛇

PS:編程少年社區中的原創遊戲是孩子們自己的作品,請點入鏈接並準備打分或評論的知友考慮到這一點,並多給予鼓勵,謝謝大家。

推薦閱讀:

比較一下高性能計算和雲計算的異同?

TAG:开源 | 编程 | 计算机科学 |