汎用スクリプト言語としての Lua? 質問する

汎用スクリプト言語としての Lua? 質問する

Lua を見ると、私が目にするのは「埋め込みに最適」、「高速」、「軽量」、そして何よりも「World of Warcraft」または略して「WoW」という表現だけです。

なぜ全体を別のアプリケーションに埋め込むことに限定されているのでしょうか? Python や Perl のように汎用スクリプトを記述しないのはなぜでしょうか?

Lua は速度やメモリ使用量などの面で優れているようです (私が知る限り、最速のスクリプト言語)。では、タスクを自動化するための「デスクトップ スクリプト言語」として Lua が使用されているのを見たことがありません。たとえば、次のようになります。

  • 多数のファイルの名前を変更する
  • ウェブからファイルをダウンロードする
  • ウェブスクレイピング

標準ライブラリが不足しているのでしょうか?

ベストアンサー1

Lua はクールな言語で、軽量かつ非常に高速です。

しかし、ポイントは次の通りです。あなたが言及したタスクにとってパフォーマンスはそれほど重要ですか?

  • 多数のファイルの名前を変更する
  • ウェブからファイルをダウンロードする
  • ウェブスクレイピング

おそらく、これらのプログラムは一度作成し、一度だけ実行します。一度だけ実行されるプログラムのパフォーマンスをなぜそれほど気にするのでしょうか?

例えば:

  1. C/C++ プログラムの作成には 3 時間かかり、データを 1 回処理すると、プログラムの実行には 1 時間かかります。
  2. 一度データを処理する Python プログラムを書くのに 30 分かかりますが、プログラムの実行には 10 時間かかります。

前者を選択した場合、プログラムを実行する時間は節約できますが、プログラムの開発に時間がかかります。

一方、2 番目を選択した場合は、プログラムを実行するのに時間がかかりますが、プログラムの実行中に他の作業を行うことができます。World of Warcraftをプレイして、ウォーロックでモンスターを倒してみませんか?私のDOTを食べましょう! :P

以上です。Lua を書くのはそれほど難しくありませんが、Lua のすべてが効率的になるように設計されています。さらに、Lua 用のモジュールは少ないですが、Python 用のモジュールは非常に多くあります。一度だけ実行するプログラムのためだけに、C ライブラリを Lua に移植したいとは思いませんよね。代わりに、Python を選択し、それらのモジュールを使用してタスクを簡単に達成する方がよいかもしれません。

参考までに: 実際、私は Lua を使用して Web スクレイピングを実行しようとしましたが、最終的に、言語のパフォーマンスをそれほど気にする必要がないことに気付きました。ウェブスクレイピングのボトルネックは言語のパフォーマンスではないボトルネックとなっているのは、ネットワーク I/O、HTML 解析、マルチタスクです。私がしなければならないのは、プログラムが動作することを確認し、ボトルネックを見つけることだけです。最終的に、私は Lua ではなく Python を選択しました。優れた Python モジュールが多数あるため、自分で構築する理由はありません。

Web スクレイピングに関する私の経験に基づき、Web スクレイピング プログラムのバックエンドとして、ネットワーク I/O には Twisted、HTML 解析には lxml を選択しました。このテクノロジの紹介記事を書きました。

ウェブサイトからデータを取得する最良の選択: Python + Twisted + lxml

これが役に立つことを願っています。

おすすめ記事