V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
m939594960
V2EX  ›  问与答

lua jit 性能这么好,为啥使用的人不是很多呢?

  •  
  •   m939594960 · 2017-11-25 16:22:59 +08:00 · 12944 次点击
    这是一个创建于 2548 天前的主题,其中的信息可能已经有所发展或是发生改变。

    lua jit 性能这么好,而且语法感觉也还行,为啥用来写 web 应用的人不是很多呢?

    第 1 条附言  ·  2017-11-25 19:09:17 +08:00
    主要的感觉就是这个语言写起来也是很方便的,而且并不是要替代 php python 什么的,主要是感觉这个语言可以替代 golang java 来做 web 对性能有要求的部分
    32 条回复    2017-11-26 13:14:29 +08:00
    acgnsstech
        1
    acgnsstech  
       2017-11-25 16:27:19 +08:00
    php 足够了
    GooMS
        2
    GooMS  
       2017-11-25 16:27:21 +08:00 via Android
    那不是捡了芝麻丢了瓜吗
    plqws
        3
    plqws  
       2017-11-25 16:27:43 +08:00
    会 lua 的不多吧,在游戏领域用的比较多
    包管理啊、第三方库生态都是问题,所以终究只能作为一个 embedded language
    ibegyourpardon
        4
    ibegyourpardon  
       2017-11-25 16:29:52 +08:00   ❤️ 1
    C 的性能也很好,但大多数情况下我们身边的人正经用 C 写东西的也没几个。

    为什么呢?

    因为性能永远不是我们写一个 Web 应用的时候优先考虑的事。

    先写出来,还要赶得上飞快的业务变化,之前有的公司一天给你迭代两个版本上线,这时候,只能用更容易写出东西来的东西来实现。

    性能? 东西都没做出来,谈何性能。

    实在嫌线上性能差?那还有一堆别的优化措施,反正还没那么快到考虑语言的时候。
    m939594960
        5
    m939594960  
    OP
       2017-11-25 16:37:03 +08:00
    @ibegyourpardon 主要的感觉就是这个语言写起来也是很方便的,而且并不是要替代 php python 什么的,主要是感觉这个语言可以替代 golang java 来做 web 对性能有要求的部分
    infun
        6
    infun  
       2017-11-25 16:41:00 +08:00
    性能差一点可以堆机器,不能按时结项就要倒霉了
    letitbesqzr
        7
    letitbesqzr  
       2017-11-25 16:42:10 +08:00
    因为大部分情况并不需要那么高的性能,说 php java python 慢,我就想问国内到底有多少厂的业务瓶颈在于语言上。更需要的是开发效率 可维护性
    kiwi95
        8
    kiwi95  
       2017-11-25 16:43:48 +08:00
    速度再快赶得上业务变更的速度快吗。。。。
    ipwx
        9
    ipwx  
       2017-11-25 16:44:18 +08:00
    @m939594960 Java 世界的库那么多,Lua 怎么比得上呢?

    Golang 没用过,不知道。
    lzsadam
        10
    lzsadam  
       2017-11-25 16:55:23 +08:00
    合适的工具做合适的事,有些小偷拿个铁丝开自行车锁比用钥匙开还快,但是小偷骑自己车子的时候我想总不会用铁丝开吧。肯定用钥匙嘛。
    cloudyplain
        11
    cloudyplain  
       2017-11-25 17:51:08 +08:00
    最近在用 openresty&kong,语法和生态的确比不上 python、php,只能说够用,如果实在不够用,自己 ffi 写一个也挺快的,需要的技术栈可能会很多,对开发者要求比较高。
    askfilm
        12
    askfilm  
       2017-11-25 17:57:59 +08:00
    性能好并不是最重要的, 开发效率高才是关键
    hjc4869
        13
    hjc4869  
       2017-11-25 18:01:40 +08:00 via iPhone
    lua 跟 js 在语言上基本等价,库生态又不如 js,luajit 也没 V8 快,为什么不用 nodejs ?
    tomczhen
        14
    tomczhen  
       2017-11-25 18:08:55 +08:00
    openresty 性能确实高,不过开发体验不太好,当然可能是我姿势不对。

    其实这个问题很好解释,既然没有银弹,那么总有一些问题需要专门的工具来解决,这时候这些“小众”语言或者方案就有必要了。
    m939594960
        15
    m939594960  
    OP
       2017-11-25 19:08:38 +08:00
    @hjc4869 我查的文章 luajit 是比 v8 快的,因为 lua 的语法么那么多特性,jit 实现起来比较好。当然没实际使用不知道真正的速度咋样
    chenqh
        16
    chenqh  
       2017-11-25 20:04:25 +08:00 via iPhone
    lua 就是个嵌入式语言,stdlib 太少了
    pqee
        17
    pqee  
       2017-11-25 20:41:51 +08:00
    性能是最后要考虑的东西,首要的是社区。
    changwei
        18
    changwei  
       2017-11-25 21:29:34 +08:00 via Android   ❤️ 1
    一个语言火不火,和生态环境有很大关系,我说的生态环境不仅仅是依赖库多不多的问题,而是他的市场生态。比如说学习资料,社区活跃度,服务器的部署简便性,应用广泛程度等等。
    我学 lua 是因为最近在 esp8266 上的 nodemcu 固件上做物联网开发。
    l1093178
        19
    l1093178  
       2017-11-26 00:47:18 +08:00
    因为 lua 没轮子,随便做点什么都得自己动手
    要是楼主有兴趣的话可以多给 https://github.com/luvit/luvit 撸点轮子,这样说不定用 lua 的人就多了。
    不过老实说,相较 Elixir 或 Golang,lua 做 web 的优势并不是那么大。
    Phariel
        20
    Phariel  
       2017-11-26 03:16:06 +08:00 via Android
    听说 openresty 里的 lua JIT bug 有点多 我总在听同事吐槽
    msg7086
        21
    msg7086  
       2017-11-26 03:17:47 +08:00
    还没到需要考虑性能的时候。
    开发,先看代码实现难度,再看维护难度。
    等要看性能的时候,你公司价值起码一个亿了吧。
    然后我们再来看换什么语言。
    (这时候大概也不是换 lua 了,因为还要看人才数量,说不定就滚去 Java 了。)
    你应该问,有多少人写 Web 是会遇到性能瓶颈的。
    zhangbohun
        22
    zhangbohun  
       2017-11-26 04:05:30 +08:00 via Android   ❤️ 1
    数组索引从 1 开始。。。
    lrxiao
        23
    lrxiao  
       2017-11-26 05:06:18 +08:00
    lua 主要是与 C/C++交互啊 web 又不用这玩意 要是做游戏还行
    baskice
        24
    baskice  
       2017-11-26 06:46:55 +08:00
    我说一个最简单的问题,假设现在有两种代码
    A 代码 1 小时上手
    B 代码需要 4 年本科培训才能搞懂

    A 代码写的程序平均要 B 代码运行时间的 2 倍以上。

    现在有大量像我一样的人只需要快速上手写个小破网站给十几个人看即可。
    另有少数 Google 级的大公司访问上亿,每一毫秒优化都非常必要。

    你说大部分人选 A 还是 B ?
    anmaz
        25
    anmaz  
       2017-11-26 07:17:58 +08:00 via Android
    老师说,大部分公司的体量还没有达到谈性能问题,多一台服务器足以
    abcbuzhiming
        26
    abcbuzhiming  
       2017-11-26 09:05:40 +08:00
    替代 JAVA ?口气真大啊,你的生态圈才多大?
    m939594960
        27
    m939594960  
    OP
       2017-11-26 10:34:52 +08:00
    @abcbuzhiming 没有一个语言是上来就有一个很完善的生态圈,都是慢慢用,慢慢有人进行完善。
    m939594960
        28
    m939594960  
    OP
       2017-11-26 10:35:36 +08:00
    @lrxiao web 可以用这东西的,现在已经有几个 lua 的 web 框架了 配合 openresty 使用
    abcbuzhiming
        29
    abcbuzhiming  
       2017-11-26 11:21:38 +08:00
    @m939594960 你要不要看一下 lua jit 这玩意已经诞生多久了?有的语言只适合做小工具,不会有人给他做生态圈的
    visonnn
        30
    visonnn  
       2017-11-26 11:59:38 +08:00 via Android
    最近一直在做用 openresty 做开发,体验讲真不好,要花比较多的时间去调试。

    luarocks 也是要了我的命……
    blless
        31
    blless  
       2017-11-26 12:20:59 +08:00 via Android
    我是运维转的开发,写了 go 之后再也不想写 python 这种动态语言了…动态语言真的是炳双刃剑,技术好的人用得越好,差的人也用得更差,go 只要老老实实写业务 性能已经是 python 的数倍了。lua jit 比 python 快我信,比 go 还快?
    SuperMild
        32
    SuperMild  
       2017-11-26 13:14:29 +08:00
    @blless 我也是从 go 开始感受到静态语言的好处
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2925 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 14:28 · PVG 22:28 · LAX 06:28 · JFK 09:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.