移动开发新宠:Lua语言
来源:互联网 发布:做会计报表的软件? 编辑:程序博客网 时间:2024/05/16 01:20
转载地址: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中文站成员。
- 移动开发新宠:Lua语言
- 移动开发新宠:Lua语言
- 移动开发新宠:Lua语言
- Lua语言在移动iSO平台上成为新宠
- 移动开发-lua 日记 -- 20150514
- 原生广告:移动推广的热门新宠
- Lua游戏开发(一)---Lua语言
- 移动开发语言Swift
- Lua之实现跨平台移动开发
- 2009,MID将成为3G移动通讯新宠
- 移动互联网的新宠:Android之缤纷世界
- 移动照片社交应用成美网络新宠
- 【COCOS2DX-LUA 脚本开发之二】LUA语言基础
- 【COCOS2DX-LUA 脚本开发之二】LUA语言基础
- 【COCOS2DX-LUA 脚本开发之二】LUA语言基础
- 【Cocos2dx-Lua 脚本开发之二】Lua语言基础
- 【COCOS2DX-LUA 脚本开发之二】LUA语言基础
- Lua游戏开发(三)---Lua语言学习(上)
- Flash 备忘两个问题 1.BitMapData 最大像素 2.Math.round(ProgressEvent.bytesLoaded / e.byteTotal 在html嵌套显示失败。
- 去掉android程序的任务栏
- 改进了一个很有意思的开源项目3D罗盘(marine compass)
- 【预告】火星人敏捷开发手册(免费敏捷教材及宣传材料预览)
- 有惊无险——学习一下oracle误删除表数据后的恢复,适当时候可以躲过主管一劫
- 移动开发新宠:Lua语言
- Java Reflection 之 Array
- 给我的小静静
- 处理带名称空间XML的XPATH
- 一道JavaScript面试的忽悠题
- Rsync简介
- 压缩传感综述
- CSS+JavaScript面试题
- 数据库基本操作封装