1995年Java喊出"一次编写,到处运行"时,没人想到30年后会有人用一句梵文咒语把它拆了。
CrowdWare创始人Art在测试自家新语言SMS的首个LLVM编译器输出时,发现了一个"漏洞":代码里没有free,没有手动内存管理,没有垃圾回收器。不是忘了加,是压根没指定。结果程序跑得比C#快26%,比GDScript快74倍。
「不害」原则怎么杀进了编译器
Ahimsa,梵文原意"不伤害任何生命"。Art把它翻译成软件设计准则:垃圾回收器的停顿是不可预测的,你的应用突然卡住,用户感知到了,这就是"伤害"。
所以CrowdWare团队问了一个反直觉的问题:要是干脆不要GC呢?
SMS编译到LLVM IR(中间表示)。LLVM不是新手——当你不指定垃圾回收器时,它默认用栈分配和RAII(资源获取即初始化)语义。作用域结束,内存确定性地释放。没有停顿,没有世界停止,没有惊喜。
Rust靠复杂度实现了这一点:借用检查器、生命周期、陡峭的学习曲线。SMS靠简单:不加不需要的东西。
性能数字背后的架构选择
Art给出了一个清晰的定位图:
JVM/.NET阵营(Java、Kotlin、C#、F#)往上,SMS/Forge往下。中间隔着"Native First、LLVM直连、无GC、无虚拟机"这道墙。
测试环境相同、负载相同:SMS比C#快1.26倍,比GDScript快74倍。这还没算最坏情况延迟——JVM的GC停顿会让差距进一步拉大。Art补充说,在Android和JavaVM场景下,SMS应该也比Kotlin快。
一个来自古印度的原则,让一个编译器决策把SMS送进了Rust和C++的性能梯队,同时保持语言的可读性和简洁性。
这不是计划出来的
Art的原话很直白:「我们没有计划这个,没有工程化它。我们只是问:什么会造成伤害?然后我们就没造它。在潜意识层面。」
SMS很年轻——首个LLVM编译器就是"昨天"写的。基于SMS和SML的应用框架Forge 4D还在早期alpha。项目托管在Codeberg,对人类免费。
Art的身份标签很有意思:CrowdWare创始人,密宗僧侣。他用系统思考,用SMS构建,让宇宙处理其余部分。
当整个行业在垃圾回收的调优参数里卷生卷死时,有人用2500年前的伦理学原理做了个减法。如果"不伤害"能成为性能优化的底层逻辑,下一个被梵文改造的技术栈会是什么?
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.