アスキーメディアワークス鈴木様より献本御礼。
Programming in Lua
プログラミング言語Lua公式解説書
Roberto Ierusalimschy / 新丈径訳
[原著:Programming in Lua
Lua 5.1 Reference Manual + ]
待望のLuaバイブルがついに邦訳。
以下に該当する方は必読。
- Luaを本格的に使(う|いたい)
- プログラミング言語を設計(する|したい)
本書「Programming in Lua:プログラミング言語Lua公式解説書」は、Luaの生みの親自身によるプログラミング言語Luaの解説書+Lua 5.1完全リファレンス。Luaに関する書籍としてはすでに「入門Luaプログラミング」が存在し、入門とはいえLuaが小さな言語ということもあってそれでもかなり事足りるのではあるが、「Luaってどんな」はそれでよくとも、「Luaとは何か」を完全に知りたいともなると、さすがに同書では物足りない。
目次
|
|
本書は500ページ弱と、プログラミング言語のバイブルとしてはかなりコンパクトなのだが、驚くべきなのは、本書が実は「合冊」であること。"Programming in Lua"の全訳のみならず、付録としてLua 5.1 Reference Manualも全訳して収容してある。本書はその意味で、現時点で地球に存在する最も完璧なLua本ということになるのだ。
しかし、最も驚くべきなのは、本書が単著であることかも知れない。言語の父自身が著者名として登場するバイブルは、たいてい共著となっている。K&Rにしてもそうだし、ラクダ本もそうだ。モダンLL言語というのは、言語そのものもバイブルも一人で書き上げるにはあまりに大きいのだ。
小さくともモダンLL言語に要求される「機能」をフルセットで備えた言語であることは、「入門Luaプログラミング」でも解説したとおりであるが、それを言語の父自ら最初から最後まで語ったという意味で本書は実に貴重ではないか。
しかしこうしてフルセットのバイブルを読んでみると、賞賛と同時に不満も出てくる。本書に対してではない。Luaという言語に対してだ。なぜ小さな言語なのに、簡潔な語彙を選ばなかったのだろう。function
は他にもあるのでまだ目をつぶる、setmetatable
だのloadstring
というのはやけに長い。正規表現相当のパターンも、エスケープが\
ではなく%
と独自なのはなぜだろう。{}
がテーブル定義のみなのでブロックを閉じるのにend
しかないのは、rubyのdo - end
が{}
で置き換えられるのにdef
ではそうは行かないのよりもむしろすっきり割り切っていて好きだが、しかしtable.sort(t, function(a, b) return b - a end)
のように、括弧のなかにend
があるのはかなり違和感あるなあ、などなど。
しかしそれは、Luaと私のつきあいが長くなってきた証拠でもある。ある程度付き合いがないと不満というものは出てこないものなのだから。「オレならこうする」のようなことをぶつくさ良いながら読むとずいぶんと楽しい。
Luaは、モダンLL言語の最小公分母。LuaというMECEな言語のMECEなバイブルは、他の言語エンスーも得るものはあまりに大きい。プログラミングの初心者から中級者に移るあたりでぜひとも味わっておきたい。
Dan the Polyglot
このブログにコメントするにはログインが必要です。
さんログアウト
この記事には許可ユーザしかコメントができません。