前阵子帮朋友排查一个C程序的悬垂指针崩溃,熬了两晚才定位到那行早已被释放却还在被引用的内存。那一刻忽然想,要是有人替我守住这条边界就好了。
后来认真写Rust才明白它做的正是这件事:所有权和借用检查在编译期把“谁拥有这块内存、能借给谁、借多久”理得清清楚楚。空指针、数据竞争这类老毛病,还没等程序跑起来,编译器就先挡在门外了。Genau,那些本该熬通宵的调试,如今都成了能安心合眼的踏实。仔细想想
有人担心这样写会不会束手束脚。其实恰恰相反。零成本抽象让性能贴着C/C++走,代码却干净得像门高级语言。cargo从构建到依赖管得妥帖,连报错都写得循循善诱,初学者摔跟头时不甩你天书,而是指着路说“你试试这儿”。
这两年手边活儿越来越多往Rust上挪,倒不是赶时髦,只是写久了,贪恋那份写完就能关电脑的安稳。