最新的TIOBE榜單前五十依舊沒有Golang,Golang目前在國內外的生存狀態如何?


TIOBE 關於語言的排名,有時其實挺不靠譜的,特別是對於新出現的語言來說。

TIOBE排名中一個維度的數據,是利用Google 搜索「+"& programming"」,所搜索到結果的條目數。存在時間長的語言,自然在排名上更有優勢,從統計維度上來說,我們可以說他公平,畢竟長江後浪推前浪,前浪曾在浪尖上。但是對於 Golang 這種小鮮肉,需要在TIOBE排名中有一個好的名次,可能還需要時間的打磨。

單單以TIOBE排名來推測 Golang的生存現狀,一定是有失公允的。我們來看 IEEE 的排名,Golang 就排在第19位,這個排名一定程度上反映了 Golang 現在的熱度,且不說 Github 中海量的其它語言流行組件的 GO 語言重寫版本,就說現在站在風口的 Docker 也是用 Golang 實現的就知道Golang 現在的熱度了。看到GO 語言和看到王思聰一樣,讓人感慨有一個好的老爸真好。

圖片來源:

http://spectrum.ieee.org/img/07dataflow-620-1414068899524.jpg


updata】:tiobe檢索Go的方式已經得到修正,8月份開始Go在tiobe的排名上立竿見影的反映了出來,截至11月份已經到了13名。不過,我依然持以前的觀點:tiobe的排名還是有問題。

【updata】

下面有人說用github無法衡量工業界的使用情況,我不否定但也不完全贊同。但請注意:

1.工業界大面積使用一個語言,到出現大量的的培訓,書籍,工作招聘等等信息,需要時間積累,這些東西對於上面提到的新出現(以1.0正式版發布,有較穩定的api和向後兼容性保證,有上線項目開始實際投入開始算起)沒幾年的編程語言沒法準確衡量。但可以將這幾年新出現的語言在工業界的使用情況做橫向對比,看看有沒有什麼成品,killer app出現。同樣,Go做的不算差吧?

2.tiobe這個逗b的排名更無法衡量工業界語言的排名,tiobe只檢索幾大搜索引擎,不包括微博,推特,facebook這些它沒有入口的。還有一些專業的求職網站上面語言招聘的數量,它依舊無視。此外,它的排名算不但簡單,而且可以說是簡陋,權重,質量和相關性等等完全不考慮。它只能反映某個時間段某個語言談論,寫博客或者提問題(依然無視stackoverflow)的熱度。比如說網上一個博客裡面出現php的字眼,它就認為這屬於php被使用的一個累加點,即使這個博客里在批評php。

[例子]:可以看看排名第26的Dart,為何會從50名開外跑到本月的26名?因為之前有dart summit大會,期間演示了一個sky框架,大量的網站轉載報道此信息,有的標題很嚇人「dart sky取代java成為android新一代開發語言「等等之類的,所以它的排名一下子就上來了。Go按理說談論或者說炒作的熱度不低,但tiobe卻對此毫無反應,可能和Go這個名字本身對搜索引擎不友好有關。

3.結果相關性。我的帖里已說明的很清楚,這些東西僅供參考,不會十分準確,編程語言使用排名本身就很複雜,很難有什麼靠譜的。但我認為tiobe是最不靠譜的。

同樣,請做橫向比較,在每個語言已有的檢索結果裡面對比下彼此間誰搜到的不相干的結果更多。

4.現階段不要拿它去和c/c++/java去比較,沒有意義。

5.github上面實際用於工業界的項目越來越多,很多商業公司已經將自己的公司項目託管到github上。作為和碼農相關性最強的網站,它一定程度上還是能說明一些問題的。

==========================【分割線】==================================

【原帖正文】

為何tiobe這麼垃圾的東西每個月都會出現在人們的視野中?是不是這網站有什麼背景?

完全無視stackoverflow和github,這排名能看?

下面是用BigQuery查詢github的結果:

【圖1】統計從2015年01月1日起到此刻,各種語言創建的repos數排名。

【圖2】統計從2014年05月1日起到此刻,各種語言創建的repos數排名。

限定條件:fork數&>3;repos大於20MB

P.S. 一年多以前查詢的時候vimL,CoffeeScript都是在Go之前的。

最後上一張google趨勢圖:

地區選擇美國(因為總有人說Go在國外沒人用,就會在國內炒作),時間選擇2015年1月-5月

選擇這幾年多時間裡耳邊經常能聽到的新出現的語言,因為有些語言最近才出現或者才剛剛1.0,所以時間跨度選擇的較小,另外準確度也不會很高,僅作參考。

輸入「xxx programming language」,會出現補全提示,選programming language類別。

【圖3】:

====================補充=========================

tiobe的檢索方法是: 「編程語言名+programming」

以google為例:

"golang" 找到約 806,000 條結果 (用時 0.32 秒)

但tiobe檢索golang用的是以下兩個關鍵字:

「golang programming」找到約 7,980 條結果 (用時 0.28 秒)

"google Go programming" 找到約 12,500 條結果 (用時 0.35 秒)

所以,Go語言很難在tiobe上排到前面(排前面也說明不了什麼,這個榜問題太多)。


何止50,前100里都沒有。09年還是Hall of Fame Winner,短短几年就在TIOBE銷聲匿跡了。

再看最大的同性社交網站github上的Trending repositories,在日、周、月等統計時段內,Go的repo都只有一兩個,在國外的生存狀態也就這樣了。


呃…… 因為 Go 這個糟糕的名字……

給數據,不下結論。Go 的應用狀況在其他問題底下有很好的介紹了。

這是 Google Trends 對幾個關鍵字的數據,數據源限定美國。我把 Go 和我經常黑的 Rust 和 Dart 排在一起看,綠色的 Go (programming language) 主題數據實在信不過,因為 09 年之前就有大量的數據。

去掉這個,光用 golang 的關鍵字,再加上 node.js 和 erlang,我想這個比較算是相對公平。

Rust 和 Dart 的數據顯然也是不準的(看歷史數據,我傾向於高估了,但不能下定論),因為這兩個都是常用單詞,我們沒法得到更好的數據。這是顯然不合理的 search term 數據


自從前陣子我聽到一個「高人」說:

「dll版本太老,所以新版本vs編譯出來的exe不能調用裡面的函數了」這樣的說法以後,

我就知道,程序員的圈子,還是渣滓比較多啊。

也就是說,大家都覺得好的東西,並不一定就是好。

所以,tiobe是什麼?能吃嗎?哪門語言好,難道不是看這門語言是不是穩定,是不是撓到癢處的嗎……什麼時候變成看誰用戶多了?還是說你們互聯網思維玩多了,連技術選型都要互聯網思維一下?

用戶數量對生態來說,沒什麼參考價值。

----------------------------------------------

統一回復下:

並不是兼容性的問題。而是沒有處理好的問題。

不同版本編譯同一份代碼出來的dll的確是不同的,這取決於編譯器本身和編譯設置。

這個時候,如果隱式鏈接,是可能會出問題的。譬如兩個版本的鏈接庫和編譯器對同一種數據的處理方式不一樣,或者對同一塊內存的處理方式不一樣。

這並不是不能調用,而是因為版本不兼容,導致衝突。

本質上,dll就是一段數據+一段代碼。LoadLibrary的時候,從硬碟上載入數據段和代碼段,然後程序接著運行。如果需要call裡面的函數,本質上只是數據壓棧,然後cpu的指令跳到指定地址而已,連彙編python,go,lua等等都能調用的dll,你告訴我怎麼因為換一個編譯器,就不能調了?


2016年8月排行榜已入前20咯


2016年10月已經16名了,勢頭喜人

我第一眼看到golang的時候就被吸引,也一直看好這個語言。Golang的各種設計和妥協無一不體現了其設計者豐富的工程經驗。


首先,TIOBE只是基於Google Search,依據單一。看看別的。

IEEE Spectrum 2016排名,結合更多數據來源

RedMonk 2016Q3,結合github、stackoflow

其次,一門語言在於解決問題。網路相關以及很多簡單應用,可以非常容易進行處理。其CPS模型也可以衍生出很多模式來精巧的解決一些需要依靠模式才能搞定的業務模型。加上github的資源,以及一些社區可以解答問題,夠用即可。排名變化並不會為我們多贈一分錢。

最後,也是最重要的在於能否從中得到成就感。快樂,才是硬道理!

當然不得不說,go寫多了,代碼不精鍊,是有點煩。到了現在1.7RC3了,也還有一些編譯階段就會發現的小缺陷。痛並快樂著吧!


GO上榜了


這充分體現了技術選型者的不自信。 這樣的人很百度。適合加入百度工作。謝謝。


我大Java最近兩月連奪兵器排行榜第一位,20年了,這麼一個偉大的時刻,對我來說。。。。。。沒啥意義。

作為一個寫過一年多go的人來說,go壓根不是什麼通用型工具,不知得過多少年才能混出java的江湖地位,所以也別痴心覺得go最後能一統江湖了

此外這語言確實不火,就國內社區火成這程度了,你看看亞馬遜書還沒有swift多,國外就更別說了。

最近round 10的benchmark出來還是妥妥的中下游效率,所以也就那樣了,再給個三五年讓他發展發展吧。

如果題主是想看榜單決定學什麼語言,榜單考前的幾個都沒錯,go基本上可以幹掉c,但是這種事情還是要看你老闆怎麼看,對,我就是說了等於沒說。學語言這事情最好不要把他當宗教一樣看,有百害無一利。


推薦閱讀:

Go語言為什麼沒有流行起來?
Go垃圾回收?
go語言用作廣告dsp開發有什麼優勢和劣勢?
如何評價三年前四大系統編程語言大牛的那場談論?

TAG:軟體開發 | 編程語言 | TIOBE | Go語言 |