Luaについて
Luaとは何か?
Luaは強力で効率的、軽量で組み込み可能なスクリプト言語です。手続き型プログラミング、オブジェクト指向プログラミング、関数型プログラミング、データ駆動型プログラミング、およびデータ記述に対応しています。
Luaは、連想配列に基づく単純な手続き型構文と強力なデータ記述構造を組み合わせ、拡張可能なセマンティクスを備えています。Luaは動的型付けであり、レジスタベースの仮想マシンでバイトコードを解釈しながら実行され、インクリメンタルガーベジコレクションによる自動メモリ管理を行うため、設定、スクリプティング、迅速なプロトタイピングに理想的です。
Luaの起源は?
Luaは、ブラジルのリオデジャネイロにあるポンティフィカル・カトリック大学のPUC-Rioのチームによって設計、実装、およびメンテナンスされています。Luaは、かつてPUC-Rioのコンピュータグラフィックス技術グループであったTecgrafで生まれ育ちました。現在、LuaはPUC-Rioのコンピュータサイエンス学科のLabLua、つまり研究室に所属しています。
名前の由来は?
"Lua"(ルーアと発音)はポルトガル語で「月」を意味します。したがって、それは頭文字をとった略語でも省略形でもなく、名詞です。より具体的には、「Lua」は名前であり、地球の月の名前であり、言語の名前でもあります。ほとんどの名前と同様に、最初の文字は大文字で、「Lua」と書くべきです。「LUA」と書くと、醜く混乱するだけでなく、異なる人々にとって異なる意味を持つ頭文字となってしまうので、このように書かないでください。ですので、正しく「Lua」と書いてください!
コミュニティへの参加
Luaコミュニティの集まりはいくつかあり、そこでは学ぶことや他の人を助け、他の方法で貢献することができます。焦点の一つは、非常に活動的でフレンドリーなメーリングリストです。
Luaコミュニティの一部に直接会うことができる機会の一つに、Luaワークショップに参加することがあります。
Luaのサポート
Luaプロジェクトをサポートするには、Lua.orgから出版された書籍を購入したり、寄付をすることができます。
また、ZazzleでLuaの商品を購入することで、Luaについての情報を広める手助けもできます。
Lua.orgはAmazonのアソシエイトであり、このサイトを通じて行われた資格のある購入に対して手数料を受け取ります。
なぜLuaを選ぶのか?
Luaは実証済みで堅牢な言語です
Luaは多くの産業アプリケーションで使用されています(例:アドビのPhotoshop Lightroom
)、特に組み込みシステム(例:ブラジルでのデジタルTVのGinga
ミドルウェア)やゲーム(例:World of Warcraft
やAngry Birds
)に重点を置いています。Luaは現在、ゲームで最も多用されているスクリプト言語です。Luaにはしっかりとしたリファレンスマニュアルがあり、これについての複数の書籍があります。Luaのいくつかのバージョンは、1993年の創造以来、実際のアプリケーションでリリースされて使用されています。Luaは2007年の第3回ACM SIGPLANプログラミング言語の歴史カンファレンス(HOPL III)にも登場しました。Luaは2011年にゲームデベロッパーマガジンからフロントラインアワードを受賞しました。
Luaは高速です
Luaは性能に関して評判が高いです。他のスクリプト言語が「Luaと同じくらい高速」と称することは、一つの目標です。いくつかのベンチマークでは、解釈型スクリプト言語の中でLuaが最も高速であることを示しています。Luaは微調整されたベンチマークプログラムだけでなく、実際の使用においても高速です。大規模なアプリケーションのかなりの部分がLuaで書かれています。
さらに高速なパフォーマンスが必要な場合は、ジャストインタイムコンパイラを使用したLuaの独立した実装であるLuaJIT
を試してみてください。
Luaは移植性があります
Luaは小さなパッケージで配布され、標準的なCコンパイラがある全てのプラットフォームでそのままビルドできます。Luaは、UnixやWindowsのすべてのバリエーション、モバイルデバイス(Android、iOS、BREW、Symbian、Windows Phoneが稼働)、組み込みマイクロプロセッサ(ARM
やRabbit
など、Lego MindStorms
のようなアプリケーション用)、IBMメインフレームなどで動作します。
制約のあるデバイスにおいてもLuaが良い選択肢である理由については、Mike Pallによるこの要約を読んでください。また、Timm Müllerによって作成されたポスターも参照してください。
Luaは組み込み可能です
Luaはフットプリントが小さく高速な言語エンジンであり、アプリケーションに容易に組み込むことができます。Luaは、他の言語で書かれたコードとの強力な統合を可能にする、シンプルでよく文書化されたAPIを持っています。他の言語で書かれたライブラリでLuaを拡張するのも簡単です。また、他の言語で書かれたプログラムをLuaで拡張することも簡単です。Luaは、CやC++だけでなく、Java、C#、Smalltalk、Fortran、Ada、Erlang、さらにはPerlやRubyなどの他のスクリプト言語で書かれたプログラムを拡張するために使用されています。
Luaは強力です(しかしシンプルです)
Luaの設計における基本的な概念は、言語内で直接多くの機能を提供するのではなく、機能を実装するためのメタメカニズムを提供することです。例えば、Luaは純粋なオブジェクト指向言語ではありませんが、クラスと継承を実装するためのメタメカニズムを提供しています。Luaのメタメカニズムは概念の経済性をもたらし、言語を小さく保ちながら、セマンティクスを非伝統的な方法で拡張することを可能にします。
Luaは小さい
アプリケーションにLuaを追加しても、そのセキュリティにも貢献することで、膨張させません。Lua 5.4.6のtarballは、ソースコードとドキュメントを含み、圧縮された状態で355K、解凍された状態で1.4Mです。ソースには約30000行のCが含まれています。64ビットLinuxでは、すべての標準LuaライブラリでビルドされたLuaインタープリタは282K、Luaライブラリは470Kです。
Luaは無料です
Luaは非常に寛大なライセンス(よく知られているMITライセンス)の下で配布される無料のオープンソースソフトウェアです。商用目的を含むあらゆる目的で、完全に無料で使用することができます。ダウンロードして使用するだけです。