分享 转载王垠的一篇博客 - 我和权威的故事

zealinux · 2014年01月06日 · 最后由 zzz6519003 回复于 2019年06月02日 · 10089 次阅读

来源 http://www.yinwang.org/blog-cn/2014/01/04/authority/

我和权威的故事

每个人小时候心里都是没有权威的,就像每个人小时候也都不相信广告一样。可是权威就像广告,你听一遍不信,听两遍不信,……,直到一千遍的时候,它忽然开始起作用了,而且这作用越来越强。

消灭广告所造成的幻觉,最好的办法就是去尝试,去实地的考察它。有些虚幻的东西只要你第一次尝试就会像肥皂泡一样破灭掉。可是如果你不主动去接触它,它就会一直在你脑海里造成一种美好神圣的假象。很神奇的一个现象就是,权威对人思想的作用其实也跟广告一样。

上大学以前的人因为没有专业,所以还不怎么崇拜权威,大不了追追歌星,影星,球星啥的。而进入大学之后,就会开始对本领域的权威耳濡目染。一遍,两遍,一千遍的听到同学们仰慕某“牛人”或者“大师”的名字,虽然从来没亲身见过,不知不觉就对这人产生了崇拜心理。Donald Knuth, Dennis Ritchie, Ken Thompson, Rob Pike, ... 就是通过这些途径成为了很多计算机学生的权威。以至于几十年以后,他们的一些历史遗留下来的糟糕设计和错误思想还被很多人奉为神圣。

Donald Knuth

很多人(包括我)都曾经对 Knuth 和他的 The Art of Computer Programming (TAOCP) 极度崇拜。在我大学和研究生的时候,有些同学花了不少钱买回精装的 TAOCP 全三卷,说是大概不会看,但要放在书架上做摆设,镇场子。当时我本着“书非借不能读也”的原则,再加上搬家的时候书是最费力气的东西,所以坚决不买书。我就从图书馆把 TAOCP 借了来。说实话我哪里看的下去啊?那里面的程序都是用一个叫 MIX 的处理器的汇编语言写的。一个字节只有 6 位,每位里面可以放一个十进制数(不是二进制)!还没开始写程序呢,就开始讲数学,然后就是几十页的公式推导,证明…… 接着我就睡着了。但我总是听说有人真的看完过 TAOCP,然后就成为了大师。比尔盖茨也宣称:“要是谁看完了 TAOCP,请把简历投给我!”在这一系列的号召和鼓吹之下,我好几次的把 TAOCP 借回来,心想这次一定决心看完这旷世奇书。每次都是雄心勃勃的开始,可从来就没看完过开头那段 MIX 机器语言和数学公式。

看不懂 TAOCP 总是感觉很失败,因为看不懂 TAOCP 就成不了“大师”,可我仍然认为 Knuth 就是计算机科学的神,总能从他那学点什么吧。所以又开始折腾他的其他作品。这就是为什么我开始用 TeX,并且成为中国 TeX 界的主要“传教士”之一。为了 TeX,我把 Knuth 的 TeXbook 借回来,从头到尾看了两遍,做完所有的习题,包括最难的那种“double bend”习题。接着又开始看 MetaFont。开头还挺有成就感,可是不多久就发现学会的那些 TeX 技巧到了临场的时候就不知道该怎么用,然后就全都忘记了。这就是为什么我把 TeXbook 看了两遍,可是看完第二遍之后不久还是忘记得一干二净。

师兄师姐看到我用 TeX,说怎么折腾这么过时的玩意儿。我很气愤他们以及国内学术界居然都用 Word 排版论文,然后我就开始针锋相对,写出一系列煽动文章鼓吹 TeX 的种种好处,打击“所见即所得排版”这种低智商玩意儿。这还不够,又开始折腾 Knuth 设计的 MMIX 处理器,并且认为 MMIX 的寄存器环就是世界上最先进的设计。有几次发现一些无关紧要的小错,就给 Knuth 发 email,居然拿到两张传说中的“Knuth 支票”,并且一度引以为豪。当然像所有拿到 Knuth 支票的人一样,你是不会去兑现它的,甚至有人把它们放在相框里作为摆设。我还没那么疯狂,那两张支票一直在它们原来的信封里。多年以后我到美国想兑现那支票的时候,发现它们已经过期了。

当你心里有了这样的权威,其他人的话你是不可能听得进去的,就算他们其实比你心目中的权威更具智慧也一样。在清华的时候我很喜欢一门叫做“计算几何”的课,就经常跟那门课的老师交流思想。有一次我在 email 里面提到 Donald Knuth 是我的偶像,那位老师很委婉的回复道:“有偶像很好啊,Knuth 也曾经是我的偶像。”我对“曾经”这两个字感到惊讶:难道这意味着 Knuth 现在不是他的偶像了?在我执意的询问之下他才委婉的告诉我,世界上还有很多很聪明的人,Knuth 并不是计算机科学的一切。你应该多看看其他人的作品,特别是一些数学家的。然后他给了我几个他觉得不错的人的名字。

现在回想起来,这些话对我是有深远作用的。那位老师虽然在系里的“牛人”们眼里是个“研究能力(也就是发 paper 能力)不强”的人,但是他却对我的人生转折有着强有力的作用。他引导了我去追寻自己真正的兴趣,而不是去追寻虚无的名气。我发现很多人都在为着名气而进行一些自己其实不感兴趣的事情,去做一些别人觉得“牛气”的事情。我真希望他们遇到跟我一样的好老师。

在现在看来,Knuth 的 TAOCP 真的是所谓的“神圣的白象”(white elephant)。很少有人真的看过,却要显得好像看过一样,并且很喜欢。这就让试图看懂它的人更加自卑和着急,甚至觉得自己智商有问题。别人都看过了,我怎么就看不懂呢?其实 TAOCP 里面的大部分算法都不是 Knuth 自己设计的,而且他对别人算法的解释经常把简单的问题搞得很复杂。再加上他执意要用汇编语言,又让程序的理解难度加倍。有一句名言说:“跟真正的大师学习,而不是跟他们的徒弟。”如果你真的要学一个算法,就应该直接去读那算法的发明者的论文,而不是转述过来的“二手知识”。二手的知识往往把发明者原来的动机和思路都给去掉了,只留下苍白无味的“最后结果”。

TeX 其实也是异常糟糕的设计。它过度的复杂,很少有人搞得懂怎么配置。经常为了一个简单的效果折腾很久,然后不久就忘了当时怎么做的,回头来又得重新折腾。原因就是因为 TeX 的设计没有“一致性”,不可以“compose”,所以你需要学太多东西,而不是学习几个简单的东西,然后把它们组合起来。在程序语言设计者看来,TeX 的语言是世界上最恶劣的设计之一。Knuth 的作品里面有他的贡献和价值,TeX 的排版算法(而不是语言)仍然是不错的东西。可是如果因为这些好东西爱屋及乌,而把他所推崇的那些乱七八糟的设计当成神圣的话,那你自己的设计就逃脱不出同样的思维模式,给用户造成很大的麻烦。仍然对 TeX 顶礼膜拜的人应该看一下 TeXmacs,看看它的作者是如何默默无闻的,彻彻底底的超越了 TeX 和 Knuth。

Cornell

可是权威和名气的威力还是很大的。虽然 Knuth 在我心目中的位置不再处于“垄断地位”,世界上可以占据我心里那个位置的人和事物还很多。在离开清华之后我申请了美国的大学。也许是天意也许是巧合,只有两所大学给了我 offer:Cornell 和 Indiana,而我竟然先后到了这两所大学就读。

说实话,Indiana 给了我比 Cornell 更好的 offer。Cornell 给我的是一个 TA 的半工读职位,而 Indiana 给我的是一个不需要工作白拿钱的 fellowship。说实话我从来没有搞明白 Cornell 这样的“牛校”怎么会给我这样的人 offer,GPA 一般,paper 很菜,而 Indiana 却是真正在乎我的。Indiana 的 fellowship 来自 GEB 的作者 Doug Hofstadter。他从 email 了解到我的处境和我渴求真知的愿望之后,毅然决定给我,一个素不相识的人写推荐信。后来我才发现,我的 fellowship 的资金也是他提供的。

可是 Indiana 和 Hofstadter 的名气哪里能跟 Cornell 的号称“CS 前五”相比啊?Indiana 的 offer 晚来了几天。当收到 Indiana 的 offer 时,我已经接受了 Cornell。Hofstadter 很惊讶也很失望,因为他以为我一定会做他的学生,可是听说我接受了 Cornell 的 offer,他也不知道该怎么办。我只隐约的记得他告诉我,学校的排名并不是最重要的东西……

名气和权威的力量是如此之大,它让我不去选择真正欣赏我并且能给我真知的人。有时候回想起来,我当时真的是在寻找真知吗?我明白什么叫做真知吗?

Cornell 给了我什么呢?到现在想起来,它给我的东西恐怕只有教训,很多的教训。我在一篇老的博文里面提到过,Cornell 的学生一上课就抄笔记,一天到晚都在赶作业。可其实 Cornell 不只是爱抄笔记的学生的天堂,而且是崇拜权威者的天堂。即使你不是那么的崇拜权威,你不可避免的会被一群像朝圣者一样的人围在中间,在你耳边说某某人多么多么的牛。不管你向同学打听哪一个教授,得到的回答总是:“哇,他很牛的!”然后你就去上了他的几节课,觉得不咋的嘛,可是人家就说那是因为你不理解他的价值。这种气氛我好像在另一个地方感觉到过呢?啊对了,那是在 Google。这样的气氛也许并不是偶然,Cornell 的大部分 PhD 同学当时的最大愿望,就是毕业后能去 Google 工作。当然,后来 Facebook 上升成为了他们的首选。

Cornell 的研究可以用“与时俱进”来形容,什么热门搞什么。当时 Facebook 和社交网络正在崛起,所以系里最热门的一个教授就是研究社交网络的。我去听过他几堂课,他用最容易的一些图论算法分析一些社交网络数据,然后得出一些“理论”。其中好些结论实在太显然了,我觉得根本不需要数据分析就能猜到,真是不觉得有什么特别的。可是 Facebook 名气之大,跟着这位教授必然有出路啦,再加上有人在耳边煽风点火,所以有好多的学生为做他的 PhD 挤破了头皮,被刷下来的就只好另投门路了。每次新来一个教授都会被吹捧上天,说是多么多么的聪明,甚至称为天才。然后就有一群的人去上他的课,试图做他的学生。结果人家每节课都是背对学生面朝黑板,写下一堆堆的公式和证明,一堂课总共就没回过几次头。还不如干脆打印出来让大家自己回家看。下面的人当然就是狂抄笔记,有的人甚至带着录音笔,生怕漏掉一句话。人多了竞争也就难免了。上课的同学们就开始勾心斗角,三国演义的战术都拿出来了。作业做不出来就来找你讨论,等你想讨论了就说自己也没做出来。没听懂偏要故作点头状,显得听懂了,让你觉得有压力。自己越是喜欢的教授就越是说他不咋的,扯淡,然后就自己去跟他。自己不喜欢的教授就告诉你他真是厉害啊,只可惜人家不要我。怎么感觉就跟皇帝的后宫差不多呢 ;-) 直到两年后我离开 Cornell 之前,还有好些同学因为没找到教授而焦头烂额。因为两年内没有找到导师的 PhD 学生,基本上等于必须退学。

当我离开 Cornell 之后,有一位国内的学生给我发 email 套磁(从系里主页上找到我的地址),问我 Cornell 情况如何。我告诉他我都已经走人了,并且告诉了他我的感觉,一天到晚抄笔记赶作业之类的。然后又问我一个刚毕业的 PhD 的情况,我说他水平不咋的,博士论文我看过了,很扯淡,解决一个根本不存在的问题。他对我说的话有点惊讶,但还是将信将疑。为了确保万无一失,他在 visiting day 的时候专程去 Cornell 考察了一下。回去又给我 email,说见到好多牛人啊,大开眼界,哪里像你说的那么不堪。还说跟那位 PhD 的导师谈过话,真是世界级的牛人那,他的博士论文也是世界一流的。我就无话可说了,仁者见仁,智者见智,随他去吧,哎。

结果两年之后,我又收到这位同学的 email,说他在 Cornell 还没找到导师,走投无路了,问我有没有办法转学。

图灵奖

说到这里应该有人会问这个问题,我是不是也属于那种没找到导师走投无路的人。答案是,对的,我确实没有在 Cornell 找到合适的导师。然后我就猜到有人会说,就知道王垠水平不行嘛,没搞定导师,被迫退学,哈哈!可是事情其实没他们想象的那么简单。作为一个 PhD 学生,不仅必须精通学术,而且要懂得政治和行情。可是由于学生之间的勾心斗角,他们之间的信息互通程度,是没法和教授之间的信息互通程度相比的。这就造成了“学生阶级”在这场信息战上的劣势。

进入 Cornell 之后我上了一门程序语言的课,就开始对这些东西入迷。可是由于“与时俱进”,Cornell 的研究方向并不是那么平衡的发展的,程序语言领域的专家们早已因为受到忽视而转移阵地,剩下一群用纸和笔做扯淡理论的。说实话,在历史上程序语言方向曾经是 Cornell 的强项,出现了一些很厉害的成果。可是当我在 Cornell 的时候,只剩下两个名不见经传的教员,一个助理教授,一个副教授。其实 Robert Constable 也在那里,可惜的是他做了 dean 之后已经没空理学生了,以至于我两年之后都不知道这个人的存在。我当时也不知道 Cornell 有过这段历史,看不到它的研究重心的移动趋势。我不喜欢那个副教授搞的项目,全是在 Java 上面加上一些函数式语言早就有的功能。可是人家做的热门语言,所以拉得到资金,备受系里亲睐,他的学生们也比较趾高气昂。有一次我跟他的一个学生说了我的一个想法,他说:“你那也能叫研究吗?待会儿我给你看看什么是真正的研究!”其实那只是我的一个微不足道的想法,我也没说那是真正的研究啊,只是随便聊一下而已。我是不可能跟那样的人合作的,所以我就跟那个助理教授做了一点静态分析的项目。当然我们分析的也不是什么好东西,是用 Fortran 写的 MPI 程序。说实话,那个助理教授其实挺有点真知灼见,他有几句话现在仍然在指引我,防止我误入歧途。他也是很谦虚很好的人,可是好人不一定有好报的。后来他没有拿到 tenure 职位,不得不离开 Cornell 加入了工业界,而我就失去了最后一个有可能在程序语言方向做我的导师的人。

没办法,我就开始探索其它相关领域的教授,比如做数据库的,做系统的,看他们对相关的语言设计是否感兴趣。可惜他们都不感兴趣,而且告诉我程序语言领域太狭窄了。我当时还将信将疑,甚至附和他们的说法,可是现在我断定他们都是一知半解胡说八道。如果他们虚心向程序语言专家请教,现在数据库和操作系统的设计也不会那么垃圾,关系式,SQL,NoSQL,…… 一个比一个扯淡。没有办法,我就开始探索其他的方向,我开始了解图形学和数值分析等东西,进展很不错。可是终究我还是发现,我不喜欢图形学和数值分析所用的语言。我想制造出更好的程序语言来解决这些问题。而教授们也能感觉到你不是真的感兴趣,而且他们貌似不喜欢有不同想法的学生,从而会优先考虑对他的东西更加欣赏的学生。

这就让我走到了跟那位向我打听 Cornell 情况的同学差不多的局面,真是心里有无限的苦却没有人可以理解。这时候我想到了系里的一些德高望重的教授,比如得过图灵奖的人,也许这些顶级的大牛会给我指出方向。于是我就联系到一位图灵奖得主,说想找他聊聊。我说我感兴趣的东西 Cornell 貌似并不重视和发展。Cornell 的校训是“any person, any study”,而我却找不到我想 study 的东西。最后我谈了一下我对 Cornell 的总体感受。我说我觉得大家上课都是死记硬背,不是很 intellectual,我不是很确定学术界是否还保留有它原来的智慧和对真知的向往。

我真的是很诚恳的告诉了他这些,只是希望得到一些建议。结果他立马开始用质问的语气问我,你成绩怎么样?考试都通过了没有?哎,说白了就是想搞清楚你是不是成绩不好没人要。怎么就跟高中教导主任一样。于是乎那次谈话就这样不了了之。可是没有想到,这次谈话就造成了我最后的离别。在学生们互相之间勾心斗角,不通信息的同时,系里的教授们其实背后都是“通气”的。他们根本不懂得如何教学,就知道拿作业和考试往学生头上砸,幸存下来的就各自挑去做徒弟,挨不住的就打发掉。这算盘打得真是妙啊。我也不知道他们是什么机制,每个学生对哪些教授感兴趣,他们貌似都了如指掌。然后系里的教授们不知道怎么的,仿佛就都知道有这样一个不知趣的学生,居然敢说学术界的坏话!

大地震前夕的天空总是异常的美。我竟然在过道里看到那位图灵奖教授对我点头致意并且微笑,以前做 TA 时把我呼来唤去还横竖不满意的教授也对我笑脸相迎。我仿佛觉得,我推心置腹的一席话打动了那位德高望重的教授,再加上在图形学和数值计算的扎实进展,给我的学术生涯带来了转机。可是,我那一次真正的领悟了什么叫做所谓的“笑里藏刀”。

由于那个学期上的图形学还有矩阵计算的课成绩都不错,我心想应该能找这两个教授其中一个做导师吧。再加上那些貌似友好的笑容…… 所以没想很多,居然过了一个非常快乐的寒假。没有任何前兆,没有任何直接的通知(email,电话),一封纸信不知道是什么时候默默地进到了我在系里的,基本上从来不看的信夹子里,直到下一个学期开始的时候(2 月份)我才发现。信是系主任写的,大概就是说,由于你的表现,我们觉得 Cornell 不是适合你的地方……

我本来就有想走的意思,可就是喜欢呆在一个地方懒得动。如果你们早一点告诉我这个,我还可以申请转学到其它学校。可是都 2 月份了才收到这样的东西,Cornell 啊 Cornell,你让我现在怎么办?我想我可以说你不仁不义吧?

在这个走投无路的时候,我想起了曾经关心过我却又很失望的 Hofstadter 教授。我厚着脸皮告诉他我在 Cornell 很不开心,我很后悔没有认真地考虑过 Indiana。我很想研究程序语言,可是 Cornell 不在乎这个领域。他回信说,没有关系,你能找到自己喜欢的东西就应该去追寻它,这次不要再冲着名气做决定好吗。Indiana 的 Dan Friedman 就是做程序语言的,你可以联系他,就说是我介绍你去的。

于是给 Friedman 发了 email,很快得到了回信说:“王垠,两年前我们都看过你的材料。我们觉得你是一个非常出众的学生。可惜你最后没有选择我们。你要明白,人生最重要的事情不是名利,而是找到你愿意合作的人。你的材料都还在我们这里。现在招生已经快结束了,但是我会把你的材料提交给招生委员会,让他们破例再次考虑你的申请。”我和 Dan Friedman 的故事就从这里开始了。

##常青藤联盟和“世界一流大学”

我在 Cornell 的经历应该不是偶然,不是因为我比较特殊。跟我同时进入 Cornell 的博士生有好几个几年后没有拿学位就离开了。其中有一个是非常聪明的少年班,18 岁就读 PhD 了,我根本听不懂的理论课他还能拿 A。可是四年后退学去了 Facebook。有些本科生也告诉我类似的经历,说被系里某些教授“整了”。Cornell 的自杀率居美国大学前列。我走了以后有一次一周之类有三个学生从瀑布旁边的那座桥跳下去。我觉得自己在 Cornell 所感受到的压力确实超乎想象,是有可能把人逼上绝路的。现在回想起来真是可笑,因为对权威和名气的下意识的崇拜,我给了一群根本没有资格来教育我的人向我施加无端压力的权力。

我应该指出,这种现象应该不是 Cornell 所特有的。我对清华,还有 Princeton,Harvard,MIT,Stanford,Berkeley,CMU 等学校的学生都有了解。这些所谓的“世界一流大学”或者“世界一流大学 wannabee”差不多都是类似的气氛。你冲着它们的名气和“关系网”挤破了头皮进去,然后就每天有人在你耳边对其它某些人感叹:哇,他好牛啊!发了好多 paper,还得了 XX 奖。跟参加传销大会似的,让你感觉个人的价值被完全的忽视。然后就是填鸭式的教育,无止境的作业和考试,让你感觉他们不是在“教育”你,而是在“筛选”你。这种筛选总是筛掉最差的,但也筛掉最好的,因为最好的学生能意识到你在干什么,他们不给你筛选他们的机会。所以剩下来的就是最一般的,循规蹈矩听话的。在这样的环境里,你感觉不到真正的智慧和真知的存在。GRE 考试所鼓吹的什么“批判性思维”(critical thinking)在美国大学里其实是相当缺乏的。学生们只不过是在被培训成为某些其他人的工具,他们具有固定的思维定势,像是一个模子倒出来的。他们不是真正的创造者和开拓者。

人们在这些大学里的时候都是差不多感受的,可是一旦他们出来了,就会对此绝口不提。自己身上挂着这些学校的镀金牌子,怎么能砸了自己的品牌,长别人的威风?所以每当我批判 Cornell 就有些以前的同学一脸的着急相,好像自己没有吃过那苦头一样。

再见了,权威们

亲爱的同胞们,如果你们觉得有了可以在背后说王垠“被 Cornell 退学”的机会,那么你们就错了。我之所以可以告诉你们这些貌似不可告人的故事,是因为你们可能也会经历这些事情。对权威和名校的崇拜,让你们成为了被“教授阶级”摆布的傀儡和他们在学术战场上的牺牲品。我很幸运的遇到了像 Hofstadter 和 Friedman 这样的好人,而你们也许就没有这么幸运。

几经颠簸的求学生涯,让我获得了异常强大的力量。我的力量不仅来自于 Friedman,Dybvig 等教授的教诲,而且在于我自己不懈的追求。机会只亲睐有准备的头脑,并不是每个 Friedman 的学生都可以像我一样在一个星期之内解决十多年才完成的研究,完全独立的进行思考。我可以说,这个领域在过去一个世纪的研究很少有逃脱过我的洞察力和直觉的。我看到一个东西一般很快就会知道它到底会不会管用,我经常发现一些被认为很牛的设计其实是在解决根本不存在的问题,而真正的问题却没有得到有效的解决。这些问题很大程度上是历史上权威的阴影造成的,它让人们不敢否认这些大牛作品的价值,不敢抛弃它们,所以他们很多的时间花在了解决历史遗留问题,而不是真正的问题。这就是为什么我的英文 blog 标题叫做“Surely I Am Joking”,因为它记录了我为什么认为一些问题是根本不存在的,或者是人为造成的。

曾经 Knuth 是我心中唯一的权威。后来我又屈服于 Cornell 和常青藤联盟的权威和名气。我因为图灵的威名而误以为图灵奖得主都是德高望重的前辈。应该说,在 Indiana 的日子里,权威主义的影子也是经常出现的。Indiana 学生们的权威比较特殊一点,不然就是 Dan Friedman,不然就是 Kent Dybvig,不然就是 Tony Hoare 之类的。所以你有时据理力争的时候就会听到人这样跟你辩论:“Kent 说……”不管你说什么,他们都想抬出一个明星来压倒你。我很尊敬 Friedman 和 Dybvig,但我也看到他们的一些思维方式并不是那么的正确,我从来不引用他们的话作为理论依据。我也不喜欢 Indiana 同学这种抬出权威来镇压异议的行为。应该指出的是,权威们自己有时候对这种行为的产生是不知情的。谁能防止你引用我的话去压倒跟你辩论的人呢?所以这很多时候不能归咎于权威自己,而应该归咎于那些盲目崇拜他们的人。对权威的崇拜其实现实了一个人的弱小。如果你有自己的想法和判断就应该可以据理力争,又何必抬出个名人来压制别人呢?

在一而再再而三的上当受骗之后,我终于把所有的权威们从我的脑子里轰了下去。这些权威包括所有大学的所有教授,所有的图灵奖得主,Unix 和类似操作系统的设计者,所有的程序语言设计者,图灵,他的导师邱奇,他的师兄 Kleene,被程序语言研究者奉为权威的逻辑学家们比如 Per Martin Lof,各大 IT 界“牛公司”,美国国防部,美国宇航局,…… 我现在的实力其实超越了 Cornell 和其他任何“牛校”的教授。我的学识不再接受学术界和任何人的评价。我们完全处于平起平坐的低位。如果你觉得你心目中的超级偶像在我之上的话,请先问问我对他们的博士论文或者图灵奖作品有何评价 :-)

不再是我心目中的权威并不等于我鄙视他们或者不尊敬他们。他们在我的脑子里失去的只是他们在很多其他人脑子里的那种被膜拜的地位,那种你可以用“XX 人说过……”来压倒理性分析的地位。现在他们在我心目中是一群普通的,有血有肉,有好心肠或者坏心眼的,高傲,谦虚或者虚伪的人。他们设计的东西,好的地方我可以借鉴,但是没有任何人的东西我是不加批判全盘接受的。我深深地知道接受错误的想法的危害性,所以我也希望大家都具有批判的思维,不要盲目的接受我说的话。我不喜欢“大神”或者“牛人”这种称呼。

最后我希望国内的同学们,不要盲目的崇拜国外的所谓“大师”,“牛校”或者“牛公司”。祝你们早日消灭掉心里的各种权威以及对他们的畏惧心理,认识到自己和自己国家的价值和力量。

新年快乐!

我觉得王垠最厉害的两点: 1.特别会宣传自己。 2.把也就一般难的问题,夸大到非常难的地步,然后他可以解决,以此来诱惑你崇拜他。

并不是每个 Friedman 的学生都可以像我一样在一个星期之内解决十多年才完成的研究,完全独立的进行思考。

我现在的实力其实超越了 Cornell 和其他任何“牛校”的教授。我的学识不再接受学术界和任何人的评价。

大哥不去搞 XIE 教传销 真是白瞎这个人才了。

#1 楼 @rasefon 所以要向王垠学习

“我现在的实力其实超越了 Cornell 和其他任何“牛校”的教授。我的学识不再接受学术界和任何人的评价。我们完全处于平起平坐的低位。如果你觉得你心目中的超级偶像在我之上的话,请先问问我对他们的博士论文或者图灵奖作品有何评价 :-)”

当他这样说的时候,就本身把自己当做了一种权威。有种“我认为我也是权威,但是权威不认可,所以要打倒权威。大家不要相信权威。但我是权威。”的意味~~

楼主,你转载获得作者同意了吗?或者你就是作者?

核心就是: 不要盲目崇拜“权威”, 小时候特别崇拜老师,后来发现他们说的话现在看来简直毫无逻辑。 那时候无比的失落。 估计王垠就是这样的心情吧。

另外他的分析器在 github 上,有空的可以去看看,不清楚牛不牛。 https://github.com/yinwang0/pysonar2

成果应用在https://sourcegraph.com/上面。 可以建立和查常看好几种语言库的索引。

说明在http://www.yinwang.org/blog-cn/2013/10/29/pysonar2/这里,他说: ''' 经过一阵子考察之后,我发现 PySonar2 仍然是当今最先进的 Python 静态分析器。其分析的深度和准确程度其实超过了所有的 Python IDE(包括 PyCharm 3.0 在内)。PySonar2 做的是跨过程,具有精确控制流的分析,而现在最好的 Python IDE 仍然是局部过程分析。 ''' 不明觉厉~

有一句话说 "少年杀死了龙,于是自己变成了龙。“


从这句话里

如果你觉得你心目中的超级偶像在我之上的话,请先问问我对他们的博士论文或者图灵奖作品有何评价。

可以看出,王垠这篇文章的目标对象是对没有成为权威的人说的,权威们可能不喜欢和他论战,维护自己的晚节比较好。


现在他们在我心目中是一群普通的,有血有肉,有好心肠或者坏心眼的,高傲,谦虚或者虚伪的人。他们设计的东西,好的地方我可以借鉴,但是没有任何人的东西我是不加批判全盘接受的。我深深地知道接受错误的想法的危害性,所以我也希望大家都具有批判的思维,不要盲目的接受我说的话。我不喜欢“大神”或者“牛人”这种称呼。

我觉得这就是王垠可爱的地方,而且他也做出了很多优秀的成绩,见 https://github.com/yinwang0,值得我们大家欣赏和学习,这就够了!

#7 楼 @mvj3 成绩在哪里?

#8 楼 @bhuztez 开源项目比论坛里的大部分人做的都优秀吧。如有不当,请指点。。。

#9 楼 @mvj3 如果这套理论都是他原创的,我觉得很了不起,但实际上不是。他并没有把他做的东西和他理想中的东西做比较,而是和现有的产品做比较,现有的产品在他眼里,不怎么样,所以他觉得自己得很不错。 如果想了解类型系统,推荐看看这本书,王垠做的东西没有哪怕一点点超越这本书里所讲的东西: http://book.douban.com/subject/1761910/

#10 楼 @rasefon 感谢推荐这本书,程序语言设计方面我不太懂,回去我自己研究一下:)

或者举出个和他一个领域的,我指的是实现方面,做的比他更好的,还有推荐吗?

#11 楼 @mvj3 我觉得这个 whiley 就挺好的 http://whiley.org/

#11 楼 @mvj3 语言类型系统做的很优秀的有 Standard ML,我拿 ruby 的写法来举一个例子:

def length(a)
   if size(a) == 0
      return 0
   else
      return length(tail(a)) + 1
end

假如 size 的类型已知,是一个 list->int 类型的函数,tail 函数的类型也已知,是一个 list->list 的函数,那么 length 函数的类型就能够推导出来,即便它没有指明参数类型和返回值。过程如下: 第一个 if 语句处,因为 size 接受一个 list 类型的参数,所以 a 的类型必然是 list,此处返回值是 0,故返回类型是 int,同样 else 分支也能得出一样的结论,所以 length 函数的类型就是 list->int,虽然它什么都没写。

#12 楼 @bhuztez 。。。我能说 github 上面的 star 数量没有王垠的多吗,抱歉有点水帖子了

#13 楼 @rasefon 哈哈,细节性的我不是专业,这方面可以和 @bhuztez 讨论吧:)或者就数个语言类型系统的实现的优劣一一比较一下,让我和其他外行人瞻仰。

老实说,我觉得王垠说的很多东西我也很赞同,比如对偶像的崇拜,名校效应等,他的问题出在他自己身上,太理想化了。

#14 楼 @mvj3 王垠就是整天说我很厉害我非常厉害大家都没我厉害

Whiley 的博客内容很多的,分析不同类型系统的异同,还有 Whiley 的类型系统是怎么实现的,有哪些优化手段 ... 大部分时候例子也都是拿具体代码来的,就算你没听说过也能很快知道他在讲什么

#14 楼 @mvj3 这些东西很简单的啦,说穿了就两字 代数 还是字面义 ...

#15 楼 @rasefon 他说的不都是无比正确的废话么 ...

#18 楼 @bhuztez 老百姓们不就喜欢听这些废话嘛哈哈。

王垠是个有鲜明特色的人,也有点真本事,我喜欢看这样的人写的真实观点的文章。

#16 楼 @bhuztez whiley 的博客指的是这个网站么? http://whiley.org

又看了王垠的博客,有一篇跟 Ruby 有一些关系的文章。见链接: http://www.yinwang.org/blog-cn/2013/11/13/sg3/

牛人没有必要去贬损其它牛人,做到这一步都不容易

#23 楼 @filetype 能够找到一个让自己佩服的人并与之一起工作是非常幸福的事情

#13 楼 @rasefon 只有在 支持 subtyping (继承) 的语言里,才能做这种递归函数的类型推断。

具体说来,在 ML 中,return 0 提示函数可能返回 int 类型,而 ML 是不支持继承的,int 没有父类,那么就能确定这个函数返回类型是 int 了。而在 Scala 中,IntObject 的子类,所以返回类型也有可能是 Object -- 那就等于什么都没推断出来,类型推断到方法的边界就传播不下去了,所以在 Scala 里你还是要自己把这个方法的类型写出来。

另外就算是在 ML 里,如果递归函数没有那个 return 0 的选择支,也推断不了类型。

#26 楼 @luikore + 只能 int -> int -> int 应该也行的

#26 楼 @luikore Scala 和 Java 兼容比较好啊

王垠 是谁啊?怎么老说他?

#27 楼 @bhuztez + 也不能确定这里到底是 real + int 还是 int + int

#30 楼 @luikore 像 OCaml 那样,两种是不同的,浮点数用 +. ...

#31 楼 @bhuztez 谢谢指正,果然 OCaml 的 + 运算符也不能多态。所以要像 Haskell 这种引入了 type class 的才能统一成 + ...

我完全不想看到这个人的任何文章或信息 结果很多我去的站点 总会有人转载 所以他的一举一动我总会知道 感觉像被强制订阅了人肉 rss

#26 楼 @luikore 没有 return 0,就像归纳法没有奠基。。。 之前我就想过,subtyping 就返回闭包集。

#26 楼 @luikore 为什么语言要设计成有对象呢?为什么不能设计成只有简单 struct,对象的作用其实就是 side effect。本就不应该和什么封装之类的扯上关系,唯一用得到的地方就是可以复用。复用可以完全不必用继承实现。

#35 楼 @rasefon 那你为啥还不用 Erlang ...

#36 楼 @bhuztez Joe Armstrong 说,学习一门语言的最好方法就是去实现它哈哈。

#37 楼 @rasefon 实现 Erlang 还是比较麻烦的 ...

#34 楼 @rasefon 这个和归纳法的联系 (良基归纳法,结构归纳法), 可以参看 Foundations of Programing Languages, 书中代码是用 ML 描述的

#39 楼 @luikore 有两套 jargon 转换不过来咋办 ...

#35 楼 @rasefon 所以复用还有 Haskell 那条路,最后你会发现静态语言不管推断多强大最终还是需要你在写代码的时候就已经清楚知道要干啥了。而写 rails 往往是先把东西搭起来再看看可以干啥...

#39 楼 @luikore 你说的是哪本书?我以前看过点形式语义的东西,里面有介绍归纳法。我觉得这类偏逻辑的书废话太多。

#40 楼 @bhuztez 良鸡归纳法就像模板函数,关系就是其中的 T,数学归纳法和结构归纳法是良鸡归纳法的一个实例。

#41 楼 @luikore 所以 rails 很慢啊,人家都不需要运行时检查的。

#40 楼 @bhuztez 何止两套,一门语言一套 jargon... #42 楼 @rasefon 也是讲各种公理语义,操作语义,指称语义的... John Mitchell 那本。

类型推导是个 NPC 问题,编译时检查更慢不可耐写不动...

#45 楼 @luikore 公理语义和指称语义就是装逼用的。

#45 楼 @luikore 我是说怎么也至少要同时能在两套 jargon 之间互转,压力太大了

#42 楼 @rasefon 更可恶的是还不能运行

他的博客没有评论功能,很有勇气的不需要别人的评判,自在自得

#49 楼 @jazzi 这哪需要什么勇气,只要懒得听别人罗嗦就会这么做的

好吧。我承认,我是想转贴这篇帖子,然后多了个心眼,搜索了下,发现有人发了,才到这里的。

不过看了某些回帖,我真觉得还不如 不转贴 好了。

不认可他的观点,可以争论,虽然我想转贴,可我并非完全认可他的观点,甚至有些观点持完全相反态度,可是,去评价他这个人有意思吗?

取其精华,去其糟粕。 精华就是,不要盲信权威。 所以没必要为谁是权威的话题争论不休。

Talk is cheap, show me the code.

不喜欢他 Talk 论调的,可以看他的 code .反正我觉得 👍

bhuztez 回复

大兄弟你何德何能 秀出来

需要 登录 后方可回复, 如果你还没有账号请 注册新账号