【51CTO獨家特稿】Tiobe近日發佈了2010年4月的編程語言排行榜,在本期榜單中,C語言反超Java奪得榜首。Tiobe分析稱,在最 近的十年中,C語言一直佔據軟件開發中15%-20%的編程語言使用率;這次重奪王位,並不意味着C語言的增加,而是Java的衰老(詳細分析請參考 51CTO以前的報道《Java,正在老去的王者》)。 另外值得注意的是,Sun的RIA技術——JavaFX腳本語言一舉竄升四位,有望進入前20名。javascript
本期編程榜咱們將視角放在榜單前20名中那些咱們並不熟悉的編程語言,來看一看Top20裏的「陌生人」。java
下面是本期榜單的前20名,請留意標亮的幾門語言。算法
Tiobo編程語言排行榜的前20名 幾乎佔據了全球編程語言使用率的70%。長期出如今編程榜前20名裏的語言除了Java、C、PHP等咱們熟悉並常用的語言外,還有一些國內不多應用 的語言,好比這期榜單中的SAS、ABAP、MATLAB和Lua。shell
因爲國內外軟件需求和開發者使用習慣上的差別,這些語言並不爲咱們所熟知,但其在IT界及軟件開發與應用方面的做用不可小視。值得注意的是,這些陌 生的語言之因此能夠長期佔據編程榜重要的位置,要麼是由於其背後有強勢的軟件平臺(廠商)支持,要麼是自身的特色專一併擅長於某一領域。簡 單來講,仍是應用場景和應用需求決定了這些小衆語言的大衆地位。數據庫
SAS —— 本期排名13編程
要了解SAS語言,首先須要知道SAS軟件系統。SAS系統是國外著名的統計分析軟件,1966年在美國北卡羅萊納州立大學誕生,通過多年的發展和 完善,目前,SAS系統已經成爲國際統計分析的標準軟件,在各個領域應用普遍。SAS 是一個模塊化、集成化的大型應用軟件系統。它由數十個專用模塊構成,功能包括數據訪問、數據儲存及管理、應用開發、圖形處理、數據分析、報告編制、運籌學 方法、計量經濟學與預測等等。數組
SAS系統的使用依賴其自身帶有的SAS語言。SAS系統的用戶須要通用SAS語言提供的命令、語句和語法來控制系統完成數據管理和分析工做。網絡
簡單來看,SAS語言的功能有點相似數據庫語言(如FoxPro),但又添加了通常高級程序設計語言的許多成分(如分支、 循環、數組),以及專用於數據管理、統計計算的函數。在SAS中,大部分經常使用的複雜數據計算的算法做爲標準過程調用,用戶僅須要指出過程名及其必要的參 數。這一特色使得SAS編程十分簡單,同時大大簡化了SAS數據分析系統的工做。SAS系統的數據管理、報表、圖形、統計分析等功能均可以用SAS語言程 序來調用,只要指定要完成的任務就能夠由SAS系統按照預先設計好的程序去進行。關於SAS語言的詳細介紹請參考:數據管理與分析語言SAS簡介編程語言
ABAP —— 本期排名17ide
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的下滑趨勢:
其餘編程語言及趨勢
下面是本期榜單第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年編程語言排行榜回顧】