とくにあぶなくないRiSKのブログ

危ないRiSKのブログだったかもしれない。本当はRiSKだけどググラビリティとか取得できるIDの都合でsscriskも使ったり。

Programming in Lua プログラミング言語Lua公式解説書

2013/11/14に注文して読んでいたのですが、ブログに書いていませんでした。

Programming in Lua プログラミング言語Lua公式解説書

リファレンスを見ながら Lua のコードを書くことはできたのですが、表面的な知識だけではまどろっこしいコードしか書けず、もっといいコードが書けるはずだと考えて本を購入しました。

やはり本で体系的に学べると非常にいいです。この本は Lua 5.1 に対応しています。

Lua は非常にコンパクトな言語なので、マニュアルおよびリファレンスはこの一冊だけで十分です。

Lua はプリミティブな型は非常に少なく、また言語の提供する機能も非常に少ないです。しかし table 型とプロトタイプベースの言語仕様と metatable (これもただのtableの一つ)で、プログラマがしたいことが大体できます。最小のパーツで最大限の表現力を出せる言語仕様になっています。

一番私が知りたかったのは、クラスのような仕組みを実現する方法とライブラリの作成方法・利用方法でした。この本では当然それらは説明されています。あっさり悩みが解決しました。

また、metatable の仕組みを使えば楽しいことがたくさんできると気づかされました。例えば演算子のオーバーロードのようなこともできます。使いやすいライブラリを設計するのが非常に楽しいです。同じプロトタイプベースの言語であるJavaScriptより表現力はかなり上だと思います。JavaScriptのような理不尽と思えることもないです。

Lua言語の思想(利用目的)のため、組み込みのライブラリが非常に少ないので不便を感じることがあるのが実用上の欠点でしょうか。他の人が公開しているライブラリを使うなどして開発効率をあげる必要があると思います。あるいはこの本を頼りにライブラリを自作ですね。

原著では Third Edition が出ており Lua 5.2 に対応しているようです。

Programming in Lua, Third Edition