Gerbil Scheme – 面向 21 世纪的 Lisp
Gerbil Scheme:特性、生态与工具
- 基于 Gambit-C Scheme 构建,目标是支持 R5RS/R7RS、常见 SRFI,以及受 Racket 启发的宏/模块系统。
- 标准库被描述为“极简主义相反的极大主义”:包含网络、S3 和 WebSocket 客户端、并发原语(协程、actor)、对象/结构体、可选类型注解。一些库的文档不够完善。
- 到 C 的 FFI 被认为“相当合理”,能够复用符合 RxRS 的 Scheme 库和原生库。
- 工具链“还不错”且仍在演进:LSP 实现、更好的文档,以及在编译/展开时使用类型信息以提升性能和安全性的工作正在进行中。
- 据称当前版本会捆绑固定版本的 Gambit,因此不应依赖系统安装的 Gambit,不过过去并非一直如此。
安装与运行时体验
- 有一位评论者因为系统 Gambit 版本过旧而无法构建 Gerbil;也有人表示从源码编译 Gambit 很容易。
- 交互式开发能力受益于 Gambit 对 CL 风格工作流的支持,可能还包括可恢复异常(这是 Gerbil 的目标之一,但尚未得到明确确认)。
Lisp 的繁衍与“面向 21 世纪的 Lisp”
- 关于“又一个 Lisp/Scheme”是否有价值存在争论。
- 怀疑者认为 Lisp 已经很多了,大多数并没有改变现实世界的实践,而主流语言的工具和生态往往更好。
- 支持者认为实验和多样性是 Lisp 的核心优势,并且坦诚地承认“只是又一个 RNRS Scheme”比表面上的新奇更好。
- 有些人认为 Lisp 和 Linux 也许会从更少的碎片化中受益;也有人坚持多样性和长期实验是必不可少的。
现实中的使用与生态担忧
- 怀疑者要求提供用 Scheme 编写的大型、广泛使用的系统;回复者提到了 Chicken Scheme 项目和其他基于 Scheme 的应用,但很多证据仍然是历史性的或小众的。
- 一些程序员表示他们尝试过许多 Lisp,但最终还是留在 CL(通常是 SBCL + SLIME)或 Clojure(因为 JVM 生态和函数式数据结构)。
- 人们反复抱怨新的 Lisp 缺少直接的 HTTP/JSON 示例,以及与其他语言的实用并排比较。
工具、编辑器与上手体验
- 对 Emacs 作为默认 Lisp IDE 存在强烈分歧:一些人认为它强大且是标准;另一些人觉得它过时,并坚持认为现代、CUA 风格的编辑器和 GUI 对吸引新用户至关重要。