不一樣的腳本語言有不一樣的特性,第一接觸的腳本語言,可能會影響本身對整個腳本語言的理解和認知。我之前接觸最多的腳本語言是 JavaScript。後果就是:我一度覺得腳本語言都是必須和宿主語言運行在不一樣的進程;腳本自己的語法受環境的影響很大,很難作到統一;若是想統一寫法,都須要在應用體積上作出很是大的妥協(嵌入一個通用的 JS 解釋器,會使應用體積增大十幾 M)。git
我在試着作一些努力,去改進因大量使用 JavaScript 引發的一些特定的技術問題。可是偶然間又想起了 Lua。最開始是從玩 WOW 的室友那裏據說 Lua 的。由於他說寫WOW插件很賺錢,因此曾經認真地搜索過 Lua,如今腦海中有一些殘留的片斷。github
我忽然意識到,可能 JavaScript 的大部分限制,在 Lua 或其餘腳本語言中並不存在。想要解決那些由於使用 JavaScript 引發的各類問題,可能只須要換一門腳本語言。shell
固然,此處不考慮一般意義上的使用難度,學習難度,推廣成本一類的因素;畢竟我是純自嗨。但假如,Lua 真的能很好解決我目前遇到的腳本語言沒法和宿主語言靈活通訊的問題,必將給本身的總體知識體系帶來一個新的提高,也必將在本身的平常實踐中創造出許多新的可能。編程
編程語言: Lua 5.3.4bash
Lua 模塊管理工具:LuaRocks 2.3.0intellij-idea
編輯器:IntelliJ IDEA CE (社區版)socket
Build #IC-172.4343.14, built on September 26, 2017
JRE: 1.8.0_152-release-915-b12 x86_64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Mac OS X 10.13.1編程語言
調試插件:EmmyLua 1.2.0編輯器
操做系統:macOS 10.13.1ide
macOS 專用模塊管理工具: Homebrew 1.3.6
如下討論,均以 macOS 爲主,其餘系統平臺僅供參考。
打開 macOS 終端,輸入如下指令:
brew tap homebrew/versions brew install lua53
Lua 的安裝有多種方式,這是較爲簡化高效的一種。須要注意的是,以此種方式安裝,Lua 的調用命令,將變爲 lua5.3
打開 macOS 終端,輸入如下指令:
brew tap mesca/luarocks brew install luarocks53
LuaRocks 的安裝也有多種方式,這是較爲簡化高效的一種。須要注意的是,以此種方式安裝,LuaRocks 的調用命令,將變爲 luarocks-5.3
Lua 平常編碼,推薦使用 IntelliJ IDEA CE(社區免費版),下載地址:https://www.jetbrains.com/idea/download/
主要是從配置難度,語法高亮,代碼提示,代碼調試等方面權衡。
Lua 的調試和高亮,主要得益於 EmmyLua。在 IntelliJ IDEA CE 的 Plugins 中,直接搜索安裝便可。記得,要先安裝此插件,而後再新建工程。安裝此插件後,工程模板,會多一個 Lua 模板選項。從 Lua 模板新建工程,會簡化許多 Lua 相關的配置。
在安裝 EmmyLua 插件以後,還須要安裝一個 Lua 庫 luasocket,才能進行調試。
打開終端,輸入如下指令:
sudo luarocks-5.3 install luasocket
Lua 的配置路徑要從默認的 lua,改成 lua5.3 的真實路徑,通常是 /usr/local/bin/lua5.3
在 IntelliJ IDEA CE 中新建 Lua 工程,而後新建 Lua 文件 hello.lua,輸入代碼:
-- defines a factorial function function fact (n) if n == 0 then return 1 else return n * fact(n - 1) end end a = 42 print(fact(a))
在編輯區左側,打上幾個斷點,而後文件編輯區右鍵,選擇 Debug 'hello.lua':
一塊兒簡單看下 Debug 斷點調試的效果:
必定是要在配置好 EmmyLua 插件後,直接基於新出現的 Lua 模板新建工程;不然在修改項目配置上,可能會花費許多時間。
只有 Lua 5.3 之後的版本才支持 UTF-8,有大量中文處理需求的童鞋可能會須要這個信息。
調試時報錯 module 'socket' not found ,是由於沒有安裝 luasocket。
Lua 基於MIT 開源,若是哪天想本身定義某種新語言來實現特定的產品特性,能夠考慮基於 Lua 定製。
藉助於 LuaJIT,Lua 的執行效率能夠進一步提高几十倍。
Lua 支持各類低級硬件嵌入式開發,可移植性很是好,物聯網時代可能會有新的可能和增加潛力。
若是感受 lua5.3 沒有 lua 寫着方便,能夠試着在 .profile 中配置 alias 命令別名,詳見:https://stackoverflow.com/a/8967864
alias lua="/usr/local/bin/lua5.3" alias luarocks="/usr/local/bin/luarocks-5.3"
sudo luarocks-5.3 install luasocket
以上介紹了 macOS 平臺,Lua 從安裝到配置調試環境的完整過程。接下來,就能夠根據本身的節奏和須要,好好領略 Lua 之美了~