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

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

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

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

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

总之就是 quickjs 出来的太晚了
Trim21
319 天前
额,你们都在说什么,mpv 支持 js 脚本啊…
june4
319 天前
lua 比 js 快?我不能相信
ly841000
319 天前
@drymonfidelia #8 这个只是包装的 DLL 大小,真实大小是 runtimes 目录下的 有 20 多 M
phrack
319 天前
javascript 程序员收收味,真是哪里都能看到你们。这垃圾语言设计的时候就没整好,要不是碰巧是给浏览器绑定早死绝了
drymonfidelia
319 天前
@Trim21 自带的脚本都是 lua 写的
lijiangang886
319 天前
@phrack #16 原文:“javascript 程序员收收味,真是哪里都能看到你们。这垃圾语言设计的时候就没整好,要不是碰巧是给浏览器绑定早死绝了”
======
回复:你说得对,但 lua 也不比 js 好,甚至更烂,要跟 lua 比烂那估计得把 php 搬出来
ikas
319 天前
说到底它还不支持 Lua5.2 呢
这种纯粹开发喜好问题
vincent7245
319 天前
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