Show HN: 我用 Go 制作了一个类 Clojure 语言,启动时间为 7 ms

发布: (2026年5月10日 GMT+8 01:52)
2 分钟阅读

Source: Hacker News

概览

Let-go 是一种类似 Clojure 的语言(约 90% 与 JVM Clojure 兼容),使用纯 Go 编写。它以约 10 MB 的静态二进制文件形式发布,冷启动时间约为 7 ms——比 JVM 快约 50 倍,比 Babashka 快约 3 倍。它在算法工作负载下拥有相当的吞吐量,大致与基于 GraalVM 的 sci 相当。

起源

我在 2021 年启动了这个项目,最初是作为一个精心策划的玩笑:我想找个借口在“写 Go”的同时实际写 Clojure。

特性

  • 感觉像真正的 Clojure,并且内置 nREPL 服务器(可在 Calva、CIDER 等工具中使用)。
  • 易于嵌入 Go 程序;函数、结构体和通道可以毫不费力地跨越边界。
  • 适用于 CLI、Web 服务器、数据处理脚本,甚至一些系统编程——我曾用它编写了一个无守护进程的容器运行时。
  • 可在 Plan 9 上运行。

实现细节

实现包括一个相当简洁的编译器和一个栈式虚拟机,均为运行类似 Clojure 的代码专门手工打造。编译器可以在 AOT 模式下工作,生成可移植的字节码块以及独立的二进制文件(运行时 + 字节码)。

限制

这并不是通用的 Clojure 替代品:

  • 不加载 JAR 包。
  • 缺少完整的 Java API。
  • 现有的 Clojure 项目大概率需要修改才能运行。

入门指南

试一试并告诉我你的感受。欢迎提交 Issue 和 PR!

Hacker News 上的评论

0 浏览
Back to Blog

相关文章

阅读更多 »

Show HN:TikTok 但用于学术论文

功能 发现 一个了解你正在研究内容的 feed 根据你的兴趣、热门话题、新鲜度和社区参与度对 papers 进行排名。 选择一个 fe…

被 Apple 杀死

文章 URL: https://killedbyapple.theden.sh/ 评论 URL: https://news.ycombinator.com/item?id=48095468 积分: 87 评论: 78