漫话开发者 - UWL.ME Mobile

近日,一款名为Let-go的开源编程语言在Hacker News上引发热议。它用纯Go语言实现,语法和语义上约90%兼容JVM上的Clojure。与传统Clojure依赖Java虚拟机不同,Let-go编译成一个约10MB的静态二进制文件,冷启动时间仅需约7毫秒,比JVM版Clojure快约50倍,比同样追求快速启动的Babashka还快3倍。在算法密集型任务上,其吞吐能力也达到了GraalVM版科学计算库Sci的水平。该项目最初只是作者在2021年发起的一个“实用玩笑”,意在假装写Go的同时找到写Clojure的借口,但最终发展成了一个相当实用的工具。Let-go支持nREPL服务器,可配合Calva、CIDER等主流编辑器使用;支持与Go程序深度嵌入,函数、结构体和通道均可跨语言无缝调用。它既可以用于编写CLI工具、Web服务器、数据处理脚本,甚至可用于系统编程——作者用它写了一个无守护进程的容器运行时,还支持Plan 9系统。内核包含手写的编译器和栈式虚拟机,编译器支持AOT模式,可生成可移植字节码或独立二进制。不过注意,它目前不兼容Java的JAR包,也不提供完整Java API,现有Clojure项目通常需要修改才能运行。

核心要点

  • Let-go是一个纯Go实现、语法约90%兼容Clojure的新语言,冷启动仅7毫秒,比JVM版快50倍。
  • 它支持nREPL、可嵌入Go程序,适用场景涵盖CLI、Web服务、数据处理乃至系统编程。
  • 项目内置手写编译器和栈式虚拟机,支持AOT编译为独立二进制,但不兼容Java JAR和全部Java API。

Read more >