《Network World》主編談“Lua編程語言”
譯文【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譯者!】