2012年1月TIOBE編程語言排行榜剛剛出爐。最大的新聞當然是此前已連續兩年屈居第二的Objective-C終成正果。拜移動大潮所賜,它在一年中市場份額大漲3.91%,達到近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年風光不再,整整跌去了3.05%,僅剩下3.218%,還不及Objective-C一年中增加的份額,排名也下降3名,可以說是慘不忍睹。當然,Python的實際情況并沒有那么糟糕,據我所知,Python的圖書和Objective-C的圖書差不多一樣好賣,用Python來開發網站和做系統管理的人也越來越多,此外Google工程師Damon Kohler領導的SL4A等項目也在致力于使Python等腳本語言踏上移動開發的大船。另一個大輸家是PHP,Web后端開發難兄難弟Ruby也情況不佳,看來無論如何,移動的確已經搶了Web的風頭了。Lua的上升,一般也認為是因為移動游戲火爆的緣故。
除了Objective-C之外,風頭最勁的就是C#了,大漲2.55%,名次更是進入三甲,將占據這一位置長達十年的C++拉下了馬,也可以說一個歷史時刻。這里面估計有很多原來的VB程序員轉投吧,本來想說Delphi的,仔細一看,人家居然也是增長的……另外,應該有Windows Phone的因素吧,通過Mono你還可以用C#來開發Android和iOS應用。
C語言增加1.15%,是原來前三名里唯一增長的,其中緣由值得好好琢磨一下。我感覺隨著云計算的發展,高性能成為服務器端系統軟件的重點,C的優勢會越來越明顯。比如,前幾天CouchDB項目創始人Damien Katz宣布轉而專注開發Couchbase時,就強調新項目中已經放棄Erlang,轉用C,因為在性能和底層控制上C無與倫比。未來一年,C與Java的王者之爭是一個看點。
另一個份額增加較多的語言是JavaScript (+0.73%),之前我曾經分析過,實戰中不用JavaScript的程序員其實越來越少,JavaScript實際的份額和名次肯定被低估了。而且,它是最有可能通吃各個領域的統一編程語言。隨著包括移動終端在內的HTML5(它已經成為公認的未來)和服務器端Node.js發展,我相信JavaScript不久之后會進入排行榜的最前列。看看GitHub上的語言分布吧:
2012年哪些編程語言能成為黑馬呢?很有難度。TIOBE評論中提到了F#, Groovy和R。我對前兩者都不看好。F#的理由很簡單,.NET陣營的技術人員總體慣性較大,對新技術不熱衷,而且C#的迅速發展使得很多F#的優勢也漸漸消失了。Groovy更多的應該是用作Java項目中的膠水用,相對小眾,而且它還有Scala、Clojure等各種JVM語言做勁敵,日子肯定不輕松。
無論如何,函數式語言的重要性越來越強了:
分類 |
2012年1月份額 |
2011年1月相比變化 |
---|---|---|
面向對象語言 | 57.1% | +1.8% |
過程式語言 | 36.8% | -2.7% |
函數式語言 | 4.3% | +0.6% |
邏輯式語言 | 1.8% | +0.3% |
但是,第一次進入前20的R很有潛力,因為,它是大數據時代的寵兒,進行數據分析的利器,假以時日,超過Transact-C、PL/SQL這些同類是正常的。
另外也別忘了Go,一旦有更多實際生產應用的證明,它還是會贏得不少擁躉的,畢竟,系統編程語言占據著巨大的市場份額,能夠搶下幾分之一,也足以進入前十了。
好了,閑話少敘,大家看榜吧。
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 |
必須聲明,這個榜單本身采集的是英文世界的數據,雖然在反映趨勢上有一些參考意義,但與中國的實際情況不完全符合,而且,這張采樣本身也有相當大的局限性。比如榜單中的排名肯定與JavaScript的實際使用率不匹配,畢竟現在不用JavaScript的項目越來越少了,它甚至還在大舉入侵服務器端(參閱Node.js方面的介紹)。還有應用廣泛的Shell排名也不高,但是在Unix/Linux類平臺上,不用Shell的程序員應該也不會很多。《程序員》2010年8月刊的圓桌討論“什么是最美麗的編程語言”中,許多專家也談到了這一點。
TIOBE排行榜從長期來看意義更大(所以應該多重視5年、10年的變化),短期則只有參考價值。請大家注意,我們每月按時編譯排行榜,目的是告訴大家技術趨勢,而不是引發沒有內容的編程語言口水戰(這類評論通常都會被刪去,相關不良記錄也會記入發帖者的帳號)。
我們想特別指出的是,各種語言都有其自身的長處和缺點,籠統比較優劣毫無意義。而且就目前一般的編程任務而言,基本上各種語言都能勝任,開發效率也 和使用者的熟練程度密切相關。語言的此消彼長,關鍵在于社區,如果你熱愛哪一種語言,請到CSDN開設博客,多寫自己的心得、經驗、各種層次的教程,讓更 多人體驗到這種語言之美,擴大自己的社區。我們歡迎有質量有內容的語言和框架比較的技術文章,堅決排斥浪費自己和他人時間和資源的口水戰。
來看看長期趨勢圖。
后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
更長期的數據。
編程語言 | 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編程語言社區排行榜是編程語言流行趨勢的一個指標。每月更新。這份排行榜排名基于互聯網上有經驗的程序員、課程和第三方廠商的數量。排名 使用著名的搜索引擎(諸如Google、 MSN 、雅虎)以及Wikipedia和YouTube進行計算。請注意這個排行榜只是反映某個編程語言的熱門程度,并不能說明一門編程語言好不好,或者一門語 言所編寫的代碼數量多少。
這個排行榜可以用來考查你的編程技能是否與時俱進,也可以在開始開發新系統時選擇語言時用來進行策略性的決策。排行榜的詳細定義可以參考這里(英文)。