
图片:METAL
摘要
- Unstable Build 于 9 月 12 日以 GPLv3 开源 Rune IDE,并把源码放到了 GitHub。
- 用 Go 重写的 Rune 终端起初在伪终端吞吐上比 Alacritty、Ghostty、Kitty 慢近两个数量级,最终没有借助 cgo 就把差距补上。
- 公司推出了按贡献积分分配收入的计划,但资金池比例与支付时间表仍在敲定中。
开发工具公司 Unstable Build 把自家 Rune IDE 的源码全部打开了。9 月 12 日发布在公司博客上的公告说,Rune 已按 GPLv3 开源,源码放在 GitHub 上。同一篇文章里,公司还说会另外做一个把部分收入分给贡献者的计划。开放代码的公司很多,写明要把这些代码赚来的钱分出去的公司很少。
Rune 不是跑在终端里的程序,而是以字符网格为画面单位的原生 GUI 应用,使用 GPU 加速,并且只用 Go 一门语言从零重写。公告判断,如今多数 IDE 建在庞大的技术栈之上,如果你本来就不熟悉系统语言或浏览器运行时的代码库,就很难读懂、编译、剖析或改动它。要么是想法与工作环境之间的门槛太高,要么干脆就是慢。
这个选择的代价留在数字里。公告称,用 Go 写的 Rune 终端起初在伪终端吞吐上比 Alacritty、Ghostty 和 Kitty 慢了近百倍。这三个程序分别用 Rust、Zig 和 C 写成。公司表示,没有通过 cgo 退回到手动内存管理的语言,也把这个差距补上了。
办法有四个。更好的算法、在 goroutine 之间更合理地分配工作、调节 goroutine 唤醒以降低 Go 运行时开销,以及把渲染沿用自游戏引擎的每秒帧数模型换成事件驱动模型。以工程师的眼光看,最后一项最关键:不再按固定节奏反复重绘画面,而是只在有输入时才动,延迟就是从这里省下来的。
测量用的是 Alacritty 一方做的 vtebench。公司在能弄到的最快笔记本,也就是配备 128GB 内存的苹果 M4 Max MacBook 上,以及至今仍在用来开发的最慢笔记本,2016 年款 MacBook 上跑了同一组测试。慢的那台是搭载低功耗移动版 Intel Core m3-6Y30 处理器并运行 Linux 的机器。第一张图里还放进了 iTerm2,它在若干滚动负载上比其余终端慢十倍到百倍,只有改用对数刻度,所有终端才装得进同一张图。
公司自己划的线就在同一处。公告写道:"这些不是语言基准测试,也并不表明 Go 和 Rust 或 Zig 一样快。" 它主张的价值是另一回事:靠剖析和用心的工程把接近百倍的差距收拢,让终端在这些负载上具备竞争力,同时没有放弃当初选择 Go 的理由,也就是简单和迭代速度。
为什么是现在,公告里也有答案。公司说早就想开源,但一直在等合适的阶段。项目早期,小团队可以用公开场合难以复现的密度走完根本性的设计问题,而 IDE 的表面积又极大,早期的一个实现选择很容易在无意中变成 API、兼容性承诺或架构约束。公告写道:"在我们还在自我摸索的时候,我们并不想把它开源。"
公司列出了如今让 Rune 重心清晰的六项。终端是环境的一等组成部分,控制台则是一个持久 REPL,负责安装软件包、配置模型、管理扩展与进程以及驱动调试器。一个命令提示符把编辑器操作、窗口管理、语言工具和智能体工作流放在同一个模糊搜索界面上,命令可以直接输入、由扩展提供、串成别名,或绑定到快捷键。编辑器内核保持精简,扩展通过明确的 gRPC API 通信,因此扩展也可以用 Go 之外的语言写。
第六项是网络。每一个 Rune 实例都会成为私有开发 P2P 网络中的一个节点,通过新的 rune:// 方案,可以在任何地方打开自己任意一台开发机上的工作区。公告同时注明,这以 NAT 穿透可行为限。
关于贡献者的那一段,是这次公告里最不常见的部分。公司把近几年开源阵营里发生的事称为令人痛心:有公司在公开场合把项目做大,拿到了用户和贡献者的帮助,等项目有了价值就改掉许可证。公告还指出,宽泛的贡献者许可协议让这种做法更容易,因为它要求贡献者交出著作权,或只给公司重新授权的权利。
Rune 说自己要走相反的路。继续采用 GPLv3,贡献者保留自己作品的著作权,并以与其余代码相同的条件贡献。公告明确写道,Unstable Build 不会拥有日后把社区成果转为专有的特殊权利。在这之上,还加了一项承诺:给贡献者一项分享 Rune 所产生收入的合同权利。
结构是积分。被采纳的工作获得贡献积分,合格服务收入中一个既定比例注入贡献者资金池,再按该期间内有效积分的比例分配。计算将记在一本可公开审计的账目上,涵盖计入的收入、允许的扣除、贡献奖励、有效积分、总分母以及每一次分配。这个设计是要让贡献者能自己重算,而不是去相信一个从紧闭的门后递出来的数字。
缺什么,公司也先写了出来。资金池比例、哪些服务计入、积分有效期多长、何时支付,都还在敲定中。参与是自愿的,不加入这个计划也可以按常规的 GPLv3 和 DCO 流程贡献,加入也不会让贡献者成为员工、股东或公司成员。公告说,已经定下来的只有原则:"公司不应从贡献者那里取得特殊权利,同时把全部经济收益留给自己。"
接下来要做的事清单关于语言支持。目前作为一等语言支持的是 Go 和 Python,Rust 与 Zig 还在 beta,需要在 main 分支上从源码构建。公司举的一等支持的例子是:通过 rust 命令调用超出标准 LSP 方法的 rust-analyzer 功能,并在控制台里用 rustup 管理工具链,无需离开这个环境。它还提到,Python 扩展本身就是用 Go 写的。
METAL 读到的公告全文标注为 13 分钟阅读,署名位置写着 ernestrc。METAL 曾报道过 OpenAI 的 Codex CLI 是一个跑在终端里的开源编码智能体;Rune 没有把智能体放在终端旁边,而是把智能体工作流拉进了编辑器自己的命令界面。公告说自动编程的出现让这件事比以往都重要,原因就在这里。
开源项目所有权结构动摇的场面,今年一直在发生。METAL 曾报道过 DuckLabs 以保住开源 DuckDB 治理结构为条件加入 AWS。开放代码,和分配这些代码赚来的钱,是两个不同的问题,而 Rune 是先开口说要给后者附上合同的一方。
剩下要验证的是数字。在资金池比例和支付时间表写下来之前,这个承诺有多大还无从判断,账目真正打开之后重算才成为可能。代码开了,账本还没有。





评论