折腾过不少语言,我最后喜欢上的不是语法最甜的那门,是报错最狠的那门。早些年写那种静默失败的东西,跑起来不吭声,出事了半夜查到头秃。后来换了个带严厉编译期检查的语言,头回被满屏红字怼脸的时候真有点懵。
但久了就品出味来了。它的报错不像有些工具甩你一行莫名其妙的栈,倒像个耐心的老哥,逐条告诉你哪错了、为什么错,顺手把改法都写给你。新手照着改都能自己修好,根本不用到处发帖求人。
其实更关键的是那个所有权和类型检查。运行之前编译器就逼你把数据怎么流转、谁拥有谁想清楚了。坑全在编译阶段踩完,运行期反而特别省心。我现在敢大刀阔斧重构,就是因为知道只要它不骂我,基本就真没问题。比起那些 silently fail 的,会骂人的编译器反而让人更安心。好报错比好文档更催人长进,这话我现在是信了。