说起来有点不好意思,折腾过不少语言,最后真正让我对"嵌入式"三个字有了实感的反而是 Lua。最早是在一台快退役的路由器上,想加个流量统计的小插件,翻源码才发现它小得离谱——核心解释器编译完两三百 KB 就能跑,整个源码一个周末差不多通读一遍。那会儿挺震撼的,以前总觉得软件控制硬件是 firmware 工程师的事、离我很远,结果几行脚本改了端口转发的逻辑,真的摸到了硬件的边。
后来才慢慢体会到它 register-based VM 设计的好处。语法极简,几乎没有多余的东西,反而逼你把接口写清楚、把模块解耦干净。你偷懒塞一堆全局状态进去,它立刻用 bug 教你做人。游戏引擎拿它做逻辑胶水也是这个理:底层 C 管性能和内存,上层 Lua 管灵活和迭代,各司其职。
从某种角度看,Lua 不算"强大"的语言,但做 glue 这件事,它确实做到了极致。现在很多人一上来就 Python 或 JS,可能永远体会不到这种"小到能塞进任何缝隙"的快感了。