写C那会儿最怕半夜被电话叫醒,段错误这种东西从不挑你写代码的时候发作,偏要等跑上生产才翻脸。空指针、野指针、double free,debug到天亮是常事,血压跟着core dump一起飙。
后来折腾上Rust,最打动我的倒不是语法多新颖,而是它把内存安全这件事直接挪到了编译期。所有权和借用检查一开,编译器替你管着每一块内存谁还能碰,悬垂引用和数据竞争在 cargo build 那一步就被拦下来,根本轮不到运行时崩给你看。
严格来说更实在的是 zero-cost abstraction,为了安全多包的那层抽象,跑起来并不比手搓的C慢。安全等于慢这个老黄历,算是被它撕了一角。
Cargo 也省心,拉依赖、跑测试、发 crate 一条龙,习惯了手写 Makefile 的人第一次用有点恍惚。用了一阵回头看C,谈不上嫌弃,只是那种时刻悬着心的焦虑,确实被编译器接过去大半了。