When we speak of free software, we are referring to freedom, not a price.
當(dāng)我們在提到開源軟件的時候,我們指的的行為自由,不是指免費(fèi)。 ———GPL協(xié)議
對于中國的程序員來說,會不會編程?不重要。
會不會搜github?嗯,很重要。
序
在全世界,不僅是中國,程序員這個職業(yè)的門檻在隨著時間的變化變得越來越低,其實這是一件好事,這樣才真正代表了互聯(lián)網(wǎng),或者說是電子計算機(jī)給社會帶來了真正的福利。

在十幾年以前,計算機(jī)剛剛步入使用階段的時候,大家都是自己做自己的產(chǎn)品,然后把產(chǎn)品拿出來賣。通過之前做的產(chǎn)品的利潤進(jìn)行下一步的開發(fā),然后通過專利的法案來筑起高高的城墻,防止競爭者的進(jìn)入(oracle作為其中的代表之一,現(xiàn)在仍然享有很多這種機(jī)制所帶來的利潤和福利)。

在linus創(chuàng)造了linux操作系統(tǒng)之后,開源的種子就在世界各地發(fā)芽,開源逐漸從一種黑客的自由主義精神行為演變?yōu)橐环N可行的商業(yè)模式。
作為一個開源項目的創(chuàng)建者和參與者,推動他進(jìn)行開源程序開發(fā)的主要動力是自我價值實現(xiàn)(提高編程技能,實現(xiàn)功能),配套服務(wù)收費(fèi)(Redhat的盈利模式),社區(qū)認(rèn)同(獲取就業(yè)機(jī)會)以及利他主義(無私奉獻(xiàn))。

總之,開源在近十年來已經(jīng)成為了影響互聯(lián)網(wǎng)和計算機(jī)的重要影響因素。在微軟對github進(jìn)行收購之后,這個影響了世界數(shù)十億人的網(wǎng)站逐步進(jìn)入了大眾的視野,并且我相信,這個軟件在未來的十年會有更加廣闊的發(fā)展空間,也許會成為世界上每個人都可以使用的應(yīng)用搜索引擎。
中國--開源的獲利者
中國在互聯(lián)網(wǎng)大潮上只能是一個后起之秀,開源這件事中國到現(xiàn)在為止獲得的好處要比我們付出的多得多。中國的許多產(chǎn)業(yè),包括產(chǎn)品,都是因為某種開源的程序或者是專利縮小了與世界發(fā)達(dá)國家的距離。

其中最知名的,可能大家也有些容易被遺忘的,就是安卓?,F(xiàn)在國產(chǎn)的基本上所有知名的手機(jī)品牌都是基于安卓開發(fā),如果沒有安卓,國產(chǎn)的智能手機(jī)開發(fā)肯定會落后于美國一個時代的,沒有辦法成長到現(xiàn)在這個體量。
前一陣子因為中美爭端,美國政府想要谷歌對基于這個系統(tǒng)的產(chǎn)品進(jìn)行訴訟。華為的鴻蒙也是為了替代這個產(chǎn)品而開發(fā)的,但是我相信使用過或者說了解過這個系統(tǒng)的人也知道,即使在源代碼開放的情況下,我們想要學(xué)習(xí)別人的內(nèi)核技術(shù),或者說是應(yīng)用部署技術(shù)也還是非常難的。
我們很難說谷歌是因為純粹的利他主義或者說是為了先養(yǎng)肥了再殺的想法而進(jìn)行了一系列的開源行動,但是不可否認(rèn)的是,這些開源的代碼對中國進(jìn)步的影響是顯而易見的。
就我現(xiàn)在在工作的內(nèi)容來說,80%的東西都是谷歌提供,或者是基于谷歌的開源代碼改的。我可以簡單列舉一下,如果有興趣的同學(xué)可以自己去看。

1.cartographer。建圖功能包,可以做到大場景多傳感器的信息采集和2D/3D地圖數(shù)據(jù)儲存、格式轉(zhuǎn)換。中國現(xiàn)在整個agv市場,或者說是自動駕駛的市場,有很多都是建立在這個包或者是gmapping論文上的。
2.protobuf。序列化工具,用于數(shù)據(jù)的序列化和反序列化,這個包在谷歌的很多開源項目當(dāng)中都會用到,學(xué)習(xí)這個包的源代碼可以很有效的拓寬你對數(shù)據(jù)處理的思路。
3.GRPC。這個是可以進(jìn)行不同主機(jī)或者是程序直接功能調(diào)用的一個包,多模塊溝通協(xié)作、部署應(yīng)用/網(wǎng)頁的時候都用的到。百度有一個學(xué)習(xí)他然后改善的一個包叫brpc。
4.tensorflow。這個包,已經(jīng)太過于大名鼎鼎,整個人工智能網(wǎng)絡(luò)的發(fā)展在某個時期是離不開這個名字的。我想最近幾年中國之所以人工智能能這么火,包括從業(yè)人員的水平可以下降的這么快,都是離不開這個包的幫助的。它把一個非常抽象復(fù)雜,很難可視化的一個應(yīng)用做的很簡潔易用,解決了痛點(diǎn),降低了門檻。
除了谷歌之外,世界上其他地方的很多大公司都為開源做出了貢獻(xiàn)。我們必須得承認(rèn),我們是站在了世界的肩膀上,開源確實對中國這些年的制造和創(chuàng)造產(chǎn)生了很深遠(yuǎn)的影響。
要注意的是:
開源其實并不意味著我們可以自由地免費(fèi)地使用這些源代碼來干一切的事情。

開源程序是有一個開源協(xié)議的(GPL/LGPL等),它規(guī)定了開源程序的免費(fèi)使用范圍和權(quán)利,但是很不幸的是,中國的商業(yè)使用者基本上都無視了這個協(xié)議,就像他們無視了很多專業(yè)工具的版權(quán)一樣。
前兩年還有個院士拿一個國外的開源程序做了封裝之后提交申報基金被舉報,這個我覺得實在是井底之蛙般的無知。
但是其實這個真的不是個別現(xiàn)象,在很多新興的市場,大部分的公司都是直接拿的開源源代碼做的產(chǎn)品封裝,只不過因為公司的體量太小,開源的作者注意不到他或者是根本懶得告他。我覺得在接下來的幾年這件事情會產(chǎn)生非??膳碌拇鷥r,中國的程序員們和老板們是時候該覺醒了。
還有一件很搞笑的事情是,由于很多老板不懂程序,其實公司里開發(fā)的大多程序都是直接從github上找的,然后算成工程師自己的工作量。我想,也許這就是隔行如隔山吧,他們想象不到有人愿意免費(fèi)的把這些生產(chǎn)資料公開出來。
中國--開源的付出者
當(dāng)然,中國也并非我上面說的這么不堪。
我們現(xiàn)在已經(jīng)從開源項目當(dāng)中得到了利益,在完成了物質(zhì)的富足之后,中國的程序員們也成為了下一個“谷歌”。

中國的開源創(chuàng)作也是非常多的,在github上提交的程序日益增多。雖然有很多是二次再創(chuàng)作,或者是一些收集類的項目,但是還是有很多原創(chuàng)的優(yōu)秀程序項目。
有幾個我正在關(guān)注的開源項目,比如說Tidb,禪道(一個敏捷開發(fā)的項目管理軟件),Echarts等等。
這些項目都是非常優(yōu)秀的中文開發(fā)者做的,我相信在不久的將來我們肯定是可以占據(jù)開源社區(qū)的半邊天。

百度做了一個人工智能的開源平臺paddlepaddle,大家也可以多關(guān)注了解一下。阿里開源的東西更加底層,包括一些硬件協(xié)議標(biāo)準(zhǔn),和應(yīng)用層里java相關(guān)的東西多一些,還有類似于kiwi這種全球物流管理的軟件。
總之,中國的大公司已經(jīng)開始奮起直追了,希望更多在生存線上奮斗的小公司們能早日步入這個行列吧。
結(jié)語
我希望用了這些開源代碼的程序員們要記住,開源的使用并不是沒有代價的,我們要感謝這些提供開源代碼的人,并且遵守他們定下的規(guī)則,這樣開源的社區(qū)才能發(fā)展的越來越好,對這個社會的貢獻(xiàn)才能越來越大。