6

私が見る限り、Lua は基本的には通常のスクリプト言語であり、はるかに有名なPHP や Python、Ruby と大差ありません。

しかしその一方で、Lua で構成やプラグインを必要とするプロジェクト (素晴らしいウィンドウ マネージャーなど) がたくさんあります。したがって、多くの有能な開発者が一般に知られていない言語を好んで選択するのには理由があるはずだと思います。いくつか名前を挙げてもらえますか?

Lua を使用/学習することで得られるものは何ですか?

4

2 に答える 2

7

Lua は、C で記述されたホスティング アプリケーションのスクリプティングと拡張を主な目的として生まれました。Lua は強力な独立型言語になりましたが、主要な機能として、アプリケーションに簡単に埋め込むことができます。

私がその歴史を理解しているように、PHP は、Web アプリケーションを作成するためのより簡単な方法を必要として生まれました。Web サーバーとは独立して使用できますが、その使用はそれほど一般的ではありません。

Python と Ruby (Perl など) は、特定の設計目標を持つ独立した言語として誕生しました。大規模なアプリケーションに Python インタープリターを埋め込むことは可能ですが、それは初期のユーザー コミュニティにとって重要な機能ではありませんでした。今日、Python は Perl よりもはるかに多くのアプリケーションに組み込まれていますが、どちらも小さなスクリプトからフル機能の GUI に至るまでのアプリケーションを構築するためのフレームワークとして輝いています。

Ruby (Perl と同様) は、Rails フレームワークが原因である可能性が高く、Web アプリケーション ドメインで多くの可視性を達成しました。個人的な経験から Ruby について多くを語ることはできませんが、Ruby は定期的にTiobe Indexでかなり高い位置を占めています。私の (限られた) 理解では、Ruby インタープリターをより大きなアプリケーションに埋め込むことは、初期の設計目標ではありませんでしたが、実行可能であり、最近のビルドではサポートされているようです。Ruby の組み込みに関する SO での質問をざっと調べたところ、「それはしないで、代わりに Lua を使用してください」と「それは可能です。それを試してみてください」というバランスのとれたコンセンサスが得られたようです。

Perl は、最新の Web より前のスタンドアロンのスクリプト言語として最もよく知られています。CGI が開発されていたとき、Perl は、コマンド ライン アクセスが制限された (またはまったくない) 商用ホストの Web サーバーで実行するための Perl での CGI スクリプトの記述を実際に実用的にするインタープリターのおかげで、そこに居場所を見つけました。C で記述されたライブラリ コードを使用して Perl を拡張することは可能ですが (最近ではかなり簡単です)、アプリケーションに Perl インタープリターを埋め込むことは決して簡単ではありませんでした。Perl コミュニティの辺境で長年過ごしてきた私の感覚では、組み込みは決して優先事項ではないと常に感じていました。

Lua には、強力な機能と単純な構文がバランスよく備わっています。多くの場合、プログラマーでなくても、Lua スクリプトを読んだり変更したりするのは非常に簡単です。これを構成言語として使用することは、多くの場合、完全にスクリプト可能なアプリケーションへの第一歩です。Lua を使用して起動時に構成ファイルを解析および実行し、プログラム設定を取得するのは簡単です。その機能が利用可能になると、Lua コアを他のタスクに使用することが容易になります (「ただそこに座っていた」)。自然な流れとして、C コードの薄板、C のコア「ハード」関数、C の UI フレームワーク、Lua でスクリプト化された大部分のユーザー エクスペリエンスからアプリケーションを構築することは珍しくありません。一例として、Adobe Lightroomはそのように構築されています。

リファレンス マニュアルとバイナリ ディストリビューションを含む Lua ソース キット全体がメガバイト程度のストレージしか必要としないことは問題ありません。(現在、私の Windows ボックスでは、Lua とその DLL の合計は 200KB をわずかに超えていますが、Perl とその DLL の重量は約 1.7MB です。ほとんどのアプリケーションでは、Lua インタープリターを追加すると、追加の実行可能サイズで約 200KB かかることを意味します。 )

考慮すべきもう 1 つの要因は、おそらくライセンスです。多くの成功したスクリプト言語と同様に、Lua はオープン ソースです。ただし、商用利用を明示的に許可するわかりやすいMITライセンスの下でライセンスされています。GPL (または LGPL の可能性が高い) の下でリリースされた製品は、商用環境に入ることができますが、弁護士にとってはより多くの頭痛の種になります。Lua に適用されるような単純なライセンスにより、法務部門の同意を得やすくなります。その結果、Lua はいくつかの重要な商用製品で使用されており、これらの製品の開発者チームは Lua 言語コミュニティで目にすることができました。

編集: Rails フレームワーク以前のより豊かな歴史を指摘するコメントのおかげで、Ruby に関する私の議論を修正しました。これは、Perl に独自の段落を与え、Lua のサイズを具体的な測定値で自慢する言い訳になりました。はい、Luaが好きです。多くの。

于 2013-03-08T23:06:23.577 に答える
5

Lua は比較的軽量で、アプリケーションに簡単に組み込む (および対話する) ように設計されています。これにより、多くの場合、独自に実行して独自の小さな世界を作成するように設計されたより重い言語よりも優れた選択になります。

于 2013-03-08T16:16:58.477 に答える