【ルア】

Lua とは?

💡 小さな月が、大きなアプリを動かす
📌 このページのポイント
Luaの組み込みアーキテクチャ Lua エンジン 軽量VM(約200KB) 高速インタープリタ 組み込み 組み込み 組み込み 🎮 ゲームエンジン WoW / Roblox / Love2D 🌐 Webサーバー Nginx / OpenResty 🗄️ データストア Redis / Tarantool 万能データ構造「テーブル」→ 配列・辞書・オブジェクトを1つで表現
Luaのホストアプリケーション組み込みのイメージ
ひよこ ひよこ

Luaってあんまり聞いたことないけど、どういう言語なの?

ペンギン先生 ペンギン先生

Luaは「他のアプリケーションに組み込んで使う」のが得意な言語だよ。単体で使うというより、ゲームエンジンWebサーバーの中に埋め込んで、カスタマイズするために使われるんだ

ひよこ ひよこ

ゲームで使われてるって本当?

ペンギン先生 ペンギン先生

めちゃくちゃ使われているよ。World of WarcraftのアドオンやRobloxのスクリプトはLuaで書かれているし、Unityの代替エンジンでも採用例が多い。ゲーム業界ではかなりメジャーな言語なんだ

ひよこ ひよこ

なんでゲームに向いてるの?

ペンギン先生 ペンギン先生

Luaはインタープリタ全体がたった数百KBで、起動も実行も超高速なんだ。ゲームはリアルタイム処理が必要だから、軽くて速いLuaが重宝されるんだよ

ひよこ ひよこ

Nginx とかにも組み込めるの?

ペンギン先生 ペンギン先生

OpenRestyというNginxの拡張版ではLuaを使ってリクエスト処理をカスタマイズできるよ。RedisでもLuaスクリプトで複数のコマンドをアトミックに実行できるんだ。ミドルウェアの拡張言語としても人気があるね

ひよこ ひよこ

テーブルひとつで何でもできるってすごいね!

ペンギン先生 ペンギン先生

Luaのテーブル配列にも辞書にもオブジェクトにもなる万能データ構造なんだ。シンプルだけど強力で、言語仕様が小さいからすぐ覚えられる。組み込み先のアプリ開発者にとっては理想的な設計だよ

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Lua」って出てきたら「アプリに組み込んで使う軽量スクリプト言語」と思えればだいたいOK!
📖 おまけ:英語の意味
「Lua」 = 月(ポルトガル語)
💬 ブラジルで生まれた言語で、ポルトガル語で「月」を意味するんだよ。Cの太陽に対する月というイメージなんだ
← 用語集にもどる