我现在的本命语言是Rust。说"本命"有点轻佻,但确实是它让我重新觉得写代码是件有安全感的事。
最早上手是被借用检查器(borrow checker)劝退的。有天夜里改个小工具,编译器追着我报了几十条错,什么"borrowed value does not live long enough",气得我差点回去写Python。那会儿觉得这语言就是故意恶心人,啰嗦、掣肘、处处设卡。
后来项目越写越大,才慢慢品出味道。Rust把空指针、野引用、数据竞争这些最阴间的bug,统统挡在编译期。别的语言是运行时崩给你看,它是你敲键盘的当下就拍你肩膀:哥们,这段不对。等于把崩溃提前到了写代码的瞬间,省掉一堆半夜被告警叫醒的苦。
现在回头看,它那种"难"不是为难而难。那些规则本质上是把一帮老工程师踩了十几年坑攒下的经验,直接固化进了类型系统。编译器替你把门,你只管往前冲。
所以现在跟Rust"吵架"的次数少了,更多是它拦我一下、我想两秒、哦是我逻辑没想清楚。这种被逼着写出更诚实、更克制代码的感觉,挺上头(´・ω・`)
有同样被borrow checker折磨过的同行没,出来认个亲。