Lua作为通用脚本语言有未来吗?
正如之前在“Lua作为通用脚本语言?”讨论的那样,Lua当前可能不是最适合桌面环境的脚本语言。
但是你对未来有什么想法?Lua会变得如此流行,以至于很快就会有足够的库来像Python、Ruby或类似的语言一样使用吗?
还是它将仅停留在其WoW专业领域,仅此而已?
原文链接 https://stackoverflow.com/questions/269913
我认为 Lua 有着美好的未来,很多项目因其简单易用而开始采用它。
例如: Awesome WM (窗口管理器)
该项目最近发布了版本 3,完全用 Lua 编写了一套新的配置系统。你可以将配置文件直接写成程序,包括循环、布尔值和数据结构等。 我个人非常喜欢这样的语法和灵活性,认为它有巨大的潜力。
如果 Lua 在未来变得更加流行,我也不会感到惊讶。
Brian G
作为 Shell 语言舒适是和成为一个非常好的通用语言没有关系。
对我来说,我不使用它嵌入到其他应用程序中;我用 Lua 写我的应用程序,任何"额外的"都是一个特殊用途的库,无论是在 Lua 还是 C 中。
此外,"流行"并不是那么重要。在 Lua 用户列表中,定期会有人说"除非 Lua 做到 X,否则它不会流行起来!",而通常的回答要么是:"太好了,那就写吧!",要么就是:"已经讨论过并且被拒绝了。"。
我想回答应该以“取决于您如何使用它...”开始。 如果您正在编写常见的业务应用程序(从数据库获取数据,在网页或窗口中显示数据,将数据保存到数据库),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 的设计没有阻止其通用用途。它只是恰好小型、快速和易于嵌入 ... 所以人们使用它。
我认为Lua的最大特点是,它非常容易扩展。很容易将Lua解释器添加到自己的程序中(例如C,C ++或Obj-C编写的程序),并且只需几行代码,就可以使Lua访问您可以想象到的任何系统资源。例如,Lua没有提供做xxx的功能。写一个并让它对Lua可用。但也可以另一种方式。用您选择的语言(可编译的语言之一)编写自己的Lua扩展,将其编译为本地库,在Lua中加载该库,即可使用该功能。
话虽如此,Lua可能不是作为独立跨平台语言的最佳选择。但是,如果您的应用程序是跨平台的,Lua是为您的应用程序添加脚本支持的绝佳语言(越跨平台越好!)。我认为Lua将会有未来,您可以期望在长期运行中,这种语言会不断地增长受欢迎程度。
我认为Warhammer Online和World of Warcraft在他们的插件语言中使用它。
我认为这很流行!但是我并不擅长它!
Uh?我会说WoW是Lua生态系统中的一个小众,Lua的世界并不围绕WoW运转,有很多应用程序,像Adobe Lightroom(非游戏),使用Lua。
Lua最初是一种脚本语言,在最初的意义上,即被设计成嵌入应用程序以进行脚本编写。但它也被设计为可扩展语言,因此我们会逐渐看到各种库的绑定,用于各种目的。
但你永远不会像Python或Perl那样得到一个拥有“电池”式预装功能的大型官方发行版,因为这不是作者的哲学。
这并不妨碍其他人制作包含许多功能的发行版(尤其是对于像Windows这样的操作系统,因为在该系统上构建软件很困难)。
很多人已经将其用于一般的系统级脚本编写、桌面应用程序等。
Lua 的库越来越多了。
如果您是 Windows 用户,请看看 Lua for Windows。它带有“电池包括”(wxLua, LuaCURL, LuaUnit, getopt, LuaXML, LPeg...)。
非常有用!
现在是2017年,距离这个问题首次被提出已经过去了9年,由于Torch库,lua正在机器学习领域中被广泛使用。
问候来自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现在已经不仅仅是一种扩展语言,它拥有自己的世界。
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
- 如何编写 Lua 模式将字符串(嵌套数组)转换为真正的数组?
- 如何创建一个 lua 脚本以针对特定键为 fluentbit 进行限流
我真的很喜欢它作为嵌入式语言。它很小,非常易于使用和嵌入,大多数情况下它可以直接满足我的需求。它与大多数语言相似,因此从未对我造成问题。我还喜欢它有多么容易重新定义和添加基础函数和关键字到语言中,以适应我的应用程序的任何需求。
我曾在魔兽世界领域使用它,但我发现它也适用于许多不同应用程序的通用脚本语言,包括作为数据库触发器。我喜欢 Ruby、Python 和其他更全面的脚本语言,但它们远不如嵌入小型应用程序中方便,以给用户更多定制环境的选择。