8月編程語言排行榜:以總統為名的語言新貴Lua
原創8月4日,Tiobe公布了***的8月編程語言排行榜,和7月榜單相比,***變動就數微軟的F#了,F#***進入TOP20。1至10名中,PHP重返第4,C#則到了第5,其他不變。不過看看最近人氣上升的F# ,就沒有什么好奇怪的了。作為一種不錯的程序設計語言,微軟***的Visual Studio 2010中也包含了F#。
下面是前20名的編程語言排行
2011年6月、7月的Tiobe編程語言排行榜都介紹了移動開發語言Lua,其中7月編程語言排行榜以年度語言預測為主題,直言Lua是2011年度唯一有機會挑戰Objective-C的語言。但是Lua到底是什么語言呢?本期51CTO編程語言排行榜便以Lua語言為主題,介紹這款以巴西總統的名字命名的移動開發語言新貴。51CTO推薦專題:移動開發之編程語言教程
(圖)Lua語言
Lua是一個被設計成用于擴展C/C++編程的輕量級腳本語言,它的目標是成為一個很容易嵌入其它語言中使用的語言。Lua讓C/C++編寫的代碼調用Lua腳本,同時C/C++函數也能夠在Lua腳本中調用。與C/C++代碼的交互性,讓Lua在應用程序開發中有著廣泛的應用基礎。很多應用程序使用Lua作為自己的嵌入式腳本語言,以此來實現可配置性、可擴展性。
Lua名字的由來
小巧的Lua語言來自于巴西里約熱內盧天主教大學的實驗性項目。當初巴西里約熱內盧天主教大學的師生為什么要給這款語言起名為“Lua”,很大程度上是向巴西著名政治家、前任總統路易斯·伊納西奧·盧阿·達席爾瓦致敬。盧阿總統是是巴西歷史上學歷***,但是支持率***的總統,深受人民愛戴,作為巴西國家電子領域最重要的人才培養基地的里約熱內盧天主教大學計算機研究生院把他們在計算機世界中最重要成就“Lua”語言與他們總統同名,可見他們對Lua語言給予了多么大的希望。
巴西前總統盧阿
Lua語言在移動開發中的成功
2011年以前中國人對Lua語言的老家里約熱內盧可以說是基本不了解,不過一部以小鳥愛情為主題的動畫片《里約大冒險》讓我們了解了里約熱內盧的美麗風光。同樣一個小鳥保衛鳥蛋的游戲《憤怒的小鳥》讓Lua語言風靡開發者的世界。(51CTO擴展閱讀《開發憤怒的小鳥的Lua語言:Wax框架詳解1》、《開發憤怒的小鳥的Lua語言:Wax框架詳解2》)
(圖)里約大冒險版《憤怒的小鳥》
像前文所說Lua語法簡潔優美,解釋器由標準C編寫。以快速小巧著稱的Lua擁有在目前所有腳本引擎中最快的運行速度,這樣的特性讓Lua成為用作嵌入式腳本的***選擇。但是,Lua語言被人們所熟知還要追述到1年前喬布斯的蘋果將Lua語言引進iOS平臺,直到現在已經有很多iPhone的應用寫入到Lua中。而Lua語言憑借其代碼幾乎能在所有操作系統和移動終端上編譯運行的這一特性,不但可以在iOS這一移動平臺開發,同樣也可以在Android等其他平臺上開發。51CTO曾介紹過Lua語言的SDK庫Corona。有了Corona SDK以后Lua語言不但可以支持iOS,還可以支持Android平臺。以上這些原因使Lua語言在Tiobe編程語言排行榜上迅速攀升,成為移動開發領域的新貴。
Lua的技術特點
目前Lua語言的***版本是5.2 Beta,Lua也能對面向對象編程,函數式編程,數據驅動式編程提供很好的支持。作為一個擴展式語言,Lua沒有 "main" 程序的概念:它只能嵌入一個宿主程序中工作,這個宿主程序被稱作embedding program或簡稱為host。宿主程序可以通過調用函數執行一小段Lua代碼,可以讀寫Lua變量,可以注入C函數讓Lua代碼調用。這些擴展的C函數,可以大大的擴展了Lua可以處理事務的領域,這樣就可以訂制出各種語言,而它們共享一個統一的句法格式的框架。Lua的官方發布版就包含了一個叫做Lua的簡單的宿主程序,它用Lua庫提供了一個保證獨立的Lua解釋器。
寫一個最最簡單的程序——Hello World。
- print("Hello World")
假定你把上面這句保存在hello.lua文件中,你在命令行只需要:
- prompt> lua hello.lua
看到結果了嗎?
讓我們來看一個稍微復雜點的例子:
- -- defines a factorial function
- function fact (n)
- if n == 0 then
- return 1
- else
- return n * fact(n-1)
- end
- end
- print("enter a number:")
- a = io.read("*number") -- read a number
- print(fact(a))
這個例子定義了一個函數,計算輸入參數n的階乘;本例要求用戶輸入一個數字n,然后打印n的階乘。
(圖)魔獸世界插件中的“Hello World”
很多網站宣傳Lua語言作為腳本開發了《魔獸世界》,其實Lua語言只是開發了《魔獸世界》的插件,幾乎所有的《魔獸世界》插件都是使用解釋性的腳本Lua編寫,核心的C++代碼只占全部代碼中的很小一部分比重。在傳統平臺上Lua***的應用場景是在游戲中作為處理邏輯的腳本,即用來編寫游戲的任務腳本,以實現游戲的可配置性和可擴展性。在游戲中Lua腳本的加載不需重啟服務器,盡管腳本的運行效率低于編譯好的二進制代碼,但目前CPU速度已完全能夠讓Lua腳本迅速解釋執行。這也正是包括《魔獸世界》、《戰錘40K》、《仙境傳說》、《博德之門》和《軒轅劍外傳漢之云》在內的眾多游戲選擇Lua開發插件的原因。
(圖)魔獸世界中游戲內插件開發的布局器
想學習Lua語言的朋友還可以到51CTO下載頻道魔獸世界Lua插件的編輯器來試驗一下。
#p#
下面是本期編程語言排行榜的其他排名數據和趨勢走向。
前10名編程語言走勢圖
20到50名語言排行
Position | Programming Language | Ratings |
21 | Logo | 0.596% |
22 | PL/SQL | 0.525% |
23 | Scheme | 0.497% |
24 | Go | 0.482% |
25 | C shell | 0.475% |
26 | Visual Basic .NET | 0.464% |
27 | Q | 0.458% |
28 | D | 0.445% |
29 | MATLAB | 0.444% |
30 | SAS | 0.414% |
31 | R | 0.404% |
32 | Forth | 0.399% |
33 | Scratch | 0.399% |
34 | Fortran | 0.385% |
35 | Haskell | 0.370% |
36 | NXT-G | 0.356% |
37 | ML | 0.343% |
38 | NATURAL | 0.337% |
39 | Clean | 0.336% |
40 | LabVIEW | 0.311% |
41 | ActionScript | 0.308% |
42 | ABAP | 0.303% |
43 | Icon | 0.302% |
44 | PL/I | 0.290% |
45 | OpenEdge ABL | 0.286% |
46 | Alice | 0.283% |
47 | COBOL | 0.281% |
48 | Erlang | 0.275% |
49 | MOO | 0.273% |
50 | Prolog | 0.264% |
下面是第50到100的編程語言排名
(Visual) FoxPro, ABC, Algol, APL, Arc, ATLAS, Avenue, Awk, Bash, bc, BETA, BlitzMax, Boo, Bourne shell, CFML, cg, CL (OS/400), Cobra, cT, Dylan, Eiffel, Factor, Groovy, Inform, Io, J, Ladder Logic, MAD, Magic, Maple, Mercury, Monkey, MUMPS, Oberon, Occam, OpenCL, Oz, PILOT, PowerShell, Revolution, S, Scala, Smalltalk, Standard ML, SuperCollider, Tcl, TOM, VBScript, VHDL, X10
不同語言的比例
下面給出了編程語言類別的一年變化趨勢
【2011年榜單回顧】
- 2011年7月編程語言排行榜:COBOL五角大樓出品
- 2011年6月編程語言排行榜:為孩子創造的語言Scratch
- 2011年5月編程語言排行榜:用MATLAB構建宇宙
- 2011年4月編程語言排行榜:告別Smalltalk
- 2011年3月編程語言排行榜:用Ada向人類首位程序員致敬
- 2011年2月編程語言排行榜:冰河時代的Fortran
- 2011年1月編程語言排行榜:Python稱霸2010
【責任編輯:陳貽新 TEL:(010)68476606】