写代码这么些年,最让我安心的还是Haskell。不是追时髦,它学院气重得要命,但用顺了再看别的语言,总感觉在裸奔。
最毒的是纯函数式。其实数据不可变、函数没副作用,你脑子里就不必再追着一堆隐秘状态乱跑。命令式代码里十次有八次bug是某处偷偷改了共享变量,半夜给你崩一下。Haskell直接把这扇门焊死,状态没法暗搓搓地变,这类坑从源头就不存在了。
类型系统也得说一句。它的强类型不是累赘,是免费文档。函数签名摆在那,编译器基本把能错的都拦在门外,编译过常常就能跑通。新手嫌报错啰嗦,我倒觉得它在替你做code review。
惰性求值加高阶抽象也挺上头,不少算法用Haskell写,读起来跟说人话似的,几行把事讲明白。代价是性能你得自己心里有数。
作为主力撸过一阵之后,再回去写别的,总会下意识找那个"纯"的感觉。