想对王垠同学说的一些话

说起来,王垠同学的求学之路上丰富的人生经历还是很丰富的,这一点我非常的羡慕。当然,这最大程度上应该归功于他的家庭教育背景。本科期间学习Linux和Latex,研究生期间改善了一个计算几何算法,后来不知怎么的,出国念书,受到了编程语言领域(TCS的一个分支)大师的指点。并且还在Google实习过。

并且,据他说,出国多多少少跟一个女孩有关系。至少在谈恋爱这件事情上也算比较圆满了。

那么,问题出在什么地方?

其一,未能在主流学术界站住角(成为教授什么的)

其二,未能在主流工业界赚到大钱。虽然索引源代码的Sonar库是很厉害,但Scheme代码太小众,未能如C++的LLVM有那么大的影响力,也不及Hadoop那样形成了一个生态体系。虽然王垠同学曾经鄙视过LLVM,可是Scheme/LISP这样的小众语言由于其简化的语法结构,用来做编译器的研究有点取巧(说实在的,Scheme的syntax-rules我觉得最不好理解,比C语言的宏或者C++模板要奇怪多了),而C++/Java作为主流的OOP语言,才能得到开源社区最广泛的参与(但是LLVM的TableGen模块所描述的语法也相当的不好理解)。

我是一直关注王垠同学的,对他的不想把自己掌握的东西拿出来分享的说法不感苟同。重要的不是你是否愿意分享,而是即使你愿意,你也不一定能够有效地分享:把细微的道理讲得透彻而明白。说白了,编程语言领域的东西即使再高深,也仍然还没有脱离图灵机和lambda演算的经典TCS范畴,什么时候可以在量子计算、生物计算、或者“连续计算”这些领域有实用而突破性的进展呢?

至于价值一说,用金钱衡量的价值也只能看它对于他人的效用和他人愿意为此付出的费用的总和。决不是以它完成的难度或者理论的深度来衡量。要创造价值,必须发现有价值的需求。依我看来,Google最有价值的是它的分布式数据库技术。决不是什么数据中心(Facebook也有),也不是什么Ad Words(这玩意儿真不稀奇),我很奇怪,为什么到现在其他的公司还是无法在分布式系统上做到与Google并齐的程度——原因可能是那几个人始终没有跳槽到其他公司,或者说,核心的东西并没有开源,虽然有几个paper。

但是Google在编译器技术领域真不是领导者,GCC/LLVM都不是Google控制的。不过Google有基于JIT的v8、Dalvik、乃至ART。以及使用堆作为栈存储的Go语言。

类型理论和抽象解释真有那么高深吗?我看未必。按照我的理解,普通的解释器执行是name以value的代换,而所谓的抽象解释其实可以理解为name以type的代换。不过要注意的是,FP里的type,或者说编程语言领域里的type,跟OOP语言里的type不是一回事。

我认为TCS现在能够做的东西不多,包含数学、理论物理。不能破解的东西还是不能破解,就计算机应用领域来说,云计算和大数据炒得热门,但人工智能和机器学习似乎还是没有什么突破性的成果出来。也许我们可以考虑往多维时空数据库的应用领域加上一些AI/ML再发展发展(当然不是BI/DW里所说的OLAP多维分析)

有时候似乎就是在确定里面寻找不确定,又在无序中寻找有序。但计算机只能以帮助人来思考、方便人去生活、增加人的乐趣为目的,决不应该以通信监控、信息不对称、控制人的自由为目的。

题外话了。

你可能感兴趣的:(程序员心得体会)