但另一方面,有很多项目(例如the awesome window manager)需要Lua中的配置和/或插件.所以我认为应该有一些理由让一般的未知语言成为众多才华横溢的开发者最喜欢的选择.你能说出一些名字吗?
你从使用/学习Lua中获得了什么?
解决方法
据我了解它的历史,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是开源的.但是,根据简单易懂的MIT license MIT license明确允许商业用途.虽然根据GPL(或更可能是LGPL)发布的产品可以进入商业环境,但它给律师带来了更多麻烦.一个简单的许可证,例如适用于Lua的许可证,可以让您的法律部门轻松达成一致.因此,Lua在significant commercial products中被使用,这些产品的开发团队在Lua语言社区中可见.
编辑:我已经修改了我对Ruby的讨论,这要归功于在Rails框架之前指出其更丰富历史的评论.这为Perl提供了自己的段落并用具体的测量来吹嘘Lua的大小提供了借口.是的,我确实喜欢Lua.很多.