2 min read

为什么学那么多没用的编程语言?

今年是Rust大年,发展非常迅速,也是今年要重点学习的一门编程语言,但是因工作过于繁忙,遂搁置一边。

上半年只看了一个star只有900多的超小众实验性编程语言Vale,我学了能干嘛呢?P用没有!

那为什么做无用功?
为什么学一些看起来对你的工作毫无作用的编程语言呢?
工作上又用不到,何必呢?

大部分人学习编程语言容易陷入语言自身的细节,各种语法、标准库啊。但我认为除了这些向内学习之外,还有另外一个重要的途径是从外部视角,跳出棋局看庐山。

这里面就包含两个视角,时间线和空间线。

时间线就是历史发展的脉络,它们的成长轨迹,以及家谱追溯是什么样子,并且它中间包含的重要思想有哪些,哲学有哪些,如何演化,未来可能是什么样,这部分主要包含在编程秘史 Galaxy Brain 中。

另一个重要角度就是空间线,当下世界中,当下形势版图中,横向来看,它和别的语言相比是什么样子的,这是一个非常重要的开阔眼界的视角。所有的编程语言都可以看作人类智慧的大熔炉,通过各种思想碰撞辩论各种"战争",才能更好的创造创新,改变世界。

SICP中有一段话非常经典:

编程语言主要是给人看的,方便人们之间准确的交流信息,顺便能够机器执行。

体会这句话,人排在机器前面,所以现代语言的设计重点考虑人的感受以及信息的表达力

据说,具有全局视野,统一视角的人,才具有极高的上限,据谁说,据我说。

那回到学Vale这门语言上,作者在实现一个功能时,参考了市面上各个高级语言的实现方法,总结了各自的优缺点,包括更高级的RAII,Weak Ref实现,Structured Concurrency,Fearless FFI等,这就是时间线。

这些东西在Dart,Swift身上都没看到过类似的文章,真的是收获很多,底层的很多格局都打开了。