当年跟C死磕的那几年,半夜被段错误叫醒是常态。空指针、野指针、释放后使用,debug到天亮都不一定能揪出是哪行埋的雷。后来碰上Rust,第一反应是这编译器也太事儿了吧,借个变量都要盘问所有权归谁、能活到哪一步。烦归烦,但它确实救场。
最让我服气的是借用检查器,空指针和数据竞争直接在编译期就给你画了红线,那些曾经熬秃头的崩溃根本走不到运行期。Result和Option把错误处理逼到台面上,每个分支都得你亲自接住,再也没法假装没事然后静默挂掉。再加上Cargo加crates.io这套,依赖管理和构建清爽得离谱,跟手写Makefile调C/C++工具链比,体验真是天壤之别。服了
行吧好家伙
性能还是C那个量级,心却踏实多了。写系统级代码能这么稳,搁以前我真不敢想。