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.