8月編程語言排行榜:以總統(tǒng)為名的語言新貴Lua
原創(chuàng)8月4日,Tiobe公布了***的8月編程語言排行榜,和7月榜單相比,***變動(dòng)就數(shù)微軟的F#了,F#***進(jìn)入TOP20。1至10名中,PHP重返第4,C#則到了第5,其他不變。不過看看最近人氣上升的F# ,就沒有什么好奇怪的了。作為一種不錯(cuò)的程序設(shè)計(jì)語言,微軟***的Visual Studio 2010中也包含了F#。
下面是前20名的編程語言排行
2011年6月、7月的Tiobe編程語言排行榜都介紹了移動(dòng)開發(fā)語言Lua,其中7月編程語言排行榜以年度語言預(yù)測(cè)為主題,直言Lua是2011年度唯一有機(jī)會(huì)挑戰(zhàn)Objective-C的語言。但是Lua到底是什么語言呢?本期51CTO編程語言排行榜便以Lua語言為主題,介紹這款以巴西總統(tǒng)的名字命名的移動(dòng)開發(fā)語言新貴。51CTO推薦專題:移動(dòng)開發(fā)之編程語言教程
(圖)Lua語言
Lua是一個(gè)被設(shè)計(jì)成用于擴(kuò)展C/C++編程的輕量級(jí)腳本語言,它的目標(biāo)是成為一個(gè)很容易嵌入其它語言中使用的語言。Lua讓C/C++編寫的代碼調(diào)用Lua腳本,同時(shí)C/C++函數(shù)也能夠在Lua腳本中調(diào)用。與C/C++代碼的交互性,讓Lua在應(yīng)用程序開發(fā)中有著廣泛的應(yīng)用基礎(chǔ)。很多應(yīng)用程序使用Lua作為自己的嵌入式腳本語言,以此來實(shí)現(xiàn)可配置性、可擴(kuò)展性。
Lua名字的由來
小巧的Lua語言來自于巴西里約熱內(nèi)盧天主教大學(xué)的實(shí)驗(yàn)性項(xiàng)目。當(dāng)初巴西里約熱內(nèi)盧天主教大學(xué)的師生為什么要給這款語言起名為“Lua”,很大程度上是向巴西著名政治家、前任總統(tǒng)路易斯·伊納西奧·盧阿·達(dá)席爾瓦致敬。盧阿總統(tǒng)是是巴西歷史上學(xué)歷***,但是支持率***的總統(tǒng),深受人民愛戴,作為巴西國家電子領(lǐng)域最重要的人才培養(yǎng)基地的里約熱內(nèi)盧天主教大學(xué)計(jì)算機(jī)研究生院把他們?cè)谟?jì)算機(jī)世界中最重要成就“Lua”語言與他們總統(tǒng)同名,可見他們對(duì)Lua語言給予了多么大的希望。
巴西前總統(tǒng)盧阿
Lua語言在移動(dòng)開發(fā)中的成功
2011年以前中國人對(duì)Lua語言的老家里約熱內(nèi)盧可以說是基本不了解,不過一部以小鳥愛情為主題的動(dòng)畫片《里約大冒險(xiǎn)》讓我們了解了里約熱內(nèi)盧的美麗風(fēng)光。同樣一個(gè)小鳥保衛(wèi)鳥蛋的游戲《憤怒的小鳥》讓Lua語言風(fēng)靡開發(fā)者的世界。(51CTO擴(kuò)展閱讀《開發(fā)憤怒的小鳥的Lua語言:Wax框架詳解1》、《開發(fā)憤怒的小鳥的Lua語言:Wax框架詳解2》)
(圖)里約大冒險(xiǎn)版《憤怒的小鳥》
像前文所說Lua語法簡(jiǎn)潔優(yōu)美,解釋器由標(biāo)準(zhǔn)C編寫。以快速小巧著稱的Lua擁有在目前所有腳本引擎中最快的運(yùn)行速度,這樣的特性讓Lua成為用作嵌入式腳本的***選擇。但是,Lua語言被人們所熟知還要追述到1年前喬布斯的蘋果將Lua語言引進(jìn)iOS平臺(tái),直到現(xiàn)在已經(jīng)有很多iPhone的應(yīng)用寫入到Lua中。而Lua語言憑借其代碼幾乎能在所有操作系統(tǒng)和移動(dòng)終端上編譯運(yùn)行的這一特性,不但可以在iOS這一移動(dòng)平臺(tái)開發(fā),同樣也可以在Android等其他平臺(tái)上開發(fā)。51CTO曾介紹過Lua語言的SDK庫Corona。有了Corona SDK以后Lua語言不但可以支持iOS,還可以支持Android平臺(tái)。以上這些原因使Lua語言在Tiobe編程語言排行榜上迅速攀升,成為移動(dòng)開發(fā)領(lǐng)域的新貴。
Lua的技術(shù)特點(diǎn)
目前Lua語言的***版本是5.2 Beta,Lua也能對(duì)面向?qū)ο缶幊?,函?shù)式編程,數(shù)據(jù)驅(qū)動(dòng)式編程提供很好的支持。作為一個(gè)擴(kuò)展式語言,Lua沒有 "main" 程序的概念:它只能嵌入一個(gè)宿主程序中工作,這個(gè)宿主程序被稱作embedding program或簡(jiǎn)稱為host。宿主程序可以通過調(diào)用函數(shù)執(zhí)行一小段Lua代碼,可以讀寫Lua變量,可以注入C函數(shù)讓Lua代碼調(diào)用。這些擴(kuò)展的C函數(shù),可以大大的擴(kuò)展了Lua可以處理事務(wù)的領(lǐng)域,這樣就可以訂制出各種語言,而它們共享一個(gè)統(tǒng)一的句法格式的框架。Lua的官方發(fā)布版就包含了一個(gè)叫做Lua的簡(jiǎn)單的宿主程序,它用Lua庫提供了一個(gè)保證獨(dú)立的Lua解釋器。
寫一個(gè)最最簡(jiǎn)單的程序——Hello World。
- print("Hello World")
假定你把上面這句保存在hello.lua文件中,你在命令行只需要:
- prompt> lua hello.lua
看到結(jié)果了嗎?
讓我們來看一個(gè)稍微復(fù)雜點(diǎn)的例子:
- -- 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))
這個(gè)例子定義了一個(gè)函數(shù),計(jì)算輸入?yún)?shù)n的階乘;本例要求用戶輸入一個(gè)數(shù)字n,然后打印n的階乘。
(圖)魔獸世界插件中的“Hello World”
很多網(wǎng)站宣傳Lua語言作為腳本開發(fā)了《魔獸世界》,其實(shí)Lua語言只是開發(fā)了《魔獸世界》的插件,幾乎所有的《魔獸世界》插件都是使用解釋性的腳本Lua編寫,核心的C++代碼只占全部代碼中的很小一部分比重。在傳統(tǒng)平臺(tái)上Lua***的應(yīng)用場(chǎng)景是在游戲中作為處理邏輯的腳本,即用來編寫游戲的任務(wù)腳本,以實(shí)現(xiàn)游戲的可配置性和可擴(kuò)展性。在游戲中Lua腳本的加載不需重啟服務(wù)器,盡管腳本的運(yùn)行效率低于編譯好的二進(jìn)制代碼,但目前CPU速度已完全能夠讓Lua腳本迅速解釋執(zhí)行。這也正是包括《魔獸世界》、《戰(zhàn)錘40K》、《仙境傳說》、《博德之門》和《軒轅劍外傳漢之云》在內(nèi)的眾多游戲選擇Lua開發(fā)插件的原因。
(圖)魔獸世界中游戲內(nèi)插件開發(fā)的布局器
想學(xué)習(xí)Lua語言的朋友還可以到51CTO下載頻道魔獸世界Lua插件的編輯器來試驗(yàn)一下。
#p#
下面是本期編程語言排行榜的其他排名數(shù)據(jù)和趨勢(shì)走向。
前10名編程語言走勢(shì)圖
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
不同語言的比例
下面給出了編程語言類別的一年變化趨勢(shì)
【2011年榜單回顧】
- 2011年7月編程語言排行榜:COBOL五角大樓出品
- 2011年6月編程語言排行榜:為孩子創(chuàng)造的語言Scratch
- 2011年5月編程語言排行榜:用MATLAB構(gòu)建宇宙
- 2011年4月編程語言排行榜:告別Smalltalk
- 2011年3月編程語言排行榜:用Ada向人類首位程序員致敬
- 2011年2月編程語言排行榜:冰河時(shí)代的Fortran
- 2011年1月編程語言排行榜:Python稱霸2010
【責(zé)任編輯:陳貽新 TEL:(010)68476606】