4月編程語言排行榜:Top20里的“陌生人”
原創【51CTO獨家特稿】Tiobe近日發布了2010年4月的編程語言排行榜,在本期榜單中,C語言反超Java奪得榜首。Tiobe分析稱,在最近的十年中,C語言一直占據軟件開發中15%-20%的編程語言使用率;此次重奪王位,并不意味著C語言的增長,而是Java的衰老(詳細分析請參考51CTO之前的報道《Java,正在老去的王者》)。另外值得注意的是,Sun的RIA技術——JavaFX腳本語言一舉竄升四位,有望進入前20名。
本期編程榜我們將視角放在榜單前20名中那些我們并不熟悉的編程語言,來看一看Top20里的“陌生人”。
下面是本期榜單的前20名,請留意標亮的幾門語言。
Tiobo編程語言排行榜的前20名幾乎占據了全球編程語言使用率的70%。長期出現在編程榜前20名里的語言除了Java、C、PHP等我們熟悉并經常使用的語言外,還有一些國內很少應用的語言,比如這期榜單中的SAS、ABAP、MATLAB和Lua。
由于國內外軟件需求和開發者使用習慣上的差異,這些語言并不為我們所熟知,但其在IT界及軟件開發與應用方面的作用不可小視。值得注意的是,這些陌生的語言之所以可以長期占據編程榜重要的位置,要么是因為其背后有強勢的軟件平臺(廠商)支持,要么是自身的特點專注并擅長于某一領域。簡單來說,還是應用場景和應用需求決定了這些小眾語言的大眾地位。
SAS —— 本期排名13
要了解SAS語言,首先需要知道SAS軟件系統。SAS系統是國外著名的統計分析軟件,1966年在美國北卡羅萊納州立大學誕生,經過多年的發展和完善,目前,SAS系統已經成為國際統計分析的標準軟件,在各個領域應用廣泛。SAS 是一個模塊化、集成化的大型應用軟件系統。它由數十個專用模塊構成,功能包括數據訪問、數據儲存及管理、應用開發、圖形處理、數據分析、報告編制、運籌學方法、計量經濟學與預測等等。
SAS系統的使用依賴其自身帶有的SAS語言。SAS系統的用戶需要通用SAS語言提供的命令、語句和語法來控制系統完成數據管理和分析工作。
簡單來看,SAS語言的功能有點類似數據庫語言(如FoxPro),但又添加了一般高級程序設計語言的許多成分(如分支、 循環、數組),以及專用于數據管理、統計計算的函數。在SAS中,大部分常用的復雜數據計算的算法作為標準過程調用,用戶僅需要指出過程名及其必要的參數。這一特點使得SAS編程十分簡單,同時大大簡化了SAS數據分析系統的工作。SAS系統的數據管理、報表、圖形、統計分析等功能都可以用SAS語言程序來調用,只要指定要完成的任務就可以由SAS系統按照預先設計好的程序去進行。關于SAS語言的詳細介紹請參考:數據管理與分析語言SAS簡介
ABAP —— 本期排名17
ABAP是一門高級商業應用程序設計語言(Advanced Business Application Programming),它是著名商業軟件公司SAP開發的一種編程語言,主要用于SAP系統內部商業應用程序的設計和開發。一般,SAP的商業軟件會提供一系列的應用解決方案,同時提供一系列的編程接口對這些系統進行二次開發,ABAP就是這種二次開發的主力編程語言。ABAP語言開發的程序通過SAP開發平臺編譯并應用(依賴)與SAP系統。
ABAP是面向對象語言。它支持封裝性和繼承性。封裝性是面向對象的基礎,而繼承性則是建立在封裝性基礎上的重要特性;ABAP的另一個特點是基于事件驅動的。
ABAP程序的源代碼包括數據定義和處理快兩個部分。
數據定義:包含整個程序中可見的全局數據類型和數據對象,選擇屏幕元素以及ABAP Objects中自定義的類和接口;
處理塊:是ABAP程序的主要結構單元,定義了程序在不同狀態下執行的具體功能,在程序編譯運行過程中,每個塊都是一個獨立的實體。ABAP程序中,數據定義和生命是獨立于任何處理快遞,其他所有語句都必須隸屬于某個處理塊。
MATLAB —— 本期排名18
MATLAB是一門精于數據分析和數值計算的語言,它最早有美國新墨西哥大學計算機科學系主任Cleve Moler創建,1984年由MathWorks公司正式把MATLAB推向市場。目前,MATLAB已經發展成為國際控制界的標準高級技術計算語言和交互式環境;MATLAB在數學類科技應用軟件中在數值計算方面***。它可以進行矩陣運算、繪制函數和數據、實現算法、創建用戶界面、連接其他編程語言的程序等,主要應用于工程計算、控制設計、信號處理與通訊、圖像處理、信號檢測、金融建模設計與分析等領域。
MATLAB的基本數據單位是矩陣,它的指令表達式與數學、工程中常用的形式十分相似,所以用MATLAB來解算問題要比用C,FORTRAN等語言完成相同的事情簡捷得多。一般,我們使用MATLAB提供的軟件環境進行MATALB對代碼、文件和數據進行管理,MATLAB的交互式工具可以按地道的方式探查、設計和求解問題。MATLAB提供功能強大的數學函數庫,可以用于線性代數、統計、傅立葉分析、篩選、優化和數值積分等問題求解。此外,各種函數可將基于MATLAB的算法與外部應用程序和語言,如:C、C++、Fortran、Java、COM等,還可以與Microsoft Excel集成,開發者可以直接調用,用戶也可以將自己編寫的實用程序導入到MATLAB函數庫中方便自己以后調用。
目前,MATLAB廣泛應用在信號和圖像處理、通訊、控制系統設計、測試和測量、財務建模和分析以及計算生物學等眾多應用領域。
關于MATLAB編程的具體應用請參考:VC++與MATLAB混合編程及其應用
Lua —— 本期排名20
你可能沒聽過Lua,但你一定聽過(或玩過)魔獸世界,Lua***的應用案例就是知名網絡游戲——魔獸世界。Lua是一門簡潔、小巧、可擴展性極強的腳本語言。其設計的目的是為了嵌入應用程序中,為應用程序提供靈活的擴展和定制功能;Lua***的特點就是很容易嵌入其它語言中使用。
Lua是一種動態弱類型的程式設計語言。它只提供了很小的一個特性集合來滿足不同程序的需要,其自身所帶有的數據類型非常少,只提供了數字(缺省是雙精度浮點數,可配置)、布爾、字符串等幾種簡單的數據類型。Lua只包括一個精簡的核心和最基本的庫。這使得Lua體積小巧,啟動迅速;一個完整的Lua解釋器不過200k,在目前所有腳本引擎中,Lua的速度是最快的。這一切都決定了Lua是作為嵌入式腳本的***選擇。
Lua用標準C語言編寫并以源代碼形式開放,編譯后僅僅一百余K,可以很方便的嵌入別的程式里。與目前許多功能強大的語言不同,Lua自身不提供網絡、圖形界面和其他復雜的API庫,這些任務主要由Lua的宿主語言(使用Lua來擴展的語言)來完成。Lua可以使用它們,就像是本來就內置的功能一樣。
目前,很多游戲開發者使用Lua進行開發,他們使用Lua作為自己的嵌入式腳本語言,以此來實現可配置性、可擴展性。這其中包括大話西游II、仙境傳說、魔獸世界、戰錘40k、博德之門、軒轅劍外傳漢之云等。
下面是本期榜單前10名近年的趨勢走向,請留意Java的下滑趨勢:
#p#
前10名編程語言趨勢走向
其他編程語言及趨勢
下面是本期榜單第21-50的編程語言排名
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的編程語言排名
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
編程語言類別
下面給出了編程語言類別的一年變化趨勢,面向對象編程(Object-Oriented Languages)依然占到編程語言類型的半壁江山。
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% |
動態和靜態語言趨勢走向
【2010年編程語言排行榜回顧】