
Luaは1993年にブラジルのリオデジャネイロ・カトリック大学(PUC-Rio)で誕生した、軽量で組み込み可能なスクリプト言語である。Roberto Ierusalimschyらの研究チームが石油会社Petrobrasの社内ツール用に開発した小さな言語が、いまではWorld of Warcraftの拡張スクリプト、ゲームエンジンRobloxの主言語、ネットワーク機器のNGINXモジュールに至るまで広範に組み込まれている。コアの実装が数百KBに収まる軽さと、Cとの埋め込みの容易さが世界中で採用される最大の理由となっている。
この記事の目次
- ブラジルの輸入規制が生んだ独自言語
- 数百KBで完結するミニマルな処理系
- World of WarcraftとRobloxが広めた知名度
- LuaJITとパフォーマンスの追求
- まとめ
ブラジルの輸入規制が生んだ独自言語

Luaが誕生した背景にはブラジル独自の事情がある。1977年から1992年まで続いた情報技術製品の輸入規制により、外国製ソフトウェアの入手が困難だったため、PUC-RioのTeCGraf研究グループは石油会社Petrobrasの業務支援ツールを自前で開発する必要に迫られた。彼らはDELとSOLという二つの小さな言語を作り、その経験を統合して1993年にLuaを生み出した。
プロジェクトを率いたのはRoberto Ierusalimschy、Luiz Henrique de Figueiredo、Waldemar Celesの3名で、現在もLuaの設計と保守を担う中心メンバーである。Luaという名前はポルトガル語で「月」を意味し、先行言語のSOL(太陽)に由来するエピソードはコミュニティで広く知られている。最初のリリースから30年以上経過しても、コア開発者がほぼ変わらないまま進化を続けている点もこの言語の特徴である。
数百KBで完結するミニマルな処理系

Luaの設計上もっとも重視されているのは、ホストアプリケーションへの埋め込みやすさである。標準処理系のソースコードはおよそ3万行のANSI Cで書かれており、コンパイル後のバイナリは数百KB程度に収まる。組み込み機器やゲームエンジンに同梱しても容量負担がほとんど発生しない点が、産業界での採用を後押ししてきた。
言語仕様も意図的に小さく保たれており、データ型はnil、boolean、number、string、function、userdata、thread、tableの8種類のみ。tableが配列、辞書、オブジェクトの役割を兼ねる柔軟な設計で、メタテーブルと呼ばれる仕組みを通じて演算子オーバーロードや継承的な挙動を後付けできる。コア機能を絞り込み、表現力は利用側のメタプログラミングで補うという思想が一貫している。
World of WarcraftとRobloxが広めた知名度

Luaの名前が一般のゲーマーにも知られるようになった大きなきっかけは、2004年にBlizzard Entertainmentがリリースしたオンラインゲーム『World of Warcraft』である。プレイヤーが独自のUIアドオンをLuaで記述できる設計が採用され、数千ものアドオンが世界中で開発された。HUDの再配置やボス戦支援ツールなど、ゲーム体験そのものを拡張する文化を育てた点で意義深い。
2006年にDavid BaszuckiとErik Cassel が立ち上げたRobloxは、子供でもLuaでゲームを作れるプラットフォームとして急成長し、コロナ禍を経て2021年には時価総額400億ドル規模に達した。同社の独自方言であるLuauは2021年にオープンソース化され、型注釈を導入するなど現代的な進化も加えている。Adobe LightroomやWiresharkの解析プラグインなど、ゲーム以外の領域でも組み込み用途は広がっている。
LuaJITとパフォーマンスの追求

Luaの実行速度を飛躍的に高めたのが、Mike Pall氏が2005年に公開したLuaJITというトレース型JITコンパイラ実装である。ベンチマークによっては標準処理系の10倍以上の性能を示し、動的型付け言語としては群を抜く速度を誇る。NGINX用モジュールのOpenRestyはこのLuaJITを活用し、CloudflareなどのCDNインフラで毎秒数百万リクエストを処理している。
ただしLuaJITは長らくLua 5.1互換にとどまり、最新の標準処理系Lua 5.4とは仕様差が生じている。整数型の導入、to-be-closed変数、世代別ガベージコレクションなど、5.4で取り入れられた新機能を活用したい場合は標準処理系を、極限性能が必要な場合はLuaJITを選ぶといった使い分けがコミュニティで定着している。30年の歴史の中でフォーク的な実装が共存している点も、組み込み志向の小言語ならではの風景である。
まとめ
Luaは1993年にPUC-Rioで生まれた組み込み特化のスクリプト言語であり、数百KBの軽さとtableを軸にしたミニマルな設計で多様な分野に浸透した。World of WarcraftやRoblox、OpenRestyといった成功事例を通じて、ホスト言語に寄り添う「縁の下の力持ち」としての地位を確立している。
※本記事はIT用語辞典の手書きドラフトです。公開前に最新情報・出典を確認のうえ加筆修正してください。

コメント