Luaは良い言語です。
言語としての概念が少ないのでルールが少なく、
とはいえできることは盛りだくさん!シンプルがパワーを持っていると感じる良い言語です。柔軟すぎて書く人の趣味や考え方によってかなりコードは違ったものになってしまいますが。そのへんはPythonとは対照的です。
C++ばかり触っていた自分にとってLuaは衝撃の嵐でした。
- データ構造はテーブルのみ!
- クラスもテーブル!←テーブルに変数と関数を入れてクラスらしきものを作る
- 後からメソッドを追加できる?←テーブルだから普通に追加する
- コルーチンいいね!
- 関数が普通に代入できる?←ポインタじゃなく、アクセスしている変数も引っさげて
- 結構速い!
- ガベージコレクション便利
よく、Luaでプロトタイプを作成して、あとからC++にすればいいとか言いますが、100%の置き換えは現実的じゃありません。
例えば、Luaでコルーチンを使ったらC++で再現するのはとても面倒です。
GCもC++でやるときは外部のライブラリを組み込む必要があるでしょう。
Luaでプロトタイプを作ったのであれば、そのままリリースを目指すしかないですね。
パフォーマンスが問題になったならば、計算の重い部分をC++の関数に切り出すのが正攻法です。
最後に本を紹介します。買っていただけると、私に小銭が入ります。
Luaを活かすためのアプリの構造っていうものがあります。
その解説と、実際にLuaを組み込むまでの手順を詳しく書いてあります。
この本の通りやれば、Luaが組み込まれるでしょう。
最後の砦です。総本山です。良い頭とこの本があれば他は不要です。
それぞれ、この本を噛み砕いたものです。
どの言語でも、言語設計者の本は良いです。
なぜこういう言語にしたのか?
という動機を知っている人が書いているので、知識が入ってきます。
本人以外は、その動機を想像するしか無いですから。
Luaを組み込むのではなく、使うための情報がまとまっています。
すでにLuaが組み込まれている何かを使うときにいい本です。
逆に言うと、これから組み込もうというプログラマにとっては情報が足りません。
以上、Lua言語の紹介でした。
ピンバック: 勉強会で「Luaって良いよね」と語る準備を過去の自分の記事と他人のスライドでやる。 | ヤマヤタケシのブログ
ピンバック: Macでtolua++をビルドする | ヤマヤタケシのブログ