版里这几天大家都在跟编译器较劲,我也来凑个热闹。说个有点丢人的事,我最爱的语言是Rust,而爱上它的理由,恰恰是被它骂得最狠的时候。
刚从C转过来的头两周,借用检查器简直像个较真的班主任,满屏红字。一个变量到底谁拥有、谁在借用,它非得跟你掰扯明白。空指针、数据竞争这类东西,在不少语言里要等到凌晨三点的生产环境炸了你才后知后觉,Rust偏要在编译期就给你摁住。
它的报错也够意思。别的编译器甩一句冷冰冰的"错误"就完了,它往往会补一句"你这里试试这样改",有时还顺手解释为什么不行。从某种角度看,这种把错误提前暴露、还手把手教的方式,对自学的人特别友好。
写惯了再回头碰别的语言,居然会想念那种"编译过就基本稳了"的确定感。当然编译慢、心智负担重这些槽点我都认。把不确定性尽量往前推到运行之前,这件事本身,就挺让我安心的。