为什么 mpv 等很多软件使用 Lua 作为脚本语言,而不是更普及、门槛更低、性能更高(正文附来源)的 JavaScript?如果要给软件加入用户自己编写扩展的功能, Lua 还是 JS 是更好的选择?

2024-02-15 17:06:01 +08:00
drymonfidelia  drymonfidelia
更普及、门槛更低 这个明显不用举例了
性能更高 来源: https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/lua.html
6389 次点击
所在节点   程序员  程序员
44 条回复
rocmax
rocmax
2024-02-15 17:14:49 +08:00
因为 lua 可以方便地调用 c/c++
adoal
adoal
2024-02-15 17:15:00 +08:00
JS 性能更高吗?以前看过一篇论文,对常见的各种语言做了个 benchmarking ,脚本语言无 JIT 组 Lua 是第一,有 JIT 组 LuaJIT 是第一……
ipwx
ipwx
2024-02-15 17:15:22 +08:00
不上 jit 的情况下 lua 很快,js 很慢
westoy
westoy
2024-02-15 17:15:50 +08:00
早期 dhtml 时代 js 并不普及,PHP black book 作者公开在书里建议别用 js.......

js 慢慢普及是 gmail 时代才开始的, 性能上去是 v8 出来后

而且 lua 和 luajit 爆杀........
inroading
inroading
2024-02-15 17:19:11 +08:00
JavaScript 只是在 Web 开发中占主导,Lua 可以很方便嵌入 mpv 这种桌面应用; Lua 更简单
pursuer
pursuer
2024-02-15 17:19:23 +08:00
只提性能,在不带 jit 的情况下,lua 的解释器实现是比 javascript 更快的。不过好像也就 2-3 倍的样子
如果带 jit ,那一般 js 说的是 v8/node ,我看了下电脑里的 node 排除掉 node_module 是 62.6mb ,可能是考虑有点大吧。
dcsuibian
dcsuibian
2024-02-15 17:22:52 +08:00
我觉得性能不是问题,主要是开发语言
比如 Postman 包含一个基于 Node.js 的运行时,自然就会支持 JavaScript 脚本
如果是 C/C++开发的程序,那 Lua 或 Python 脚本就挺正常
drymonfidelia
drymonfidelia
2024-02-15 17:25:49 +08:00
@pursuer 纯 V8 看起来也没多大,我看 Microsoft.ClearScript.V8 才 768KB
drymonfidelia
drymonfidelia
2024-02-15 17:26:57 +08:00
@dcsuibian 如果我要给用 C#开发的跨平台程序加入脚本功能,Lua 还是 JS 更合适?看起来 Jint 相比 Lua 的解析器更成熟 ( V8 那个好像不能跨平台)
icyalala
icyalala
2024-02-15 17:45:18 +08:00
如果从开发者(而不是脚本使用者)的角度来看,Lua 显然是更容易集成的。
纯粹的 C89 ,代码量非常少,编译超简单,想怎么集成就怎么集成,也不用考虑 C++ 和跨平台之类的各种问题。
License 也是 Public Domain 的,没有其他顾虑。

如果把 JS 要用在脚本语言,还是看看 quickjs 吧,至少体积和使用难度比 v8 小多了。
kneo
kneo
2024-02-15 18:21:38 +08:00
开发者友好,安装包体积友好。
lijiangang886
lijiangang886
2024-02-15 18:21:48 +08:00
为什么 lua 在游戏开发中应用普遍? - 韦易笑的回答
https://www.zhihu.com/question/395593519/answer/2738722877

总之就是 quickjs 出来的太晚了
Trim21
Trim21
2024-02-15 18:41:13 +08:00
额,你们都在说什么,mpv 支持 js 脚本啊…
june4
june4
2024-02-15 18:58:00 +08:00
lua 比 js 快?我不能相信
ly841000
ly841000
2024-02-15 19:05:21 +08:00
@drymonfidelia #8 这个只是包装的 DLL 大小,真实大小是 runtimes 目录下的 有 20 多 M
phrack
phrack
2024-02-15 19:23:46 +08:00
javascript 程序员收收味,真是哪里都能看到你们。这垃圾语言设计的时候就没整好,要不是碰巧是给浏览器绑定早死绝了
drymonfidelia
drymonfidelia
2024-02-15 19:40:25 +08:00
@Trim21 自带的脚本都是 lua 写的
lijiangang886
lijiangang886
2024-02-15 19:47:05 +08:00
@phrack #16 原文:“javascript 程序员收收味,真是哪里都能看到你们。这垃圾语言设计的时候就没整好,要不是碰巧是给浏览器绑定早死绝了”
======
回复:你说得对,但 lua 也不比 js 好,甚至更烂,要跟 lua 比烂那估计得把 php 搬出来
ikas
2024-02-15 19:47:54 +08:00
说到底它还不支持 Lua5.2 呢
这种纯粹开发喜好问题
vincent7245
2024-02-15 19:49:44 +08:00
1 lua 不算小众
2 lua 至少比 js 语法更友好

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1015740

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX