Lua を見ると、私が目にするのは「埋め込みに最適」、「高速」、「軽量」、そして何よりも「World of Warcraft」または略して「WoW」という表現だけです。
なぜ全体を別のアプリケーションに埋め込むことに限定されているのでしょうか? Python や Perl のように汎用スクリプトを記述しないのはなぜでしょうか?
Lua は速度やメモリ使用量などの面で優れているようです (私が知る限り、最速のスクリプト言語)。では、タスクを自動化するための「デスクトップ スクリプト言語」として Lua が使用されているのを見たことがありません。たとえば、次のようになります。
- 多数のファイルの名前を変更する
- ウェブからファイルをダウンロードする
- ウェブスクレイピング
標準ライブラリが不足しているのでしょうか?
ベストアンサー1
Lua はクールな言語で、軽量かつ非常に高速です。
しかし、ポイントは次の通りです。あなたが言及したタスクにとってパフォーマンスはそれほど重要ですか?
- 多数のファイルの名前を変更する
- ウェブからファイルをダウンロードする
- ウェブスクレイピング
おそらく、これらのプログラムは一度作成し、一度だけ実行します。一度だけ実行されるプログラムのパフォーマンスをなぜそれほど気にするのでしょうか?
例えば:
- C/C++ プログラムの作成には 3 時間かかり、データを 1 回処理すると、プログラムの実行には 1 時間かかります。
- 一度データを処理する 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
これが役に立つことを願っています。