一份2026年新鲜出炉的Common Lisp教程,作者特意标注"零AI生成"。老语言的新手册,背后藏着两个值得掰扯的问题:函数式编程的遗产,到底该进博物馆还是该翻新用?

正方:FSet让Lisp重新值得学

打开网易新闻 查看精彩图片

Scott Burson写的这本《Modern Common Lisp with FSet》,核心卖点是把FSet库推到C位。FSet是什么?一套不可变数据结构(immutable data structures)的集合,包括函数式集合、映射、序列、关系型集合,外加一个基于等价关系的通用排序工具。

打开网易新闻 查看精彩图片

不可变数据在并发编程里是硬通货。没有锁竞争,没有脏读,线程安全是结构自带的属性。Go语言2022年才把泛型落地,Rust的借用检查器让新手掉头发——而Lisp早在1960年就玩透了代码即数据(code as data),现在补上一套现代化的不可变集合,理论上能同时拿下"表达力"和"工程安全"两张牌。

作者选了知识共享的非商业协议(CC BY-NC-SA 4.0),还开了GitHub和GitLab双渠道收issue。这套打法很"开源原教旨":不指望赚钱,但指望社区打磨。对于厌倦了JavaScript工具链地狱的开发者,Lisp的统一语法和交互式开发环境(REPL驱动)确实是另一种呼吸节奏。

反方:现代化是幻觉,生态坟场才是现实

但硬币的另一面很凉。Common Lisp的标准冻结在1994年的ANSI规范,比Python 1.0还早两年。FSet库的版本号写到2.4.2,说明它活了挺久——但也说明它始终没进主流。

不可变数据结构不是Lisp的独占发明。Clojure在JVM上做了更完整的函数式生态,Elixir拿下了并发容错的故事,就连Java都抄够了ImmutableList。FSet的"现代化"更像是在给老爷车换轮胎,而不是造新车。

更现实的门槛是就业市场。Stack Overflow 2024年调查显示,Lisp家族(含Clojure)的开发者占比不到2%。学FSet能帮你理解持久化数据结构(persistent data structures)的原理,但简历上写这个,HR可能以为是打字错误。

我的判断:这是给特定人群的"时间套利"工具

打开网易新闻 查看精彩图片

这件事的真正价值不在技术本身,而在"谁需要它"。

第一类是编译器/编程语言研究者。Lisp的宏系统(macro system)至今没有完美替代方案,读FSet的源码等于看一套工业级的函数式数据结构怎么在动态类型语言里落地。

第二类是厌倦了框架内卷的后端工程师。Node.js和Python的依赖地狱、Rust的编译时暴政、Java的样板代码——对比之下,Common Lisp的"交互式图像"(image-based)开发模式反而成了时间胶囊里的净土。

第三类最务实:需要写内部工具、数据分析脚本、原型验证的开发者。FSet的集合操作比Python的dict comprehension更简洁,比Pandas的API更一致,且没有GIL锁的并发焦虑。

作者特意强调"零AI生成",这个声明本身也是信号。在Copilot和ChatGPT能吐出八成正确代码的年代,手写一本关于"代码即数据"的教程,是在捍卫一种即将失传的手艺——就像2026年还有人坚持用手动对焦的胶片相机。

技术选型从来不是选"最好的",是选"最对的"。FSet不会复兴Lisp,但它给了一小群人拒绝JavaScript生态的理由。至于这个理由够不够硬——得看你的项目允不允许用30年前的语法,解决明天的问题。