開源指的是那些源代碼或源設(shè)計可以被大眾使用、修改發(fā)行的軟件或設(shè)計體,閉源就是不開放源代碼。
Linux 無疑是開源軟件里最最成功的一個,不管是從它目前的生態(tài)建設(shè)角度,還是從業(yè)界評價來看,包括今天云計算的基礎(chǔ)也都倚賴Linux的貢獻和基石。當然,像OpenStack、Hadoop 、Spark等也非常成功,這些開源項目都屬于底層技術(shù),在支撐今天整個大數(shù)據(jù)、云計算的發(fā)展。
開源并不意味著免費,開源只是說我們做了一個好東西,把它開放給大家使用,目的是希望大家更多地使用它,并反饋使用過程中的問題或者改進方式,使得整個開源項目進步得更快,能夠更好地共享給更多有需要的人,目前像 Linux、Hadoop、Spark等等,都是這么做的。但很多時候開源背后還是帶有很濃厚的商業(yè)背景。
做得比較大的開源項目背后都有商業(yè)公司在支撐,如果一個成功的開源項目背后沒有商業(yè)公司,這是不健康的,我們需要開源和商業(yè)之間的互補對稱來促進整個社區(qū)和技術(shù)的不斷前進答,這是一方面。
另一方面,從開源用戶的角度來看,“開源是不是免費的”其實也是一個偽命題(這里的用戶指的是所有使用開源產(chǎn)品的企業(yè)或者個人)。開源看上去是不需要花版權(quán)的錢,但其實企業(yè)用戶招聘合適的開發(fā)人員、運維人員把這個事情做完,成本可能比買商業(yè)版本更高。
從商業(yè)價值的角度來說,開源毋庸置疑已經(jīng)是基礎(chǔ)技術(shù)領(lǐng)域的必然趨勢,沒有開源的基礎(chǔ)技術(shù)是沒有生命力的,因為它很難被廣泛使用。在商業(yè)上,一個開源項目被大范圍使用后,可以使得整個技術(shù)升級換代成熟起來變得非常迅速,過去可能要經(jīng)過三年、五年、甚至十年的時間去進化,因為開源的力量,在短短幾個月內(nèi)可能就完成了。從另外一個角度來說,開源的壯大又會反哺支撐商業(yè),畢竟還有很多客戶都是希望獲得商業(yè)的支持和價值。
對于開發(fā)者來說,開源與不開源很大的一個區(qū)別在于,你是一個孤軍奮戰(zhàn)的人,還是一個可以跟全世界最優(yōu)秀的開發(fā)者在一起的人。因為如果你做一個閉門的項目,你所能夠溝通的、接觸的資源受應(yīng)用場景的限制,會非常有限。但如果你是做開源項目,不管你是自己領(lǐng)導開源還是參與開源,你都可以和全世界最優(yōu)秀的開發(fā)人員一起來玩技術(shù),一起在社區(qū)探討交流,這樣對于自己的成長是飛速的
我們想象一下一項任務(wù)的開發(fā)如果沒有開源的話,想要讓這個系統(tǒng)的所有的功能得以實現(xiàn)這整個過程都是要由等著它的開發(fā)廠商自己來解決的。而系統(tǒng)中自己產(chǎn)生的一些BUG,也只能等著開發(fā)廠商來修復,如果開發(fā)廠商本身沒有發(fā)現(xiàn),這些BUG就會永遠的存在。
所以由此看來開源和不開源的區(qū)別還是非常大的,它的作用也是很大的,開源最大的魅力就在于不依賴于某個廠商,大眾都可以修改代碼以滿足自己的需要,千萬個“自己的需要”就匯聚成了偉大的產(chǎn)品,任何違背這個理念的開源都是“偽開源”。
開源不是簡單的公布源代碼,如果有個人將自己開發(fā)的一款源代碼公布到網(wǎng)上之后,并沒有通過git、svn等把源碼管理起來,而且之后的修改匯總管理也是無人問津的,只能是提供對這個軟件感興趣的人進行下載,然后自己在做進一步的修改,讓自己用,這樣沒有做出貢獻的開源,就失去了開源背身的價值。