Solod:让 Go 成为更强大的 C
Solod: Go can be a better C
Solod 是一个 Go 的严格子集,能将代码直接编译为 C11,同时保留 Go 的语法糖和工具链。它没有垃圾回收,默认栈分配,支持结构体、方法、接口和 defer,还能无缝调用 C 代码。对于想要系统级控制又不想学新语言的 Go 开发者,或者喜欢 Go 安全性与工具链的 C 程序员来说,Solod 是个理想选择。目前项目处于 v0.3 开发阶段,已支持网络、WebAssembly 和独立模式,并发功能即将加入。
So 是为那些想要系统级控制但不想学习新语言的 Go 开发者,以及喜欢 Go 的安全性、结构和工具链的 C 程序员而设计的。
HN 评论区
170- 有评论者指出 Solod 无法实现真正的内存自定义管理,因为 Go 语言本身不支持用户实现 arena allocator,这限制了其作为 C 替代品的系统级控制能力。
- 一位游戏开发者分享了一手经验,表示在使用 Go 配合 Raylib 开发游戏时,GC 对帧率几乎没有影响,反驳了 Go 不适合游戏开发的常见观点。
- 有开发者质疑 Solod 宣称的“Go 安全性”存在夸大,指出其生成的代码仍可能返回悬空指针或忘记释放内存,缺乏 Go 运行时原本的内存保护机制。
- 部分评论者认为 Go 本身已是 C 的进化版,由 C 作者基于 UNIX 经验设计,无需通过 Solod 这种子集方案来重新发明轮子。