当我看到Lua,我唯一读过是"大中嵌入","快"、"轻型"而且往往比其他任何东西:"魔兽世界的"或"哇"。

为什么限于嵌入整个事情变成另一个应用程序?为什么不写通用脚本的喜欢你做的蟒蛇或Perl?

Lua似乎是做的很好在等方面的速度和存储使用情况(最快脚本语言,据我所知)所以为什么是我从来没有看到Lua被用作一个"桌面脚本语言"自动执行任务?例如:

  • 重新命名一堆文件
  • 下载了一些文件可从网页
  • Webscraping

是它缺乏标准图书馆?

有帮助吗?

解决方案

只是因为它是"推销"(在一些一般意义上的)作为一个特殊目的的语言,用于嵌入式脚本的发动机,并不意味着它是有限的。事实上,哇很可能只是以有选择的Python作为他们的嵌入式脚本语言。

其他提示

Lua是一个很酷的语言,光量和速度极快!

但要点是: 是性能很重要,对于那些 任务你提到的?

  • 重新命名一堆文件
  • 下载了一些文件可从网页
  • Webscraping

你写这些程序一旦,并运行一次,太可能。为什么你关心的业绩这么多对于一个运行一次项目?

例如:

  1. 费用3个小时写的C/C++的程序,来处理数据后,该程序将需要1小时运行。
  2. 费用30分钟写Python程序来处理数据后,该程序将需要10个小时运行。

如果你选择的第一个,你节省时间,运行程序, 但你花费你的时间来开发该程序。

另一方面,如果选择第二个,你浪费时间跑 该程序,但是你可以做其他的事情当程序 运行。 怎么玩魔兽世界,杀死怪兽 用你的巫师?吃我D.T O.!:P

这就是它!虽然Lua不是那么困难写的,一切有关卢的设计是有效的。而且更重要的是,有一点模块Lua,但有这么多模块蟒蛇。你不想要口a C library for Lua只是对于一个运行的一次程序,不是吗?相反,选择Python和使用这些模块的实现你的任务很容易地可能是一个更好的主意。

供参考:实际上,我试图使用Lua做webscraping, 但最后,我意识到我没有照顾到这么多关于语言的性能。 瓶颈的webscraping是 不是在表现的语言.瓶颈是在 网络I/O,HTML分析和处理多项任务。我所要做的 为确保程序的工作,并发现瓶颈。最后,我选择了Python而不是Lua。有这么 很多优秀的蟒蛇模块;我没有理由建立我的 自己。

根据我的经验有关webscraping,我选择了 扭曲的网络I/O和lxml为html分析作为后端 我webscraping程序。我已经写了一篇文章介绍了这一技术。

最好的选择,抓住数据网站:蟒蛇+扭曲+lxml

希望这是有帮助的。

Lua具有较少的库比蟒蛇。但一定要看看 LuaForge.它有很多有趣的库,喜欢 LuaCURL, wxLuagetopt.

然后,访问 LuaRocks, ,包管理系统Lua。有了它,你可以搜索,并安装最为成熟的Lua模块的依赖关系。这感觉就像 能力.

该网站 lua-users.org 有很多有趣的资源,如教程或 Lua Wiki.

我喜欢Lua不是它的速度,这是它的最小的核心语言、灵活性和可延伸性。

这就是说,我可能会使用蟒蛇的任务mentionned,因为较大的社区做这样的事情在蟒蛇。

这可能是因为Lua的目的是作为一个脚本和扩展的语言。在 官方网站 它描述为一个强大的、快速、重量轻、嵌入脚本语言。没有什么阻止你写作的一般目的的程序,它(如果我记忆正确的船只与一名翻译和编译器),但语言设计师们打算将主要用作嵌入式语言(因此是重量轻以及所有)

这是一个社会学的问题,不是一个编程问题。

我用Lua用于一般目脚本几乎完全。但我不得不写了几百行的代码,以便Lua会更好地发挥与外壳。这包括这种技巧

  • 引用一串所以它被看作是一个字的外壳
  • 写一个功能捕捉出的命令作为在壳$(命令)
  • 写一个功能爬文件系统的使用Lua posix图书馆和展开外壳匹配替换模式

(对于那些可能感兴趣的,我已经离开的在我的代码 卢阿拉盒, ,其中还包含一些其他的东西。的有趣的东西大概是在 osutilos.quote, os.runf, os.capture, 也许 os.execve.这匹配替换是在 posixutil.lua.它们都使用路易斯*恩里克*德Figuereido的 Lua Posix库.)

对我来说,额外的努力是值得的,因为我可以处理简单的语法和优质数据的结构。给其他人,一个更直接的连接,与外壳可能优先。

绝对缺乏标准图书馆。它还鲜为人知的比蟒蛇,Perl或红宝石。

有一个近期推动以创建一个电池,包括安装用于Lua。结果,可以发现在 Lua for Windows 项目LuaForge.这包括口译员,并收集了大量的额外的模块允许有用脚本和应用程序的书面和使用。

我知道,各种以Linux发行版是包括Lua和一些模块,现在,更多的来。

还有几个拟议的模块图书馆正在讨论的邮件列表,但社会尚未解决的一个,作为"官方"的机制。

我用Lua既作为一个脚本语言以及作为"主要"循环的我的典型应用程序,支持由一个或多个Dll含有代码,是更好的实施C,或包装的现有图书馆或API职能所需的特定项目。使用GUI的工具包,诸如 宾州印第安纳大学wxLua (a Lua结合为wxWindows),Lua使编写的中小型GUI应用程序相当愉快。

我认为回答关于它是一个"营销"的事情可能是正确的,随着缺乏大量的图书馆选择。我想指出的另一种情况下这一点:红宝石。红宝石是一种一般目脚本语言。问题是,由于红宝石在轨道上已经上升到可以这么受欢迎的,它是越来越难以找到的东西,是不相关的轨道。我怕Lua将遭受这个的,是受欢迎,因为一些重大的事情使用它,但从来没有能够打破这一耻辱。

缺乏标准图书馆。期。即使清单的所有文件目录中的需要 一个非标准模块.

有很好的理由,(保持严格的ANSI便携性,而不需要POSIX),但结果是,对于一般程序,我喜欢蟒蛇。

卢用 之前, 一TeX延伸,作为一个嵌入式语言,并已获得了迅速普及之间的TeX开发,因为这一点。它是用作一个脚本语言,对于一些公用事业在TeX活分配,将它仅仅因为现在有一个 luatex 二进制的,适用于所有的平台,也可以作为一个Lua解释(有一些重要的模块附加slnunicode,luafilesystem,等等。) 这是非常重要的窗的安装,这依赖于额外的脚本的Unix工具前(ActivePerl,等等。) 下文宏语言使用Lua脚本了广泛的今天。

这是无可否认的一个非常特殊的领域:-),但完全无关的游戏!

为了Lua须易于嵌入它已经有几个依赖性和很小。这使它不适合作为一般目脚本语言。因为使用它作为一般目脚本语言,将需要大量的标准库。但是,如果Lua有很多标准库,这将是难以嵌入(由于依赖关系和存储排放。)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top