《Network World》主编谈“Lua编程语言”
以下为全部译文:
Lua(葡萄牙语中意为“月亮”)首次发布于1993年,旨在成为一门嵌入式的解释性脚本语言。它具有小巧、快速、非常简洁的优点,还异常灵活,因而得以进入一系列广泛的商业应用领域。
比如说,Adobe的Photoshop Lightroom其用户界面就是用Lua编写的;罗技的Squeezebox音乐播放器和Damn Small Linux(DSL)操作系统也是用Lua编写的。据维基百科解释,DSL使用“Lua,为命令行实用程序提供了对桌面友好的界面,又不占用大量的磁盘空间。”
我得扯开话题,特别指出这一点:Damn Small Linux眼下步履蹒跚,这个观点出自维基百科关于DSL的那篇文章,还有许多人在博文上的留言。维基百科称:“由于该项目的发起者与主要开发者之间发生内讧,DSL的开发似乎陷入了停滞不前的困境;这个项目前途未卜,这让用户们大为失望。”的确让人失望;而鉴于DSL网站似乎死气沉沉(这款操作系统的4.4版本发布后,网站在2008年似乎没有了人气),祝DSL走好。
不管怎样,Lua学起来很容易,你可以从Lua网站下载它,它有多个实现版本。
用Lua编写的第一个经典程序相当普通:
print("hello")
这个命令输出的当然是“hello”。更有意思一点的Lua是个阶乘计算器:
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))
但也是更有意思一点而已。
这段代码来自Roberto Ierusalimschy所著的《Lua编程》(Programming in Lua),该书是针对Lua 5.0编写的。现在,Lua的最新版本是版本5.1。这本书有点过时了,但仍不失为一本实用的入门书。
Lua是一门引人入胜的语言,有许多示例,可以访问Luaforge网站。你可以试一下交互式在线版。
如果你需要更多最新的说明文档,市面上有许多图书可供挑选,也可以完全像许多编程人员那样,直接查阅官方的Lua参考手册。
现在,假设你拥有iPad,可能想要试一下Codea for iPad,这个编程工具由名称很古怪的Two Lives Left开发商发布,它把Lua解释器嵌入到了为iPad设计的iOS应用程序中。
这是个外观漂亮的程序,有优美的图形和设计精良的用户界面。
从起始屏幕,你可以入一个现有的项目,也可以新建一个项目。Codea项目包括:分页窗口(构成应用程序的类在不同的页上)和执行时候的左右两栏布局,上面有程序参数面板、文本输出面板、左边的执行控件(后退、开始、暂停和重置)以及右边的程序图形显示面板。
Codea编程环境真正吸引人的地方是,它与iPad集成得非常好,简直是浑然一体。如果你想更改数字,只要用手指戳一下数字,然后放开,用键盘来编辑,也可以按住,同时上下拖动,即可增加或减小数值。想更改颜色,只要用手指戳一下值,就会弹出颜色选择器。你还可以选择精灵(sprite),操作方式几乎一样。还内置了Lua的完整说明文档。
演示程序给人留下了很深刻的印象。一款演示程序模拟了你在移动iPad时,一块布很自然地摆布(Codea系统能够访问来自方向感应器的数据,并同时检测多个屏幕触摸动作),有几个多点触控演示、几个场面相当复杂的游戏以及鼓机。
缺少了什么功能?缺少了在本地或与外部资源之间导入或导出代码的功能,缺少了访问网络功能的功能,无法隐藏左侧的控制面板,以便应用程序可以全屏运行,还缺少了各种代码保护功能,所以其实无法编写实际用在贵企业的应用程序。Codea开发者Simeon Nasilowski告诉我,他打算进行各种各样的改进,很可能包括我提出的所有需要改进的方面;但眼下,他还没有答应给出时间表。
Simeon告诉我,自Codea在10月26日发布以来,大约已售出了约10000套,每套售价7.99美元,这个成绩相当骄人。Codea在满分是5分的评价中得到了4分。