【51CTO独家译稿】作为著名IT杂志的《Network World》主编马克·吉布斯(Mark Gibbs)有一段时间没有谈论编程语言了,这次马克将介绍免费、开源的Lua语言,这门语言采用了麻省理工学院(MIT)许可证。
以下为全部译文:
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分。
作者简介:30多年来,作为《Network World》的主编马克·吉布斯发表了大量IT产业的文章。同时,马克还是负责英国Novell公司技术服务管理运作的联合创始人。
【51CTO译稿,非经授权谢绝转载,合作媒体转载请注明原文出处、作者及51CTO译者!】