Lua作为通用脚本语言有未来吗?

正如之前在“Lua作为通用脚本语言?”讨论的那样,Lua当前可能不是最适合桌面环境的脚本语言。

但是你对未来有什么想法?Lua会变得如此流行,以至于很快就会有足够的库来像Python、Ruby或类似的语言一样使用吗?

还是它将仅停留在其WoW专业领域,仅此而已?

原文链接 https://stackoverflow.com/questions/269913

点赞
stackoverflow用户34218
stackoverflow用户34218

我真的很喜欢它作为嵌入式语言。它很小,非常易于使用和嵌入,大多数情况下它可以直接满足我的需求。它与大多数语言相似,因此从未对我造成问题。我还喜欢它有多么容易重新定义和添加基础函数和关键字到语言中,以适应我的应用程序的任何需求。

我曾在魔兽世界领域使用它,但我发现它也适用于许多不同应用程序的通用脚本语言,包括作为数据库触发器。我喜欢 Ruby、Python 和其他更全面的脚本语言,但它们远不如嵌入小型应用程序中方便,以给用户更多定制环境的选择。

2008-11-06 19:20:30
stackoverflow用户3415
stackoverflow用户3415

我认为 Lua 有着美好的未来,很多项目因其简单易用而开始采用它。

例如: Awesome WM (窗口管理器)

该项目最近发布了版本 3,完全用 Lua 编写了一套新的配置系统。你可以将配置文件直接写成程序,包括循环、布尔值和数据结构等。 我个人非常喜欢这样的语法和灵活性,认为它有巨大的潜力。

如果 Lua 在未来变得更加流行,我也不会感到惊讶。

Brian G

2008-11-06 19:29:17
stackoverflow用户11649
stackoverflow用户11649

作为 Shell 语言舒适是和成为一个非常好的通用语言没有关系。

对我来说,我不使用它嵌入到其他应用程序中;我用 Lua 写我的应用程序,任何"额外的"都是一个特殊用途的库,无论是在 Lua 还是 C 中。

此外,"流行"并不是那么重要。在 Lua 用户列表中,定期会有人说"除非 Lua 做到 X,否则它不会流行起来!",而通常的回答要么是:"太好了,那就写吧!",要么就是:"已经讨论过并且被拒绝了。"。

2008-11-06 19:55:33
stackoverflow用户7625
stackoverflow用户7625

我想回答应该以“取决于您如何使用它...”开始。 如果您正在编写常见的业务应用程序(从数据库获取数据,在网页或窗口中显示数据,将数据保存到数据库),Lua已经具备你所需的。

[Kepler Project](http://www.keplerproject.org/) 包含 web 开发中需要的好东西。查看他们的 [modules](http://www.keplerproject.org/en/Modules)以了解一些可用的库 - 有网络、MVC、DBMS 访问、XML、zip、WSAPI、docs...。

例如 web 应用程序,请查看 [Sputnik](http://sputnik.freewisdom.org/)。

对于桌面 UI,有 [wxLua](http://wxlua.sourceforge.net/)  - Lua 钩子,面向 [wxWidgets](http://www.wxwidgets.org/)。

ORM 显然缺失了,但这并未阻止人们在 ORM 可用之前使用其他语言进行开发。

如果您正在寻找专业库 - 科学、多媒体、安全 - 请在检查 [LuaForge](http://luaforge.net/)之前不要将 Lua 排除在外。

归根结底,Lua 的设计没有阻止其通用用途。它只是恰好小型、快速和易于嵌入 ... 所以人们使用它。

2008-11-06 20:16:19
stackoverflow用户15809
stackoverflow用户15809

我认为Lua的最大特点是,它非常容易扩展。很容易将Lua解释器添加到自己的程序中(例如C,C ++或Obj-C编写的程序),并且只需几行代码,就可以使Lua访问您可以想象到的任何系统资源。例如,Lua没有提供做xxx的功能。写一个并让它对Lua可用。但也可以另一种方式。用您选择的语言(可编译的语言之一)编写自己的Lua扩展,将其编译为本地库,在Lua中加载该库,即可使用该功能。

话虽如此,Lua可能不是作为独立跨平台语言的最佳选择。但是,如果您的应用程序是跨平台的,Lua是为您的应用程序添加脚本支持的绝佳语言(越跨平台越好!)。我认为Lua将会有未来,您可以期望在长期运行中,这种语言会不断地增长受欢迎程度。

2008-11-06 20:21:51
stackoverflow用户33910
stackoverflow用户33910

我认为Warhammer OnlineWorld of Warcraft在他们的插件语言中使用它。

我认为这很流行!但是我并不擅长它!

2008-11-06 20:22:29
stackoverflow用户15459
stackoverflow用户15459

Uh?我会说WoW是Lua生态系统中的一个小众,Lua的世界并不围绕WoW运转,有很多应用程序,像Adobe Lightroom(非游戏),使用Lua。

Lua最初是一种脚本语言,在最初的意义上,即被设计成嵌入应用程序以进行脚本编写。但它也被设计为可扩展语言,因此我们会逐渐看到各种库的绑定,用于各种目的。

但你永远不会像Python或Perl那样得到一个拥有“电池”式预装功能的大型官方发行版,因为这不是作者的哲学。

这并不妨碍其他人制作包含许多功能的发行版(尤其是对于像Windows这样的操作系统,因为在该系统上构建软件很困难)。

很多人已经将其用于一般的系统级脚本编写、桌面应用程序等。

2008-11-06 22:39:00
stackoverflow用户2797
stackoverflow用户2797

Lua 的库越来越多了。

如果您是 Windows 用户,请看看 Lua for Windows。它带有“电池包括”(wxLua, LuaCURL, LuaUnit, getopt, LuaXML, LPeg...)。

非常有用!

2008-12-01 21:19:54
stackoverflow用户538192
stackoverflow用户538192
现在是2017年,距离这个问题首次被提出已经过去了9年,由于Torch库,lua正在机器学习领域中被广泛使用。 
2017-07-09 01:13:57
stackoverflow用户919632
stackoverflow用户919632

问候来自2022年。

Lua已经成为一种通用编程语言。如今,您甚至可以使用OpenResty来服务页面、扩展游戏、读取数据库或者创建脚本替代shellscript。

Lua有很多库“模块”,有许多方法实现所需功能,而Lua 5.4甚至更快。

Lua的“可扩展和广泛的”特性让人们习惯于认为它只能作为插件或扩展使用。例如,在Linux中,您可以使用lua-any对文件进行shebang,使其可执行,并像任何系统脚本一样运行。或者您可以像Python或virtualenv一样使用Lupe创建一个应用程序文件夹。Lua 5.3也获得了令人瞩目的性能提升。

此外,还有许多好的工具,如IUP,可以在Mac、BSD、Linux和Windows中使用Lua创建本机窗口,以及像Terra这样的辅助环境,使您可以使用Lua及其相应的Terra写入已编译的程序。Lua现在已经不仅仅是一种扩展语言,它拥有自己的世界。

2022-11-19 14:53:22