這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
|本文由好程式員特訓營編輯
|作者:好程式員
根據近年來TIOBE最受歡迎語言熱門排行榜,我們很容易會發現一個現象:Java語言長盛不衰,多次連續獲得最受歡迎語言熱門排行榜第一名,對於很多程式員而言,這似乎已經成為一個習慣,Java也順理成章的成為很多編程人員學習的首選。但是很多語言的快速崛起,似乎對Java造成了一定的衝擊,尤其是go語言,那麼go語言能否超越java呢?
這要從兩個方面來說,一個語言所形成的生態,另外一個是語言本身。
從語言的生態來說一旦某個語言在一個領域建立了自己的生態系統那麼它的地位幾乎很難被撼動了,java語言在大資料、雲端運算、公司專屬應用程式方面有了無數的Library、Framework、App,以及會使用這些東西的程式員。撼動這樣一個體系無異於連根拔起一顆摻天大樹,更聰明的做法應該是再栽一棵樹,而不是拔樹。類似的情況還有COBOL語言在金融領域、C語言在作業系統核心和嵌入式領域。
從語言本身來說很多程式員喜歡一個語言是因為他的開發效率,文法簡潔不羅嗦、坑少不容易犯錯誤等,或者僅僅是因為看著舒服,但是苦惱的是在特定領域不流行而自己又為這個領域工作。這也不是什麼大問題,一個語言轉換成另外一種語言或者編譯到另外一一個語言所用的VM是很容易的事情。javascript瀏覽器裡唯一的語言坑又很多,所以有無數種語言可以轉換成javascript:List of languages that compile to JS·jashkenas/coffeescript Wiki·GitHub,jQuery也可以認為是新的一個語言。對於java來說能編譯到jvm的語言也不少,go目前沒有成熟的方案,不過未來一定會有,嵌入式領域一直是c/c++的天下,但是美國的好奇號火星探測器裡的c代碼很多是用python產生的。
相對於java, go還是一個小孩子一樣, java已建立了一個完善全面的生態系統,而go這個還在推廣的語言現在說要撼動java的地位暫時還是不可能的。
一個語言如果能建立起一個生態系統,有很多開發人員使用它,用它開發了很多好用的庫/包/應用,那這個語言就是成年了,於是這個語言就像滾雪球一樣,越來越好. java已是這一塊的老大, go任重而道遠。
如果有人用golang寫一個hadop或比hadoop更牛B的東西,相信基於golang的大資料處理也會有一定的使用者量.但有人寫嗎?就算寫出來了誰願意做吃螃蟹的人呢?當前無論是學術界還是企業對hadoop的研究都很多,很多企業已經基於hadoop做了很多工作,難道在可以用hadoop的情況下還會嘗試一個不確定的東西嗎?
而如果真能用golang寫android,我相信它的推廣也是個問題, java已經建立了一個生態系統, golang再去革java android的命,除非你有足夠的理由讓我做出這個讓步.千萬別說java效能低。
語言不是重要的,而基於一個語言的生態足夠讓一個語言改變一個世界!
所以,我認為對於golang,我們不要用它重複造其它語言已經做出的輪子,要做新的東西,這樣才會有人去嘗試,去改進。
要想革java,不要模仿它,必須要找到golang適合的領域,做出新的有用的東西,不然任何說golang的並行,效能高都是浮雲!
所以所謂“替代”未必是舊的東西被推翻然後建立新的體系,而是舊的的東西自己變成了新的體系。
以上為好程式員的看法,你又是怎麼看的呢?歡迎評論區留言
歡迎關注【“好程式員”公眾號】畢業工資不過萬,不收學費,極致高薪,最強保障——