私の理解では、Lua はオブジェクトに対してメソッドを実行できる組み込み可能なスクリプト言語です。避けるべき落とし穴は何ですか?Lua をインタプリタとして使用し、Web 環境またはルール エンジンでメソッドを実行することは可能ですか?
4 に答える
Lua スクリプトは、Apache Web サーバーのコア モジュールになりつつあります。
ここには、Lua と C#/.NET コードをバインドするためのツールがいくつかあります。 LuaInterfaceが最新です。
Lua は非常に高速です。スクリプトはバイトコードにプリコンパイルでき、関数は C++ 仮想メソッド呼び出しの近くで実行されます。これが、ゲーム業界でAI、プラグイン、およびゲーム内のその他の高レベルのものをスクリプト化するために使用される理由です.
ただし、C# と Web サーバーを質問タグに入れます。
組み込み Web サーバーを考えていない場合 - Lua はあまり強力ではありません。Lua は ANSI C です。ネイティブ コードにコンパイルされるため、asp.net サーバーや C# コードにはあまり歓迎されません。「中程度の信頼」または「バインディング」または「64 ビット」について考えてください。
十分な落とし穴。すでに C# を使用している場合、Web サーバーでそれを避ける理由はありません。コンパイルされてキャッシュされます。このような巨大なサイトを提供しています。
以前は、中規模の C# 生物医学機器制御アプリケーションでスクリプト言語として Lua を使用していました。ハードウェア担当者に、独自の小さなテスト コードの記述方法を教えるのに最適な方法でした。
IronPython が成熟すると、Python はもう少しフル機能で VS とうまく統合されているため (また、Python を使用する人が増えているため)、すべての Lua を Python に置き換えることにしました。これまでのところ、それはかなりうまくいっています。Lua はすばらしい小さな言語です。現時点では、Lua が Python よりも優れている点について考えられるかどうかはわかりません。
Lua の方が少し速いかもしれませんが、すでにドメインを script-y と non-script-y に分割している場合、おそらくそれは大きな要因ではありません。
私が Lua を気に入っている理由は、特に C/C++ と一緒に使用すると、言語として優れているからです。私にとって、言語を「作る」のはこれら2つの融合です。
落とし穴.. 拡張モジュールの欠如は 1 つとして見ることができます。CPAN はありませんが、LuaRocks があります。問題に対処するのに十分なバインディングがあるかどうかによって異なります。そうでない場合は、作成する必要があるかもしれません。
言語の落とし穴.. Lua wiki には、「落とし穴」と見なすことができるいくつかのお願いがあります。「スイッチ」ステートメントはありません。適切な「cond ? a : b」形式がありません。このような表面的な構文に気を取られたくない場合は、JavaScript が適しているのではないでしょうか?
全体として、それなしでプログラミングするよりも 10 倍から 100 倍生産性を上げる言語です。