2012年1月TIOBE編程語言排行榜剛剛出爐。最大的新聞當(dāng)然是此前已連續(xù)兩年屈居第二的Objective-C終成正果。拜移動大潮所賜,它在一年中市場份額大漲3.91%,達(dá)到近7%,毫無懸念地拿下2011年年度語言大獎。
看看歷史上各年度的年度語言都是誰:
年度 | 年度語言 |
---|---|
2011 | Objective-C |
2010 | Python |
2009 | Go |
2008 | C |
2007 | Python |
2006 | Ruby |
2005 | Java |
2004 | PHP |
2003 | C++ |
大家注意到去年的大獎得主是誰嗎?Python!(參考去年1月的排行榜)非常悲劇的是,兩屆年度語言大獎得主Python在2011年風(fēng)光不再,整整跌去了3.05%,僅剩下3.218%,還不及Objective-C一年中增加的份額,排名也下降3名,可以說是慘不忍睹。當(dāng)然,Python的實(shí)際情況并沒有那么糟糕,據(jù)我所知,Python的圖書和Objective-C的圖書差不多一樣好賣,用Python來開發(fā)網(wǎng)站和做系統(tǒng)管理的人也越來越多,此外Google工程師Damon Kohler領(lǐng)導(dǎo)的SL4A等項(xiàng)目也在致力于使Python等腳本語言踏上移動開發(fā)的大船。另一個大輸家是PHP,Web后端開發(fā)難兄難弟Ruby也情況不佳,看來無論如何,移動的確已經(jīng)搶了Web的風(fēng)頭了。Lua的上升,一般也認(rèn)為是因?yàn)橐苿佑螒蚧鸨木壒省?/span>
除了Objective-C之外,風(fēng)頭最勁的就是C#了,大漲2.55%,名次更是進(jìn)入三甲,將占據(jù)這一位置長達(dá)十年的C++拉下了馬,也可以說一個歷史時刻。這里面估計(jì)有很多原來的VB程序員轉(zhuǎn)投吧,本來想說Delphi的,仔細(xì)一看,人家居然也是增長的……另外,應(yīng)該有Windows Phone的因素吧,通過Mono你還可以用C#來開發(fā)Android和iOS應(yīng)用。
C語言增加1.15%,是原來前三名里唯一增長的,其中緣由值得好好琢磨一下。我感覺隨著云計(jì)算的發(fā)展,高性能成為服務(wù)器端系統(tǒng)軟件的重點(diǎn),C的優(yōu)勢會越來越明顯。比如,前幾天CouchDB項(xiàng)目創(chuàng)始人Damien Katz宣布轉(zhuǎn)而專注開發(fā)Couchbase時,就強(qiáng)調(diào)新項(xiàng)目中已經(jīng)放棄Erlang,轉(zhuǎn)用C,因?yàn)樵谛阅芎偷讓涌刂粕螩無與倫比。未來一年,C與Java的王者之爭是一個看點(diǎn)。
另一個份額增加較多的語言是JavaScript (+0.73%),之前我曾經(jīng)分析過,實(shí)戰(zhàn)中不用JavaScript的程序員其實(shí)越來越少,JavaScript實(shí)際的份額和名次肯定被低估了。而且,它是最有可能通吃各個領(lǐng)域的統(tǒng)一編程語言。隨著包括移動終端在內(nèi)的HTML5(它已經(jīng)成為公認(rèn)的未來)和服務(wù)器端Node.js發(fā)展,我相信JavaScript不久之后會進(jìn)入排行榜的最前列。看看GitHub上的語言分布吧:
2012年哪些編程語言能成為黑馬呢?很有難度。TIOBE評論中提到了F#, Groovy和R。我對前兩者都不看好。F#的理由很簡單,.NET陣營的技術(shù)人員總體慣性較大,對新技術(shù)不熱衷,而且C#的迅速發(fā)展使得很多F#的優(yōu)勢也漸漸消失了。Groovy更多的應(yīng)該是用作Java項(xiàng)目中的膠水用,相對小眾,而且它還有Scala、Clojure等各種JVM語言做勁敵,日子肯定不輕松。
無論如何,函數(shù)式語言的重要性越來越強(qiáng)了:
分類 |
2012年1月份額 |
2011年1月相比變化 |
---|---|---|
面向?qū)ο笳Z言 | 57.1% | +1.8% |
過程式語言 | 36.8% | -2.7% |
函數(shù)式語言 | 4.3% | +0.6% |
邏輯式語言 | 1.8% | +0.3% |
但是,第一次進(jìn)入前20的R很有潛力,因?yàn)椋谴髷?shù)據(jù)時代的寵兒,進(jìn)行數(shù)據(jù)分析的利器,假以時日,超過Transact-C、PL/SQL這些同類是正常的。
另外也別忘了Go,一旦有更多實(shí)際生產(chǎn)應(yīng)用的證明,它還是會贏得不少擁躉的,畢竟,系統(tǒng)編程語言占據(jù)著巨大的市場份額,能夠搶下幾分之一,也足以進(jìn)入前十了。
好了,閑話少敘,大家看榜吧。
2012年1月 名次 |
2011年1月 名次 |
名次變化 | 編程語言 |
2012年1月 份額 |
份額變化 | 狀況 |
---|---|---|---|---|---|---|
1 | 1 | ![]() |
Java | 17.479% | -0.29% | A |
2 | 2 | ![]() |
C | 16.976% | +1.15% | A |
3 | 6 | ![]() ![]() ![]() |
C# | 8.781% | +2.55% | A |
4 | 3 | ![]() |
C++ | 8.063% | -0.72% | A |
5 | 8 | ![]() ![]() ![]() |
Objective-C | 6.919% | +3.91% | A |
6 | 4 | ![]() ![]() |
PHP | 5.710% | -2.13% | A |
7 | 7 | ![]() |
(Visual) Basic | 4.531% | -1.34% | A |
8 | 5 | ![]() ![]() ![]() |
Python | 3.218% | -3.05% | A |
9 | 9 | ![]() |
Perl | 2.773% | -0.08% | A |
10 | 11 | ![]() |
JavaScript | 2.322% | +0.73% | A |
11 | 12 | ![]() |
Delphi/Object Pascal | 1.576% | +0.29% | A |
12 | 10 | ![]() ![]() |
Ruby | 1.441% | -0.34% | A |
13 | 13 | ![]() |
Lisp | 1.111% | +0.00% | A |
14 | 14 | ![]() |
Pascal | 0.798% | -0.12% | A |
15 | 17 | ![]() ![]() |
Transact-SQL | 0.772% | +0.01% | A |
16 | 24 | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
PL/SQL | 0.709% | +0.15% | A |
17 | 20 | ![]() ![]() ![]() |
Ada | 0.634% | -0.05% | B |
18 | 39 | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Logo | 0.632% | +0.29% | B |
19 | 25 | ![]() ![]() ![]() ![]() ![]() ![]() |
R | 0.609% | +0.07% | B |
20 | 21 | ![]() |
Lua | 0.559% | -0.08% | B |
必須聲明,這個榜單本身采集的是英文世界的數(shù)據(jù),雖然在反映趨勢上有一些參考意義,但與中國的實(shí)際情況不完全符合,而且,這張采樣本身也有相當(dāng)大的局限性。比如榜單中的排名肯定與JavaScript的實(shí)際使用率不匹配,畢竟現(xiàn)在不用JavaScript的項(xiàng)目越來越少了,它甚至還在大舉入侵服務(wù)器端(參閱Node.js方面的介紹)。還有應(yīng)用廣泛的Shell排名也不高,但是在Unix/Linux類平臺上,不用Shell的程序員應(yīng)該也不會很多。《程序員》2010年8月刊的圓桌討論“什么是最美麗的編程語言”中,許多專家也談到了這一點(diǎn)。
TIOBE排行榜從長期來看意義更大(所以應(yīng)該多重視5年、10年的變化),短期則只有參考價值。請大家注意,我們每月按時編譯排行榜,目的是告訴大家技術(shù)趨勢,而不是引發(fā)沒有內(nèi)容的編程語言口水戰(zhàn)(這類評論通常都會被刪去,相關(guān)不良記錄也會記入發(fā)帖者的帳號)。
我們想特別指出的是,各種語言都有其自身的長處和缺點(diǎn),籠統(tǒng)比較優(yōu)劣毫無意義。而且就目前一般的編程任務(wù)而言,基本上各種語言都能勝任,開發(fā)效率也 和使用者的熟練程度密切相關(guān)。語言的此消彼長,關(guān)鍵在于社區(qū),如果你熱愛哪一種語言,請到CSDN開設(shè)博客,多寫自己的心得、經(jīng)驗(yàn)、各種層次的教程,讓更 多人體驗(yàn)到這種語言之美,擴(kuò)大自己的社區(qū)。我們歡迎有質(zhì)量有內(nèi)容的語言和框架比較的技術(shù)文章,堅(jiān)決排斥浪費(fèi)自己和他人時間和資源的口水戰(zhàn)。
來看看長期趨勢圖。
后30名排名情況。
名次 | 編程語言 | 市場份額 |
---|---|---|
21 | Assembly | 0.550% |
22 | C shell | 0.528% |
23 | MATLAB | 0.515% |
24 | Visual Basic .NET | 0.482% |
25 | NXT-G | 0.478% |
26 | Go | 0.474% |
27 | Fortran | 0.434% |
28 | ABAP | 0.418% |
29 | Scheme | 0.415% |
30 | RPG (OS/400) | 0.402% |
31 | COBOL | 0.393% |
32 | SAS | 0.339% |
33 | F# | 0.338% |
34 | Scratch | 0.334% |
35 | ActionScript | 0.326% |
36 | Groovy | 0.322% |
37 | D | 0.320% |
38 | Forth | 0.318% |
39 | Erlang | 0.304% |
40 | PL/I | 0.303% |
41 | Haskell | 0.301% |
42 | Ladder Logic | 0.299% |
43 | Prolog | 0.292% |
44 | ML | 0.291% |
45 | Q | 0.276% |
46 | OpenEdge ABL | 0.274% |
47 | Standard ML | 0.274% |
48 | Smalltalk | 0.260% |
49 | Tcl | 0.259% |
50 | APL | 0.245% |
后50名的語言如下,其中你還知道哪些?
(Visual) FoxPro, ABC, Algol, Alice, Awk, Bash, bc, BETA, BlitzMax, Boo, Bourne shell, C++/CLI, CFML, cg, CL (OS/400), Clean, cT, Dart, Dylan, Eiffel, Factor, Icon, IDL, Io, J, JavaFX Script, JScript.NET, Korn shell, LabVIEW, LabWindows/CVI, Lingo, Max/MSP, Modula-2, MUMPS, NATURAL, Oberon, Occam, OpenCL, Oz, PowerShell, Revolution, S, S-PLUS, Scala, TOM, VBScript, VHDL, X10, XSLT, Z shell
更長期的數(shù)據(jù)。
編程語言 | 2012年1月名次 | 2007年1月名次 | 1997年1月名次 | 1987年1月名次 |
---|---|---|---|---|
Java | 1 | 1 | 5 | - |
C | 2 | 2 | 1 | 1 |
C# | 3 | 7 | - | - |
C++ | 4 | 3 | 2 | 7 |
Objective-C | 5 | 46 | - | - |
PHP | 6 | 5 | - | - |
(Visual) Basic | 7 | 4 | 3 | 5 |
Python | 8 | 8 | 26 | - |
Perl | 9 | 6 | 6 | - |
JavaScript | 10 | 9 | 25 | - |
Lisp | 13 | 16 | 16 | 2 |
Ada | 17 | 17 | 12 | 3 |
【說明】
TIOBE編程語言社區(qū)排行榜是編程語言流行趨勢的一個指標(biāo)。每月更新。這份排行榜排名基于互聯(lián)網(wǎng)上有經(jīng)驗(yàn)的程序員、課程和第三方廠商的數(shù)量。排名 使用著名的搜索引擎(諸如Google、 MSN 、雅虎)以及Wikipedia和YouTube進(jìn)行計(jì)算。請注意這個排行榜只是反映某個編程語言的熱門程度,并不能說明一門編程語言好不好,或者一門語 言所編寫的代碼數(shù)量多少。
這個排行榜可以用來考查你的編程技能是否與時俱進(jìn),也可以在開始開發(fā)新系統(tǒng)時選擇語言時用來進(jìn)行策略性的決策。排行榜的詳細(xì)定義可以參考這里(英文)。