移動開發新寵:Lua語言
http://mobile.csdn.net/a/20110708/301328.html
來源:《程式師》 作者:高昂
當移動開發成為如日中天的技術話題,這必將帶動一些新的技術熱點的興起,之前並未廣泛應用的Lua語言,因其靈活、輕量、高效的效率成為iSO平臺上的新寵。
TIOBE程式設計語言流行度排行榜的統計資料來源於Google、Bing、Yahoo!等主流搜尋引擎,以及各大技術網站發佈的招聘資訊,在很大程度上代表了程式設計語言的流行趨勢。在本月的TIOBE程式設計語言排名中,Lua語言第一次進入了排行榜的前十名。
羽量級指令碼語言Lua在開發者中正變得越來越流行,這與移動應用開發的升溫密不可分。以iPhone為代表的移動平臺,為不少開發者提供了新的應用展示空間,也為支援iOS系統的應用開發帶來了巨大商機。包括大獲成功的遊戲《憤怒的小鳥》在內,不少iPhone和iPad流行應用都使用了Lua作為遊戲腳本。
Lua語言最大的優勢在於其羽量級腳本和高效的運行效率,這一得天獨厚的優勢讓Lua在以娛樂和用戶體驗而著稱的iOS系統之上大有用武之地。
小巧的Lua語言來自于巴西里約熱內盧天主教大學於1993年啟動的實驗性專案。Lua語法簡潔優美,解譯器由標準C編寫。以快速小巧著稱的Lua擁有在目前所有腳本引擎中最快的運行速度,這樣的特性讓Lua成為用作嵌入式腳本的最佳選擇。
Lua代碼幾乎能在所有作業系統和移動終端上編譯運行,同時Lua提供了LuaJIT項目(http://luajit.org/),針對特定目標平臺為開發者提供即時編譯功能,進一步增強Lua的執行效率。
Lua的設計初衷並非意圖構建完整的應用,而是嵌入在應用程式中為應用提供靈活的擴展和定制功能,所以Lua僅提供了基本的數學運算和字串處理等函式程式庫,而並未涵蓋程式設計的方方面面。
在語言相容性上,Lua一開始就瞄準了具有廣泛應用場景的C和C++,讓C/C++編寫的代碼可以很方便地調用Lua腳本,同時C/C++函數也能夠在Lua腳本中調用。與C/C++代碼的良好交互性,讓Lua在應用程式開發中有著廣泛的應用基礎。
Lua最流行的應用場景是在遊戲中作為處理邏輯的腳本,即用來編寫遊戲的任務腳本,以實現遊戲的可配置性和可擴展性。在遊戲中Lua腳本的載入不需重啟伺服器,儘管腳本的運行效率低於編譯好的二進位碼,但目前CPU速度已完全能夠讓Lua腳本迅速解釋執行。
在以《魔獸世界》為代表的網路遊戲中,幾乎所有的外掛程式都是使用解釋性的腳本Lua編寫,核心的C++代碼只占全部代碼中的很小一部分比重。
目前Lua語言的最新版本是5.2 Beta,如果你也準備在移動應用開發中嘗試嵌入Lua腳本,在熟悉語法之後,便可移步Lua開源項目網站luaforge.net或Lua開發者網站lua-users.org的Wiki庫,下載感興趣的Lua程式腳本,開啟Lua腳本的學習之旅。
本文作者:高昂,關注開源社區,也是OSGeo中國和InfoQ中文站成員。

