现阶段为什么国内程序员无法很好的参与到开源社区?
前言
早在2年多前,筆者曾寫過一篇關于如何參與到開源社區的文章:作為一名非Committer,如何向開源社區提交自己的代碼,但是現在筆者重新閱讀這篇文章,發現與其講述的參與開源的方法論,還不如幫大家仔細分析其內在本質的一些現象和原因,核心問題:為什么國內程序員無法很好的參與進開源社區?筆者在15年剛畢業不久,因為工作的機會偶然間接觸到了開源,隨后就一直樂此不疲,開源給我帶來快樂的同時也促進著我技術水平的迅速提升。接觸開源的這2年多時間里,筆者接觸了各式各樣的參與開源的同學,包括國內,但更多的是國外的,我也從一名普通的貢獻者,成為了一名項目提交者。下面來談談其中的一些體會和心得,最后再回到這個核心問題:為什么國內程序員無法很好的參與到開源社區?以下闡述觀點僅為筆者個人觀點。
開源和開源社區
這里要提前普及一個知識點,開源是什么?開源英文全稱Open Source,開放源代碼,開源項目的形成和發展來自于全世界開發人員的貢獻,大家彼此之間未曾見過,但是通過郵件緊密的聯系在了一起,而這樣的一個交流群體,我們就稱之為開源社區。著名的開源系統Linux不就是由托瓦茲和其他人這么搞出來的嘛。所以,這聽上去是不是一件很酷的事情呢,:)。
下面將進入正文,筆者將從客觀(外在)和主觀(內在)2個角度來分析看待國內程序員參與開源的這個問題。
客觀因素
首先我們來看客觀因素也就是外在環境。為什么說外在環境對國內參與開源社區有影響呢?結論是當然有影響。在這里,筆者將外部因素再進行進一步的細分,有下面兩點:
- 國內大環境節奏快,市場競爭壓力大,無精力時間支持開源活動。
- 國內沒有很普及的開源文化。
- 語言的障礙。
大背景環境
目前各個互聯網公司(包括各種大小廠)所面對的市場競爭,壓力都挺嚴峻的,要求的都是快速迭代快速開發,所以在這樣的背景下,國內程序員不太會有多余的精力來接觸甚至貢獻到開源工作中。在這點上稍微好點的,就是在一些外企,就會方便很多了,比如說像IBM,Intel,是有直接和開源社區合作的,打交道的工作。
另一方面,我們知道開源社區講究的是“慢工出細活”,但是在國內的開發大環境下,開發者的耐心往往是不夠的,一個郵件信息,1,2天不回復,太正常了,在這個時候,往往很多程序員就坐不住了,最后就放棄了。這點在剛開始接觸開源時特別明顯。還是一句話,耐心一些,再耐心一些。
開源文化
老實說開源這種東西,沒有特別的文化也是不行的,這里不是指個人的文化程度,而是文化氛圍。我們知道,國內計算機領域的發展是落后美國幾十年的,盡管說國內開發者的技術技能也并不比美國程序員差,但是論對技術的本身而言,我們可能看著的僅僅是一份養家糊口的工作,是否有曾想過我可以在閑暇之余無私地為開源項目做點貢獻呢?更何況這些著名開源項目已經被大量的使用在了我們的生產環境中并發揮著越來越重大的作用。所以其實筆者一直非常贊同,國內的文化是一種“索取”的文化,只得到其中的好處,但并不想去付出,這就是文化的差異,這么說,想必大家會明白一些吧。
語言的障礙
這點就很簡單了,開源社區用的是世界的公共語言,英語。很多同學在畢業后就把英文的學習放一邊了,尤其是開源社區用的是英文來描述專業性的問題,這不很明顯會造成理解的難度和溝通的問題嘛。在這點上,筆者的建議是,平時多看純英文的技術設計方案,不懂的地方反復閱讀,筆者就是這么干的,雖然有點土,但管用。
主觀因素
OK,下面來談談另外一方面,主觀因素,也就是個人內在的一些原因。這些是筆者通過近幾年時間和一些國內參與開源社區的同學的交流和接觸所得出的,主要3點因素。
- 不太肯放下姿態,從簡單的小事做起。
- 不夠有耐心。
- 互幫互助做得不夠。
因為這3點很好理解,這里不分小節具體闡述了。
首先第一點,國內程序員有些確實本身比較厲害,他們總想著,一開始能做一個特別棒的feature特性,這樣就會有上千行代碼的貢獻,但是這里有一個問題,開源社區那幫人開始時并不認識你,你覺得像這樣的機會,他們會直接給你嗎?辦法只有一個,從小事開始做起(改錯別字,加日志啦等等),然后逐步逐步,展現你的能力,到時自然而然,你可以做的更多,做的工作也更加核心。
第二點,耐心問題,這個在上文也已經提過了。
緊接著看第三點,說到這點,筆者也比較慚愧,筆者作為已經是Committer提交者的身份,對國內程序員這塊的幫助帶動做的也還不夠好吧,筆者確實與外國程序員溝通的比較多。主要是國內程序員在社區上總是零散的出現,沒有那種持續的和你互動的那種。在這點上做的比我們好很大的,印度人,舊人帶新人,公司內部帶公司內部新來的,所以可以看到很多印度籍的開發者成為了各個頂級開源項目的提交者。這其實是也一種群體效應,國內的則是單兵作戰居多吧。
總結
說了這么多,以上就是筆者對于目前國內程序員無法很好參與到開源社區的一個簡單分析,希望能帶給更多對此方面感到困惑,疑慮的同學們。
相關文章
[1].http://blog.csdn.net/androidlushangderen/article/details/49563447. 作為一名非Committer,如何向開源社區提交自己的代碼
總結
以上是生活随笔為你收集整理的现阶段为什么国内程序员无法很好的参与到开源社区?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 前端框架存在的意义
- 下一篇: 计算机专业一级学报,【讨论】计算机类一级