はじめに Luaは組み込み用途の小規模な言語であるにも関わらず、オブジェクト指向プログラミングが可能です。なにそれ怖い。 Luaはインスタンスベース*1のオブジェクト指向プログラミングをサポートしています。 もっと具体的に言うならば、オブジェクトの雛形としてクラス設計を重視する(堅苦しい)クラスベースのオブジェクト指向ではなく、 元となるインスタンス(プロトタイプ)をベースに、自由にインスタンス変数・メソッドを追加しつつ柔軟に新しいオブジェクトを作成できることが特徴です。 インスタンスベース・オブジェクト指向の利点は後からの変更に対する許容性の高さです。クラスベースの方は、かっちり決まればとてもきれいなプログラムができますが、後からの変更を考えるとクラスまで遡って変更を加えるのはきついよねというある意味妥協の産物とも言えますw 一昔前はクラスベースを採用しているプログラム言語を多く見かけま