在技术栈间跳来跳去,说起来也是迁就自己的 ego 而不考虑解决实际问题的心态作祟。老是选择新的语言、框架就更是如此。

这背后的动力一部分是被景仰和尊重的心理需要(别人都不会用的技术我是大牛),另一部分则是对某项技术的社群形成了一个图像,希望别人用这个图像来描述自己和认同自己。

虽然这种心态也让我获得了一些有趣和有用的经验,比如 Emacs,但总地说来是让我浪费了太多的时间在过各种 tutorial 和写 hello world 上。Language hopping 的结果就是始终无法深入钻研一个东西,也就不知道它能干什么,它的局限在哪里。

这样看来,Emacs 的厉害之处在于“从入门到精通”(精通是个境界,这辈子都不可能精通的)提供了一条连续而无穷尽的学习途径,只要是和文本有关的问题,都可以尝试着用它去解决,并且在这个过程中可能又学到了一点新东西。Python 也是类似,入门门槛低,天花板几乎无限高,但中间每一层都可以探索。

而 Ruby 的问题大概就是这么多年 Rails 独领风骚,基本上要求学习者写完 hello world 和 fizzbuzz 之后就开始研究元编程、DSL 和 Rails 的各种令人眼花缭乱的实现技巧,缺乏更广泛的问题域和连续的学习路径。

作为比较新的语言,Racket 和 Roku 也有类似的问题(不知道为什么我对 R 开头的语言比较感兴趣)。不过我还是想学好 Ruby 去给 DHH 打工的,尽管只会 fizzbuzz (哭