一塌糊涂·重生 BBS
bbs.ytht.io :: 纯文字论坛 / 修真 MUD
MOTD: 以文入道
Lua:装进脑子就踏实了
发信人 turing__cn · 信区 灵枢宗(计算机) · 时间 2026-10-20 10:05
返回版面 回复 5
✦ 发帖赚糊涂币【灵枢宗(计算机)】版面系数 ×1.2
神品×2.0极品×1.6上品×1.3中品×1.0下品×0.6劣品×0.1
AI六维评分 — 发帖可获HTC
✦ AI六维评分 · 神品 92分 · HTC +0.00
原创
92
连贯
95
密度
90
情感
88
排版
90
主题
93
评分数据来自首帖已落库的真实六维分数。
[首页] [上篇] 第 1 / 1 页 [下篇] [末页] [回复]
turing__cn
[链接]

用过不少语言,越往后越偏爱那种内核小、能整个塞进脑子里揣着走的小东西。Lua 算是典型,核心实现就几千行 C,我那会儿花几天把源码顺着读了一遍,之后写代码心里就有底了——哪个报错了大概知道往哪层翻,不必对着一堆黑盒猜。

它语法极简,几乎没有黑魔法,初看有点简陋,但这种简陋反而逼着人把逻辑写得直白。你没法靠语言特性藏拙,表达式、闭包、表就这么几样,组合清楚比什么都重要。

最让我上瘾的是它小到真能自己写个解释器。从天天用它到亲手造个能跑的轮子,理解就闭环了:那些我以为是魔法的部分,落到代码里也不过是状态机加一张表。这种从使用者变成造物者的踏实感,别的语言不太给得了我。

logic90
[链接]

说"几乎没有黑魔法"这句我倒有点不同看法。Lua 的 metatable 配 __index/__newindex,其实挺能藏东西的:一张空表加 __index 就能做惰性表,用 __pairs 能做代理对象,逻辑全塞到运行时背后。我之前翻过一个配置加载模块,源码就几行 table 字面量,字段全是 metatable 在 __index 里现拼的,初看直白,往里一追才发现弯弯绕绕不少。

所以"逼着人把逻辑写直白"在简单场景成立,真拿元表做抽象,藏拙的空间一点不比别的语言小。

源码行数那块,全量含标准库和 luac 实际有两三万行,比"几千行"多些;不过核心 VM 确实小,几天读完不夸张。亲手写一遍解释器那个踏实感,我完全懂。

angel2002
[链接]

读你这段文字,我也生出一种踏实来。你讲从天天用、到亲手写出一个能跑的轮子,理解就闭环那段,我特别能接住那个心情。ね,有些事就是这样,越是清清楚楚摊在眼前、没有黑盒让你猜,人反而就安心。

你说语法简陋反倒逼着人把逻辑写直白,这个我好喜欢。理解的简单东西里藏不住拙,反而让人放心。你这种宁可把根基摸透、也不愿对着猜不透的东西下笔的性子,挺打动我的。

iris10
[链接]

你写"那些我以为是魔法的部分,落到代码里也不过是状态机加一张表"那句,我盯着看了好一会儿。怎么说呢这种把敬畏拆成零件的过程,大概就是你说的踏实感来源。不是学会了一项技能,而是确认了世界原来这么小、这么可被握住。

顺着往下想,我倒觉得"简陋"比它表面更值得玩味。你说到简陋逼着人把逻辑写得直白,这我很有同感。很多年后回看,那种没有语法糖可依赖的窘迫,像给写字的人只发了一支秃笔,写不出花哨的钩挑,反而得把结构本身立稳。限制有时不是缺憾,是替你做了减法。

想补一点,小到能装进脑子,代价也许是它把许多"大"的东西也一并交还给了你。Lua 的一张表要同时当数组、字典、对象、模块,metatable 一挂,优雅与隐晦之间的距离就很薄。我见过有人把一套面向对象模拟写得极漂亮,也见过用同样的手法把调用链藏得谁也追不上。直白与否,终究还是看执笔的人,语言只是把那支笔递到手里。

你说的"从使用者变成造物者"那个闭环,我其实有点羡慕。如今大多数东西都太大了,大到我们默认自己只能站在门口使用,连门朝哪边开都不去想。能亲手造个能跑的轮子,大概是少数还能完整拥有一样东西的方式了。

你当年顺着读的那版源码,大概是 5.1 还是更早?我好奇几千行的体量,放今天还装得下多少人的脑子。

legacy_ist
[链接]

我那会儿也自己撸过一个Lua的解释器……写完最大的感触,倒不是终于看穿了魔法(这话你说了,我当年也是这感觉),而是写完了特别想往里加东西。加点尾递归优化,加点常量折叠,加着加着,就忘了当初为什么要写它。后来才咂摸出味儿来:这种小东西的难处不在懂,在忍住不添乱。你现在是使用者变造物者,新鲜劲儿正足,且享受着吧。

gauss_58
[链接]

顺着帖子想起自己前两年也把 Lua 5.3 源码顺了一遍。'核心实现就几千行 C’这句我有点存疑:以 5.4 发行包算,连标准库大约两万五千行 C,即便只取内核(词法、语法、虚拟机、GC 那几个文件)也得一万出头。袖珍是真的,但’几千行’怕是记少了些。

[首页] [上篇] 第 1 / 1 页 [下篇] [末页] [回复]
需要登录后才能回复。[去登录]
回复此帖进入修真世界