1
rocmax 273 天前 via Android
因为 lua 可以方便地调用 c/c++
|
2
adoal 273 天前 1
JS 性能更高吗?以前看过一篇论文,对常见的各种语言做了个 benchmarking ,脚本语言无 JIT 组 Lua 是第一,有 JIT 组 LuaJIT 是第一……
|
3
ipwx 273 天前 1
不上 jit 的情况下 lua 很快,js 很慢
|
4
westoy 273 天前
早期 dhtml 时代 js 并不普及,PHP black book 作者公开在书里建议别用 js.......
js 慢慢普及是 gmail 时代才开始的, 性能上去是 v8 出来后 而且 lua 和 luajit 爆杀........ |
5
inroading 273 天前
JavaScript 只是在 Web 开发中占主导,Lua 可以很方便嵌入 mpv 这种桌面应用; Lua 更简单
|
6
pursuer 273 天前
只提性能,在不带 jit 的情况下,lua 的解释器实现是比 javascript 更快的。不过好像也就 2-3 倍的样子
如果带 jit ,那一般 js 说的是 v8/node ,我看了下电脑里的 node 排除掉 node_module 是 62.6mb ,可能是考虑有点大吧。 |
7
dcsuibian 273 天前
我觉得性能不是问题,主要是开发语言
比如 Postman 包含一个基于 Node.js 的运行时,自然就会支持 JavaScript 脚本 如果是 C/C++开发的程序,那 Lua 或 Python 脚本就挺正常 |
8
drymonfidelia OP @pursuer 纯 V8 看起来也没多大,我看 Microsoft.ClearScript.V8 才 768KB
|
9
drymonfidelia OP @dcsuibian 如果我要给用 C#开发的跨平台程序加入脚本功能,Lua 还是 JS 更合适?看起来 Jint 相比 Lua 的解析器更成熟 ( V8 那个好像不能跨平台)
|
10
icyalala 273 天前
如果从开发者(而不是脚本使用者)的角度来看,Lua 显然是更容易集成的。
纯粹的 C89 ,代码量非常少,编译超简单,想怎么集成就怎么集成,也不用考虑 C++ 和跨平台之类的各种问题。 License 也是 Public Domain 的,没有其他顾虑。 如果把 JS 要用在脚本语言,还是看看 quickjs 吧,至少体积和使用难度比 v8 小多了。 |
11
kneo 273 天前 via Android
开发者友好,安装包体积友好。
|
12
lijiangang886 273 天前
为什么 lua 在游戏开发中应用普遍? - 韦易笑的回答
https://www.zhihu.com/question/395593519/answer/2738722877 总之就是 quickjs 出来的太晚了 |
13
Trim21 273 天前 via Android 2
额,你们都在说什么,mpv 支持 js 脚本啊…
|
14
june4 273 天前
lua 比 js 快?我不能相信
|
15
ly841000 273 天前
@drymonfidelia #8 这个只是包装的 DLL 大小,真实大小是 runtimes 目录下的 有 20 多 M
|
16
phrack 273 天前 via iPhone 5
javascript 程序员收收味,真是哪里都能看到你们。这垃圾语言设计的时候就没整好,要不是碰巧是给浏览器绑定早死绝了
|
17
drymonfidelia OP @Trim21 自带的脚本都是 lua 写的
|
18
lijiangang886 273 天前 1
@phrack #16 原文:“javascript 程序员收收味,真是哪里都能看到你们。这垃圾语言设计的时候就没整好,要不是碰巧是给浏览器绑定早死绝了”
====== 回复:你说得对,但 lua 也不比 js 好,甚至更烂,要跟 lua 比烂那估计得把 php 搬出来 |
19
ikas 273 天前
说到底它还不支持 Lua5.2 呢
这种纯粹开发喜好问题 |
20
vincent7245 273 天前
1 lua 不算小众
2 lua 至少比 js 语法更友好 |
22
starrycat 273 天前 via Android
得看历史性能数据吧,我猜 mpv 使用 lua 时应该比 js 更普及和性能更高吧,就算现在 js 更好,现有代码够用为什么要换?
|
23
Al0rid4l 273 天前
论性能, JS 和 Lua 其实差不多的
论生态, JS 大得多 论语法, 都是动态弱类型, Lua 的索引默认 1 开始真没看出来哪里友好了, 异步语法更不用说 JS 的确丑陋, 但 Lua 和优雅也不搭边, 搁这吹 Lua 的还是歇歇吧 用 Lua 的考量基本上只会是体积小和容易集成 |
24
wolfan 273 天前
首先,这事得结合时代来看。
lua 的时候,存储空间还是寸土寸金,而 lua 就那么点大,使用 lua 有存储上的优势。 其次是当年 C 大行其道,用 lua 辅助不是很正常。 最后是强大的惯性作用。 所以用 lua 没毛病嘬。 |
25
lambdaq 272 天前
为啥不用 Emacs Lisp ?
|
26
sunzhuo 272 天前
Lua 的语法还是很简单的,集成也简单。
|
27
stimw 272 天前 via Android
@phrack 你 17 年的帖子:
“ 楼主玩过不少语言,目前主力 python 。 经常因为项目需要会要写 java 和 js ,但是为什么我一直觉得 java 和 js 非常机车啊! java 脱离 IDE 根本没法写,有 IDE 也是一大坨一大坨,看的人眼睛疼,js 我尝试了三次去熟悉这个语言,每次都是玩到想哭,真的,就是想哭,为什么到处都是回调,我根本不明白整个程序的流程到底是怎么走的? 谁能帮我脱离苦海?! ” 合着你 7 年过去了零进步呗。js 黑也没黑到点上,回调函数也能黑,这辈子就只会写 python 是吧... 当年还是正常就事论事只说语言,现在倒学会打地图炮喷整个群体了。 |
28
dnfQzjPBXtWmML 272 天前 via Android
Lua 解释器简单啊,在单片机上都能用
|
29
Cookmilk 272 天前 via iPhone
Lua 轻,啥叫轻。就是功能少。
|
31
HaroldFinchNYC 272 天前
Lua compiler 很小,可以整合到软件里
|
32
MetroWind 272 天前
没事谁愿意用 JavaScript 这破玩意 😂😂😂
|
33
yf215 272 天前 via Android
Quickjs 相对 luavm 性能还是差点,不过现在很多项目都是集成 quickjs 了。
|
34
rrfeng 272 天前 via Android
小巧,不能玩花有时候也是优势。
你整个 js 进去,随便拉个库 import 几十个 modules… 说大项目不好重构的,不适合 lua 就是不适合,别强行用。 |
35
pursuer 272 天前
@lijiangang886
@Al0rid4l lua 的设计我觉得不算差吧,索引为 1 只是规范问题,和多数语言不一致。_ENV upvalue 设计我觉得比 js 好,可以防止变量泄漏到全局,而且运算符的一致性也更好一点,例如经典 js 的==,虽然现在基本都用===了,js 用+做字符串连接,其他符号又转换为数字计算。lua 还支持有栈协程,也更灵活一些。lua 设计的时候就考虑尽可能快,所以排除 jit 的话有兼容性负担的 js 上限大概是达不到 lua 的水平的。 但说到底这些设计上的差异并没有多大影响,js 优势就有非常强大的兼容性和生态,语法糖也更甜。这就足够了。 @drymonfidelia 9# 如果考虑 js 的话,有个 txiki.js 的项目可以看看,quickjs 基础上增加了一些 web api 支持 如果脚本可能很复杂的话我觉得考虑下 rpc ,类似 Language Server Protocol 这样的 |
36
jsq2627 272 天前 via iPhone
v8 的 embedding 难度比 lua 高多了
|
37
mengzhuo 272 天前
最近在实现 js 相关的解析器,发现要是现实的语法功能对比其他语言实在是太复杂了。
而这些都是嵌入脚本式语言要避免的地方,尽量简单并能完成工作。 |
38
Al0rid4l 271 天前
@pursuer "和多数语言不一致" 这就是不友好, 不然 Brainfuck 都能说自己友好, 每个语言的槽点都能说是规范问题, 毕竟谁还没个规范了
上限是达不到 Lua, 不过主流解释器/编译器都带 JIT, 每个都有好爹, 实际情况就是 JS(JIT)和 LuaJIT 差不多, 但你把人家好爹排除了 |
39
kaiveyoung 271 天前 via Android
你如果写过就知道了,Lua 和 C/C++集成互相调用非常方便,甚至都不用拷贝变量,直接使用 Lua 访问原生 C++对象。而且一个 5M 大小的 C++程序,在 600MHz 主频,128M 内存的嵌入式设备上运行
|
40
ZhiyuanLin 271 天前
你嵌入过就知道,lua.h 比 v8.h 的 API 好用多了……
|
41
byzod 271 天前 via Android
你是浏览器大战的时候没关注吧, 那时候的 js 性能只能用一坨屎来形容
什么拳打 lua 脚踢 native, 都是卷出来的 |
42
tywtyw2002 270 天前 via iPhone 1
lua 快啊
程序插件脚本,基本上只需要实现基业务逻辑就行了,剩下的函数去 call api 。性能什么,并不拼浮点计算。 lua 不爽的就是没原生 class ,table 有时候让人很头痛,还有就是 string 操作还是很原始。 写 wow ,neovim 插件,你发现大部分操作都是 if else 然后 call api 。性能相关的函数都是 call c api 去解决的。 |
43
mudssky 270 天前
mpv 几年前我开始用的时候就支持 js 脚本了,我写 mpv 脚本都是用 ts 然后编译到 es5 就可以了。
|
44
rockcat 270 天前
用 Lua 主要是 runtime 小巧,js 的 runtime 太大了。
|