在会第二门编程语言和主要用第二门编程语言的前提下
个人感觉 Lua 更好,上手容易,轻量,快速,Runtime 体积小,部署容易,跟其他语言缝合也容易。
而 Python 则有点拖泥带水,Runtime 有点体积,还有分 Python2 和 Python3。
为何 Lua 没流行起来呢
![]() | 1 zhuangzhuang1988 2020-02-04 13:43:34 +08:00 ![]() 因为培训班不教 |
2 nightwitch 2020-02-04 13:48:49 +08:00 lua 从一开始的定位就是一种嵌入式语言,用于嵌入在大型应用里提供方便的脚本操作。而 Python 的定位是通用编程语言。 |
![]() | 3 wangyzj 2020-02-04 13:53:11 +08:00 因为 lua 的场景和他的优点都决定他最好是寄生在别的东西里面 |
![]() | 4 jugelizi 2020-02-04 14:08:19 +08:00 py 可以独立运行啊 lua 太轻量了 完全不是一个方向的比较 |
![]() | 5 pursuer 2020-02-04 14:08:45 +08:00 via Android ![]() 标准库越完善越容易流行 ,轮子好造,python java node.js go 都是如此 |
![]() | 6 rb6221 2020-02-04 14:17:07 +08:00 via iPhone 没标准库,也就是“太”轻量了 |
7 df4VW 2020-02-04 14:17:21 +08:00 ![]() 这个评判标准的话,perl 不是更美滋滋? |
![]() | 8 SPACELAN 2020-02-04 14:20:36 +08:00 我们把 v8 引擎嵌入到了 java,php,golang,python。就是看上了 js 的灵活和工具库丰富 |
![]() | 9 tab 2020-02-04 14:42:30 +08:00 最常见的 Web 开发 Python 直接用的也不多,这两年基本是被机器学期带火的(之前 Torch 框架也有用 lua 的,然而已经凉了)。Lua 在游戏开发中很常见,底层定了,上层的业务逻辑大都用 Lua 实现。两者做比较,Lua 的生态差太多,不同的应用场景想用要么得自己造很多轮子要么就要多种语言混合使用,而 Python 基本什么都能找到现成的,现在已经形成马太效应,学习成本和方便程度不可同日而语了。 |
![]() | 10 designer 2020-02-04 14:56:23 +08:00 python 支持性挺好的,很多 arm linux 机器都内置了.玩起来也方便 |
![]() | 11 love 2020-02-04 14:57:58 +08:00 js 更好 |
12 chenyu0532 2020-02-04 15:02:12 +08:00 lua 主要的应用场景是游戏里,业务逻辑用 lua 实现很方便,不过出了游戏圈生态差了很多,还是 python 比较好 |
![]() | 14 abcbuzhiming 2020-02-04 15:29:44 +08:00 lua 才不是胶水语言好不好,你要找胶水语言那 python 是唯一选择,人家和各种语言都能胶水起来,库又多。lua 最多还是和 c 交互,游戏领域用的多(暴雪的 wow 带起来的) |
![]() | 15 bomb77 2020-02-04 15:30:02 +08:00 只当胶水可能 lua 确实更轻量方便,但是 python 轮子多,做其他事情更方便 |
16 lenghonglin 2020-02-04 15:32:24 +08:00 python 轮子多,就这点好。python 的轮子 lua 也能实现,只是没人来做 |
17 youxiachai 2020-02-04 15:36:39 +08:00 现在有 quickjs.... 感觉还是 js 方便.... |
![]() | 18 classyk 2020-02-04 15:40:40 +08:00 via iPhone 从目前请快来看,LUA 真是可以说完全定位在胶水语言了。python 则可以非常简单且单独处理非常多的任务 |
![]() | 19 wd 2020-02-04 15:56:44 +08:00 via iPhone 你觉得 lua 不流行只是觉得没人用来做 web 吧? |
![]() | 20 pythonee 2020-02-04 16:30:07 +08:00 lua 和 schema/lisp 的软件构建方式似乎有很多相似之处 用 c/c++开发需要性能偏高的底层内核或引擎,然后上层应用用 lua 和 scheme 来快速开发,这样可以平衡性能和开发效率。还有些是将 scheme 先转译成 c 语言,将动态变静态 所以,我觉得 lua 似乎更像是嵌入式语言,而 python 似乎脚本语言 |
21 chuxiaonan 2020-02-04 16:34:19 +08:00 说到胶水语言 我第一时间想到的就是 perl/awk/sed/bash/zsh/csh/ksh/各种 shell 话说回来 我个人觉得只要用着顺手就行 没必要纠结到底用啥 (我还见过用 Matlab 当胶水语言的呢。。。震惊 各种*.m 刚开始还以为是 oc,点开一看这不 Matlab 吗乖乖 不过用 oc 当胶水语言的也挺奇葩的 |
22 gam2046 2020-02-04 17:24:53 +08:00 胶水的话,还是 python 更好一些,但是就嵌入式环境来说,我觉得 lua 也就那样,语法略显诡异,说 runtime 体积小,但现在多数情况下,对体积要求并没有那么敏感,相比之下 Javascript,入门门槛可比 lua 低多了,是个人过来学半小时,都能写点东西。 |
23 laoyur 2020-02-04 17:37:50 +08:00 头像好评 |
![]() | 24 Chry3anthemum 2020-02-04 17:44:46 +08:00 显然 perl |
![]() | 25 waruqi 2020-02-04 18:19:39 +08:00 via Android lua 很给力 |
26 mattx 2020-02-04 18:39:51 +08:00 定位问题 1 python 生态更强大,要啥都有现成的库,语法优雅,但是 runtime 占用,解释器全局锁都是问题。 2 lua 定位嵌入式语言,就是 api 和 库 尽可能少,需要宿主语言去实现,这样的话可定制性好,有 luajit 效率也高。 |
28 exceptionplayer1 2020-02-04 18:58:28 +08:00 我也不喜欢 python,需要安装各种包,特别是生产环境在没有权限的情况下很坑。 所以我用 go,本地写好编译完直接可用~ 用起来很爽 |
![]() | 29 ysc3839 2020-02-04 19:04:07 +08:00 via Android 我觉得是第三方库不多,lua 应该类似 js 是跑在受限沙箱里的语言,但 Python 虽然可以嵌入,但是仍然不受限制,可以访问系统资源。 再加上 lua 往往比 js 引擎轻量,所以 lua 常被用于需要在受限环境中运行,又需要轻量要求的环境。比如给游戏写脚本之类的。 |
30 jam1024 OP @ysc3839 我觉得不能这样说,因为 python 的实现复杂,所以嵌入也不一定完善,可能会出各种各样的问题,而 lua 的实现相对简单一点,嵌入的实现也更容易很更快的达到稳定 |
31 jam1024 OP @exceptionplayer1 然后因为国内网络比较垃圾,稍微拖点国外的东西,9、10MB 的文件都可能会卡壳,而 Lua 则最大打包起来不过 2、3MB,直接秒下,很快就部署起来了。 |
![]() | 32 ysc3839 2020-02-04 19:14:02 +08:00 via Android @ysc3839 Node.js 出来之前 js 和 lua 差不多,都是嵌入一个软件中使用,因为是一个受限的环境,单独跑的话没法访问系统资源,可以做的事情不多。 Python 则不一样了,单独跑就能实现很多功能,即便是嵌入使用也不受限制,可以用来扩充主程序的功能。 假如你写一个游戏服务器,想把游戏统计数据实时上传到某个接口,用 lua 或 js (不是 Node.js) 的话,你得自己给这些语言扩充相关的通信功能,而用 Python 的话这功能就是自带的,可以直接使用一堆轮子。 |
![]() | 33 ysc3839 2020-02-04 19:17:26 +08:00 via Android @jam1024 这是看用途的,如果不为了 Python 那么多现成的库,那使用 js 或者 lua 这种设计就是嵌入的语言当然更合适。但是如果需要那些功能就不一定了。 |
![]() | 34 crella 2020-02-04 19:20:20 +08:00 via Android lua 轮子太少,好像没什么写 web 的框架,所以新手程序员一般不先学这个…… |
35 robertredd 2020-02-04 19:37:19 +08:00 via Android 不要纠结语言了 看实际用途吧! |
![]() | 36 paoqi2048 2020-02-04 20:15:18 +08:00 你可以将 lua 理解为 minipy |
![]() | 37 GuangXiN 2020-02-04 20:21:46 +08:00 lua 这种弱鸡还有人用 |
![]() | 38 juzipeek 2020-02-04 21:19:37 +08:00 wrk, OpenResty, ats, redis 都使用 lua 来扩展功能 |
![]() | 40 thedrwu 2020-02-05 01:21:08 +08:00 via Android 选择用 python 做胶水或脚本很大原因是有 numpy 的加成。 不然 lua / tcl / scheme 甚至 vb 都轻巧易学。 |
![]() | 41 no1xsyzy 2020-02-05 01:45:16 +08:00 ![]() 什么时候把 lua 当胶水了? lua 不是主点的嵌入吗? 还有,语言的流行是具体应用的流行。 C 的流行是 Unix 的流行。Javascript 的流行是浏览器的流行。 其他也有通用性因为多种应用多次流行的。 纠结语言的落地没意义,因为这和语言本身的性质甚至其实现的好坏无关。 |
![]() | 42 avv 2020-02-05 11:32:16 +08:00 JS +1 |
![]() | 43 V69EX 2020-02-05 15:57:13 +08:00 lua 真的很容易学,前段时间,在完全不会的情况下,花三天时间,给 mpv 写了个脚本,用来切换 iptv 直播源的播放列表(频道切换)。 |
![]() | 45 V69EX 2020-02-11 14:54:36 +08:00 @hanguofu 没问题,给你贴上网了: https://paste.centos.org/view/12cada0c 只需要打开源码,设置一下 iptv 播放列表文件(比如 xxx.m3u8 )的全路径就行,变量后面有注释。 |
![]() | 46 V69EX 2020-02-11 14:56:55 +08:00 把这文件放在~/.config/mpv/scripts/目录下,修改~/.config/mpv/input.conf,加上: F6 script-binding iptv 当然,这个热键你可以自己随便定义。 |