据我所知,Lua基本上是一种普通的脚本语言,与PHP,Python或Ruby没有太大区别,much more famous。
但另一方面,有许多项目(例如the awesome window manager)需要Lua中的配置和/或插件。所以我认为应该有一些理由让一般的未知语言成为众多才华横溢的开发者最喜欢的选择。你能说出一些名字吗?
使用/学习Lua会有什么好处?
答案 0 :(得分:7)
Lua出生的主要目标是编写脚本并扩展用C语言编写的托管应用程序.Whilt已经成为强大的独立语言,它保留了作为主要功能轻松嵌入应用程序的功能
据我了解它的历史,PHP需要更简单的方法来编写Web应用程序。虽然它可以独立于Web服务器使用,但这种使用并不常见。
Python和Ruby(如Perl)以具有特定设计目标的独立语言开始。虽然可以在更大的应用程序中嵌入python解释器,但这不是早期对其用户社区很重要的功能。今天的Python比Perl更容易被嵌入到应用程序中,但它们都是作为构建从小脚本到全功能GUI的应用程序的框架。
Ruby(也像Perl一样)在Web应用程序域中实现了很多可见性,Rails框架可能是原因。虽然我真的不能从个人经验中说出很多关于Ruby的东西,但它经常在Tiobe Index中占据相当高的位置。我(有限)的理解是,在更大的应用程序中嵌入Ruby解释器并不是早期的设计目标,但是可以做到并且显然甚至可以被更新的构建支持。刚才关于嵌入Ruby的问题的快速扫描似乎产生了一个共识,即“不要那样做,而是使用Lua”而“平衡”“有可能,去吧”。
Perl当然是最着名的独立脚本语言,早于现代网络。随着CGI的开发,Perl在那里找到了一个家,这要归功于它被解释为在Perl中编写CGI脚本以便在商业托管的Web服务器上运行,而实际上有限(或没有)命令行访问。虽然现在可以(现在甚至相当容易)使用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。 )
要考虑的另一个因素可能是许可证。像许多成功的脚本语言一样,Lua是开源的。但是,在licensed的简单明了MIT license明确允许商业用途。虽然根据GPL(或更可能是LGPL)发布的产品可以进入商业环境,但它给律师带来了更多麻烦。一个简单的许可证,例如适用于Lua的许可证,可以让您的法律部门轻松达成一致。因此,Lua用于某些significant commercial products,这些产品的开发团队在Lua语言社区中可见。
编辑:我修改了对Ruby的讨论,感谢评论指出Rails框架之前的更丰富的历史。这为Perl提供了自己的段落并用具体的测量来吹嘘Lua的大小提供了借口。是的,我确实喜欢Lua。很多。
答案 1 :(得分:5)
Lua相对轻量级,旨在轻松嵌入(并与应用程序交互)应用程序。这通常使它成为比较重的语言更好的选择,这些语言旨在自己运行并创建自己的整个小世界。