4月編程語(yǔ)言排行榜:Top20里的“陌生人”
原創(chuàng)【51CTO獨(dú)家特稿】Tiobe近日發(fā)布了2010年4月的編程語(yǔ)言排行榜,在本期榜單中,C語(yǔ)言反超Java奪得榜首。Tiobe分析稱,在最近的十年中,C語(yǔ)言一直占據(jù)軟件開(kāi)發(fā)中15%-20%的編程語(yǔ)言使用率;此次重奪王位,并不意味著C語(yǔ)言的增長(zhǎng),而是Java的衰老(詳細(xì)分析請(qǐng)參考51CTO之前的報(bào)道《Java,正在老去的王者》)。另外值得注意的是,Sun的RIA技術(shù)——JavaFX腳本語(yǔ)言一舉竄升四位,有望進(jìn)入前20名。
本期編程榜我們將視角放在榜單前20名中那些我們并不熟悉的編程語(yǔ)言,來(lái)看一看Top20里的“陌生人”。
下面是本期榜單的前20名,請(qǐng)留意標(biāo)亮的幾門語(yǔ)言。

Tiobo編程語(yǔ)言排行榜的前20名幾乎占據(jù)了全球編程語(yǔ)言使用率的70%。長(zhǎng)期出現(xiàn)在編程榜前20名里的語(yǔ)言除了Java、C、PHP等我們熟悉并經(jīng)常使用的語(yǔ)言外,還有一些國(guó)內(nèi)很少應(yīng)用的語(yǔ)言,比如這期榜單中的SAS、ABAP、MATLAB和Lua。
由于國(guó)內(nèi)外軟件需求和開(kāi)發(fā)者使用習(xí)慣上的差異,這些語(yǔ)言并不為我們所熟知,但其在IT界及軟件開(kāi)發(fā)與應(yīng)用方面的作用不可小視。值得注意的是,這些陌生的語(yǔ)言之所以可以長(zhǎng)期占據(jù)編程榜重要的位置,要么是因?yàn)槠浔澈笥袕?qiáng)勢(shì)的軟件平臺(tái)(廠商)支持,要么是自身的特點(diǎn)專注并擅長(zhǎng)于某一領(lǐng)域。簡(jiǎn)單來(lái)說(shuō),還是應(yīng)用場(chǎng)景和應(yīng)用需求決定了這些小眾語(yǔ)言的大眾地位。
SAS —— 本期排名13
要了解SAS語(yǔ)言,首先需要知道SAS軟件系統(tǒng)。SAS系統(tǒng)是國(guó)外著名的統(tǒng)計(jì)分析軟件,1966年在美國(guó)北卡羅萊納州立大學(xué)誕生,經(jīng)過(guò)多年的發(fā)展和完善,目前,SAS系統(tǒng)已經(jīng)成為國(guó)際統(tǒng)計(jì)分析的標(biāo)準(zhǔn)軟件,在各個(gè)領(lǐng)域應(yīng)用廣泛。SAS 是一個(gè)模塊化、集成化的大型應(yīng)用軟件系統(tǒng)。它由數(shù)十個(gè)專用模塊構(gòu)成,功能包括數(shù)據(jù)訪問(wèn)、數(shù)據(jù)儲(chǔ)存及管理、應(yīng)用開(kāi)發(fā)、圖形處理、數(shù)據(jù)分析、報(bào)告編制、運(yùn)籌學(xué)方法、計(jì)量經(jīng)濟(jì)學(xué)與預(yù)測(cè)等等。
SAS系統(tǒng)的使用依賴其自身帶有的SAS語(yǔ)言。SAS系統(tǒng)的用戶需要通用SAS語(yǔ)言提供的命令、語(yǔ)句和語(yǔ)法來(lái)控制系統(tǒng)完成數(shù)據(jù)管理和分析工作。
簡(jiǎn)單來(lái)看,SAS語(yǔ)言的功能有點(diǎn)類似數(shù)據(jù)庫(kù)語(yǔ)言(如FoxPro),但又添加了一般高級(jí)程序設(shè)計(jì)語(yǔ)言的許多成分(如分支、 循環(huán)、數(shù)組),以及專用于數(shù)據(jù)管理、統(tǒng)計(jì)計(jì)算的函數(shù)。在SAS中,大部分常用的復(fù)雜數(shù)據(jù)計(jì)算的算法作為標(biāo)準(zhǔn)過(guò)程調(diào)用,用戶僅需要指出過(guò)程名及其必要的參數(shù)。這一特點(diǎn)使得SAS編程十分簡(jiǎn)單,同時(shí)大大簡(jiǎn)化了SAS數(shù)據(jù)分析系統(tǒng)的工作。SAS系統(tǒng)的數(shù)據(jù)管理、報(bào)表、圖形、統(tǒng)計(jì)分析等功能都可以用SAS語(yǔ)言程序來(lái)調(diào)用,只要指定要完成的任務(wù)就可以由SAS系統(tǒng)按照預(yù)先設(shè)計(jì)好的程序去進(jìn)行。關(guān)于SAS語(yǔ)言的詳細(xì)介紹請(qǐng)參考:數(shù)據(jù)管理與分析語(yǔ)言SAS簡(jiǎn)介
ABAP —— 本期排名17
ABAP是一門高級(jí)商業(yè)應(yīng)用程序設(shè)計(jì)語(yǔ)言(Advanced Business Application Programming),它是著名商業(yè)軟件公司SAP開(kāi)發(fā)的一種編程語(yǔ)言,主要用于SAP系統(tǒng)內(nèi)部商業(yè)應(yīng)用程序的設(shè)計(jì)和開(kāi)發(fā)。一般,SAP的商業(yè)軟件會(huì)提供一系列的應(yīng)用解決方案,同時(shí)提供一系列的編程接口對(duì)這些系統(tǒng)進(jìn)行二次開(kāi)發(fā),ABAP就是這種二次開(kāi)發(fā)的主力編程語(yǔ)言。ABAP語(yǔ)言開(kāi)發(fā)的程序通過(guò)SAP開(kāi)發(fā)平臺(tái)編譯并應(yīng)用(依賴)與SAP系統(tǒng)。
ABAP是面向?qū)ο笳Z(yǔ)言。它支持封裝性和繼承性。封裝性是面向?qū)ο蟮幕A(chǔ),而繼承性則是建立在封裝性基礎(chǔ)上的重要特性;ABAP的另一個(gè)特點(diǎn)是基于事件驅(qū)動(dòng)的。
ABAP程序的源代碼包括數(shù)據(jù)定義和處理快兩個(gè)部分。
數(shù)據(jù)定義:包含整個(gè)程序中可見(jiàn)的全局?jǐn)?shù)據(jù)類型和數(shù)據(jù)對(duì)象,選擇屏幕元素以及ABAP Objects中自定義的類和接口;
處理塊:是ABAP程序的主要結(jié)構(gòu)單元,定義了程序在不同狀態(tài)下執(zhí)行的具體功能,在程序編譯運(yùn)行過(guò)程中,每個(gè)塊都是一個(gè)獨(dú)立的實(shí)體。ABAP程序中,數(shù)據(jù)定義和生命是獨(dú)立于任何處理快遞,其他所有語(yǔ)句都必須隸屬于某個(gè)處理塊。
MATLAB —— 本期排名18
MATLAB是一門精于數(shù)據(jù)分析和數(shù)值計(jì)算的語(yǔ)言,它最早有美國(guó)新墨西哥大學(xué)計(jì)算機(jī)科學(xué)系主任Cleve Moler創(chuàng)建,1984年由MathWorks公司正式把MATLAB推向市場(chǎng)。目前,MATLAB已經(jīng)發(fā)展成為國(guó)際控制界的標(biāo)準(zhǔn)高級(jí)技術(shù)計(jì)算語(yǔ)言和交互式環(huán)境;MATLAB在數(shù)學(xué)類科技應(yīng)用軟件中在數(shù)值計(jì)算方面***。它可以進(jìn)行矩陣運(yùn)算、繪制函數(shù)和數(shù)據(jù)、實(shí)現(xiàn)算法、創(chuàng)建用戶界面、連接其他編程語(yǔ)言的程序等,主要應(yīng)用于工程計(jì)算、控制設(shè)計(jì)、信號(hào)處理與通訊、圖像處理、信號(hào)檢測(cè)、金融建模設(shè)計(jì)與分析等領(lǐng)域。
MATLAB的基本數(shù)據(jù)單位是矩陣,它的指令表達(dá)式與數(shù)學(xué)、工程中常用的形式十分相似,所以用MATLAB來(lái)解算問(wèn)題要比用C,F(xiàn)ORTRAN等語(yǔ)言完成相同的事情簡(jiǎn)捷得多。一般,我們使用MATLAB提供的軟件環(huán)境進(jìn)行MATALB對(duì)代碼、文件和數(shù)據(jù)進(jìn)行管理,MATLAB的交互式工具可以按地道的方式探查、設(shè)計(jì)和求解問(wèn)題。MATLAB提供功能強(qiáng)大的數(shù)學(xué)函數(shù)庫(kù),可以用于線性代數(shù)、統(tǒng)計(jì)、傅立葉分析、篩選、優(yōu)化和數(shù)值積分等問(wèn)題求解。此外,各種函數(shù)可將基于MATLAB的算法與外部應(yīng)用程序和語(yǔ)言,如:C、C++、Fortran、Java、COM等,還可以與Microsoft Excel集成,開(kāi)發(fā)者可以直接調(diào)用,用戶也可以將自己編寫的實(shí)用程序?qū)氲組ATLAB函數(shù)庫(kù)中方便自己以后調(diào)用。
目前,MATLAB廣泛應(yīng)用在信號(hào)和圖像處理、通訊、控制系統(tǒng)設(shè)計(jì)、測(cè)試和測(cè)量、財(cái)務(wù)建模和分析以及計(jì)算生物學(xué)等眾多應(yīng)用領(lǐng)域。
關(guān)于MATLAB編程的具體應(yīng)用請(qǐng)參考:VC++與MATLAB混合編程及其應(yīng)用
Lua —— 本期排名20
你可能沒(méi)聽(tīng)過(guò)Lua,但你一定聽(tīng)過(guò)(或玩過(guò))魔獸世界,Lua***的應(yīng)用案例就是知名網(wǎng)絡(luò)游戲——魔獸世界。Lua是一門簡(jiǎn)潔、小巧、可擴(kuò)展性極強(qiáng)的腳本語(yǔ)言。其設(shè)計(jì)的目的是為了嵌入應(yīng)用程序中,為應(yīng)用程序提供靈活的擴(kuò)展和定制功能;Lua***的特點(diǎn)就是很容易嵌入其它語(yǔ)言中使用。
Lua是一種動(dòng)態(tài)弱類型的程式設(shè)計(jì)語(yǔ)言。它只提供了很小的一個(gè)特性集合來(lái)滿足不同程序的需要,其自身所帶有的數(shù)據(jù)類型非常少,只提供了數(shù)字(缺省是雙精度浮點(diǎn)數(shù),可配置)、布爾、字符串等幾種簡(jiǎn)單的數(shù)據(jù)類型。Lua只包括一個(gè)精簡(jiǎn)的核心和最基本的庫(kù)。這使得Lua體積小巧,啟動(dòng)迅速;一個(gè)完整的Lua解釋器不過(guò)200k,在目前所有腳本引擎中,Lua的速度是最快的。這一切都決定了Lua是作為嵌入式腳本的***選擇。
Lua用標(biāo)準(zhǔn)C語(yǔ)言編寫并以源代碼形式開(kāi)放,編譯后僅僅一百余K,可以很方便的嵌入別的程式里。與目前許多功能強(qiáng)大的語(yǔ)言不同,Lua自身不提供網(wǎng)絡(luò)、圖形界面和其他復(fù)雜的API庫(kù),這些任務(wù)主要由Lua的宿主語(yǔ)言(使用Lua來(lái)擴(kuò)展的語(yǔ)言)來(lái)完成。Lua可以使用它們,就像是本來(lái)就內(nèi)置的功能一樣。
目前,很多游戲開(kāi)發(fā)者使用Lua進(jìn)行開(kāi)發(fā),他們使用Lua作為自己的嵌入式腳本語(yǔ)言,以此來(lái)實(shí)現(xiàn)可配置性、可擴(kuò)展性。這其中包括大話西游II、仙境傳說(shuō)、魔獸世界、戰(zhàn)錘40k、博德之門、軒轅劍外傳漢之云等。
下面是本期榜單前10名近年的趨勢(shì)走向,請(qǐng)留意Java的下滑趨勢(shì):
#p#
 
前10名編程語(yǔ)言趨勢(shì)走向
其他編程語(yǔ)言及趨勢(shì)
下面是本期榜單第21-50的編程語(yǔ)言排名
| Position | Programming Language | Ratings | 
|---|---|---|
| 21 | Transact-SQL | 0.500% | 
| 22 | JavaFX Script | 0.485% | 
| 23 | Lisp/Scheme | 0.481% | 
| 24 | Scratch | 0.476% | 
| 25 | D | 0.463% | 
| 26 | Bourne shell | 0.437% | 
| 27 | Scala | 0.433% | 
| 28 | Erlang | 0.420% | 
| 29 | COBOL | 0.398% | 
| 30 | RPG (OS/400) | 0.379% | 
| 31 | S-lang | 0.372% | 
| 32 | Logo | 0.361% | 
| 33 | Ada | 0.357% | 
| 34 | Fortran | 0.350% | 
| 35 | NXT-G | 0.321% | 
| 36 | Tcl/Tk | 0.319% | 
| 37 | Alice | 0.317% | 
| 38 | Forth | 0.296% | 
| 39 | FoxPro/xBase | 0.291% | 
| 40 | Caml/F# | 0.280% | 
| 41 | PowerShell | 0.268% | 
| 42 | CL (OS/400) | 0.259% | 
| 43 | Prolog | 0.258% | 
| 44 | Groovy | 0.238% | 
| 45 | Smalltalk | 0.221% | 
| 46 | VHDL | 0.220% | 
| 47 | J | 0.213% | 
| 48 | C shell | 0.198% | 
| 49 | MAX/MSP | 0.196% | 
| 50 | VBScript | 0.186% | 
下面是第50到100的編程語(yǔ)言排名
AD, Algol, Alpha, APL, Applescript, Awk, Beta, cg, Clean, cT, Dylan, Eiffel, Factor, Falcon, Focus, Haskell, Heron, Icon, IDL, Informix-4GL, Io, LabVIEW, LabWindows/CVI, Lingo, MAD, Maple, Mathematica, ML, Modula-2, Modula-3, MOO, MS-DOS batch, MUMPS, Natural, Occam, Oz, PL/I, Postscript, PowerBuilder, Progress, Q, R, REALbasic, Revolution, REXX, SIGNAL, SPSS, SuperCollider, Verilog, XSLT
編程語(yǔ)言類別
下面給出了編程語(yǔ)言類別的一年變化趨勢(shì),面向?qū)ο缶幊蹋∣bject-Oriented Languages)依然占到編程語(yǔ)言類型的半壁江山。
| Category | Ratings Apr 2010 | Delta Apr 2009 | 
|---|---|---|
| Object-Oriented Languages | 54.2% | -1.7% | 
| Procedural Languages | 41.3% | +1.4% | 
| Functional Languages | 2.7% | -0.3% | 
| Logical Languages | 1.7% | +0.5% | 
| Category | Ratings Apr 2010 | Delta Apr 2009 | 
|---|---|---|
| Statically Typed Languages | 61.4% | +4.2% | 
| Dynamically Typed Languages | 38.6% | -4.2% | 
動(dòng)態(tài)和靜態(tài)語(yǔ)言趨勢(shì)走向

【2010年編程語(yǔ)言排行榜回顧】
- 2010年3月編程語(yǔ)言排行榜:Fortran歸來(lái)
 - 2月編程語(yǔ)言排行榜:Objective-C的詠嘆調(diào)
 - 1月編程榜發(fā)布:Google Go意外奪得年度編程語(yǔ)言
 















 
 
 







 
 
 
 