王垠:我不是编译器专家

h
helpme
楼主 (未名空间)

工作多年以来,我深刻体会到一个现象,那就是做过“编译器”工作的人,哪怕只做了点皮毛,都容易产生高人一等的心理,以至于在与人合作中出现各种问题。由于他们往往也存在偏执心理和理想主义,所以在恶化人际关系的同时,也可能设计出非常不合理的软件构架,浪费大量的人力物力。

我曾经提到的DSL例子,就是这样的两个人。他们都自称做过编译器,成天在我面前高
谈阔论,甚至在最基础的概念上班门弄斧,显示出一副“教育”其他人的姿态。其实他们只有一个人做parser,还不算是真正的编译器工作,却总显示出高深莫测的模样。哲人一样捋捋胡子,摇摇脑袋,慢条斯理,嗯……另外一个完全就是外行,只是知道一些术语,成天挂在嘴边。每次他一开口,我都发现这个人并不知道他自己在说什么,却仍然洋洋得意的样子。

我是被他们作为专家请来这个公司的,来了之后却发现他们最喜欢的事情,是在我面前显示他们才是“专家”。他们也问过我问题,可是每一次我都发现他们并不想知道答案,因为我说话的时候他们并没有在听。不管说什么问什么,他们似乎只想别人觉得他们是最聪明的人。

虽然对其他人趾高气昂,全懂了的样子,对于Brendan Eich(JavaScript 语言的创造
者)这样有权势的人物,却是各种跪舔,显示出各种“贱”来。我虽然尊重Brendan
Eich个人和他的语言,然而很明显他是半路出家,对语言设计并没有很深的造诣。对语言稍微有点研究的人,都不会对这种人物显示出谄媚的态度。

“Yin,你知道X吗?” 当然他期望的是你说不知道,这样他就能像大师一样,把这个
刚学到的术语给你讲半天。每当这个时候,我就想起一个前同事喜欢说的一句话:“你问我,是因为你不知道,还是因为你知道?” 其实他问的这个概念X,常常是我很多年前热心过,试验过,到最后发现严重问题,抛弃了的概念。

更糟的事情是,这其中一人还是Haskell语言的忠实粉丝,他总是有这样的雄心壮志,
要用“纯函数式编程”改写全公司的代码……

遇到这样的人是非常闹心的,到了什么程度?他们经常雄心勃勃用一种新的语言(
Scala,Go之类)试图改写全公司的代码,一个月之后开始唾骂这语言,两个月之后他
们的项目不了了之,代码也不知道哪里去了。然后换一种语言,如此反复……

后来实在没做出什么有用的东西,这两个人又突发奇想,开始做DSL,闹得团队不得安
宁,有点资历的工程师(包括我和一位早期Netscape的资深工程师)都极力反对,向大家指出更容易,更省力的解决方案。然而由于管理层根本不懂,所以任凭这两个人拍胸脯,没有困难制造困难也要上。因为烦于他们在我面前高谈阔论,而且对这个DSL的事
情实在看不下去了,我干脆换了一个部门,不再做跟语言和编译器相关的事情。

现在这个DSL做了好几年了,仍然很垃圾,然而公司人傻钱多,居然请到了Java界的资
深人物来给这 DSL写specification。这两人也分别升职为Principal Engineer和
Distinguished Engineer。当看到“Distinguished Engineer”这个title,我觉得太
好笑了。当然,我相信有资历的PL人都会明白这DSL的问题,我想象着这位Java人跟这
两人将会发生的冲突。如果他对此没意见的话,那他的水平还真是值得怀疑了。

在Coverity和其它公司遇到的编译器人,基本是差不多的问题。他们下意识里把自己看成是最高档次的程序员,所以对其他人显示高高在上的气势。

Coverity有一个ABC工程师,因为自己写过完整一点的静态分析,比较会折腾C++,总是趾高气昂的对待其他人,甚至直接对别人说:“你写的这是什么代码啊?我绝对不会写出这么烂的代码!” 还有一个从斯坦福编译器教授Alex Aiken那里毕业的PhD,在
Coverity做构架师,平时一行代码不写,也不看其他人写的,说不出见解深刻点的话,因为与实际工程脱节,尽在瞎指挥。地位最高的 Distinguished Engineer,成天优哉
游哉,看一些关于parser的话题,似乎parser是他终身的研究方向,也不做什么实事。

我所在的每一家公司,只要工作跟编译器沾边,总是不免遇到这样的人。其它的我就不细讲了。

有些美国公司在招人的时候表示,对简历里提到“做过编译器”的求职者有戒备心理,甚至直接说“我们不招编译器专业的人”。以至于我也曾经被过滤掉,因为我做过编译器相关工作。编译器专业的人本来可以做普通的程序员工作,为什么有公司如此明确不要他们呢?我现在明白为什么了,因为自认为是“编译器专业”的人,有大概率是性格很差的团队合作者,喜欢显示出高高在上,拯救世界的姿态,无法平等而尊重的对待其他人。

有些人也把我叫做“编译器专家”,喜欢在我面前提“编译器”这个词。我一直听着别扭,却没有正式拒绝这个称呼。每每遇到“真正”的编译器专家,我总觉得自己不是那个圈子的。不是我不能做编译器的工作,而是编译器领域人士的认识水平,理念和态度和我格格不入。

所以我应该明确表个态:我不是编译器专家,而且我看不起编译器这个领域。我一般不会居高临下看低其它人,然而对于认识肤浅却又自视很高的人,我确实会表示出藐视的态度。现在我的态度是针对编译器这整个领域。真的,我看这些人不顺眼很多年了。

就最后研究的领域,我是一个编程语言(PL)研究者,从更广的角度来看,我是一个计算机科学家。有人听了“科学家”一词总是误以为我在抬高自己,而在我心目中“科学家”仅仅是一个职业,就像“厨师”一样,并不说明一个人的水平和地位。PL研究者被叫做“计算机科学家”是很恰当的,因为PL领域研究的其实不只是语言,而是计算的本质。通常人公认的计算机科学鼻祖Alan Turing也可以算是一个PL研究者,虽然他认识
水平比较一般。

IT业人士经常混淆编程语言(PL)和编译器两个领域,而其实PL和编译器是很不一样的。真懂PL的人去做编译器也会比较顺手,而编译器专业的却不一定懂PL。为什么呢?因为PL研究涵盖了计算最本质的原理,它不但能解释语言的语义,而且能解释处理器的构架和工作原理。当然它也能解释编译器是怎么回事,因为编译器只不过是把一种语言的语义,利用另外一种语言表达出来,也就是翻译一下。PL研究所用的编程范式和技巧,很多可以用到编译器的构造中去,但却比编译器的范畴广阔很多。

深入研究过PL的人,能从本质上看明白编译器里在做什么。所以编译器算是PL思想的一种应用,然而PL的应用却远远不止做编译器。每次有人说我是做编译器的,我都觉得是一种贬低。我只不过拿精髓的理念稍作转换和适应,做了点编译器的事情,就被人叫做“编译器专家”,而我根本不是局限在这个方向。

专门做编译器的人,一般是专注于“实现”别人已经设计好的语言,比如C,C++。他们必须按照语言设计者写好的语言规范(specification)来写编译器,所以在语言方面
并没有发挥的空间,没有机会去理解语言设计的微妙之处。

许多做编译器的人并不是从零开始写的,而是拿现成的编译器来修改,所以他们往往被已经存在的,具体的构架限制了想象力。极少有编译器人完整实现过一个语言,都是在已有的基础上小改一下,优化一些局部的操作。这大大限制了他们可以获得的全局洞察力。

很多编译器工程师并没有接受过系统的PL理论教育,有些甚至是半路出家,在学校里根本没碰过编译器,也没研究过PL。比如我的第一个公司Coverity,招进去的很多人从来没碰过编译器,也不懂 PL。我进去不久,Coverity的VP满口牛气向新人宣布:“我们
会教会你们一切!” 然而很可惜,PL的精华根本不是一个公司在短期能够传授的。
Coverity没有这个能力,Google,Facebook,Intel,微软……都没有这个能力。

很多半路出家的编译器工作者以为在公司跟着做项目,折腾下LLVM之类,就会明白所有的原理。然而事实是很多人这样做了十几年,仍然不明白最基础的原理,因为他们被具体的实现限制了想象力。PL理论联系着计算的本质,不明白这些原理就只能看到肤浅的表面,死记硬背,遇到新的现象就没法理解了。跟LLVM专家聊天,我很多时候发现他们的知识是死的,僵化在LLVM具体的实现里了。

由于缺乏对PL理论的深入研究,编译器人往往用井底之蛙的眼光来看待语言,总以为他们实现过的语言(比如C++)就是一切。一个语言为什么那样设计?不知道。它还可以
如何改进?不知道。“它就是那个样子!” 这是我常听编译器人说的话。当然很多编
译器人连C++都没法完整实现,只是在已有基础上做了很小的改动。

许多编译器人把C++的创造者Bjarne Stroustrup奉为神圣,却不知道Stroustrup在PL领域并不是闪耀的明星。Stroustrup曾经在2011年11月11日来到IU进行关于C++11的演讲
,IU的资深PL教授们都有到场。Stroustrup谦卑的说:“我需要向你们学习很多东西来改进C++” 看似“谦虚”,其实他说的是实话,因为IU的教授们在语言设计上确实比他强很多。

Stroustrup的整场演讲,我没有看到任何新颖的突破,全都是几十年早已出现,我天天都在用的东西。然而这些C++的改进被编译器人看作是重大的历史性的突破,因为他们
很多人根本没用过其它语言,甚至不知道它们的存在。

后来我的一个能力比较弱的PL同学进入了C++委员会,为改进C++做一些事情。从她的描述和表现,我感觉C++委员会气氛十分的官僚,古板和愚钝。她进了C++委员会之后,感觉整个人都傻了一样,很肤浅的小事也说得眉飞色舞,好像什么重大的突破一样。真懂PL的一些同学,很少有混进C++委员会的,因为那意味着要利用另外的关系网,让一些
自己根本看不起的人骑在自己头上,必须先帮他们做一些瞎扯淡的事情。

编译器人所膜拜的大师,在真正的PL研究者眼里其实不算什么。编译器人与PL研究者在见识上的差距是非常明显的。PL人因为看透了很多东西,比较谦虚,往往不想揭穿编译器人的差距。但编译器人却因为在“工业界”有地位,趾高气昂以为自己懂了一切一样,结果遇到深刻点的PL问题就各种稀里糊涂。

实际上做编译器是很无聊的工作,大部分时候只是把别人设计的语言,翻译成另外的人设计的硬件指令。所以编译器领域处于编程语言(PL)和计算机体系构架(computer
architecture)两个领域的夹缝中,上面的语言不能改,下面的指令也不能改,并没有很大的创造空间。

编译器领域几十年来翻来覆去都是那几个编程模式和技巧,玩来玩去也真够无聊的。起初觉得新鲜,熟悉了之后也就那个样了。很多程序员都懂得避免“低水平重复”,可是由于没有系统的学习过编译器,他们往往误以为做编译器是更高级,更有趣的工作,而其实编译器领域是更加容易出现低水平重复的地方,因为它的创造空间非常有限。

同样的编译优化技巧,在A公司拿来做A语言的编译器,到了B公司拿来做B语言的编译器……大同小异,如此反复。运气好点,你可能遇到C,C++,Java。运气不好,你可能遇到JavaScript,PHP,Ruby,Go之类的怪胎,甚至某种垃圾DSL。但公司有要求,无论语言设计如何蹩脚,硬件指令设计如何繁琐,你编译出来的指令必须能正确运行所有这语言写出来的代码。你说这活是不是很苦逼?

我在Cornell的时候,有一个很有权势的编译器教授,从未发表有理论价值的paper,却老在Java上面做文章。他和他的博士生们总是把一些其它语言几十年前已经有的“新特性”搬到Java上面,老酒换新瓶,发paper拉funding。由于拉了很多钱,所以在系里很受宠,他的学生们在其它人面前都趾高气昂的样子。

后来这教授的一个学生去了Facebook,帮他们做HipHop,一个从PHP到C++的“编译器”。其实这种“源到源”编译器做起来不算难,但给PHP这样劣质的语言做编译器,实在
是狗血的工作,繁琐而头痛。没有任何理论价值不说,在工业界有什么价值也难说。我的一个前同事曾经对Facebook的这个项目发表了一个尖锐而幽默的评价:“Facebook现在不但给母猪涂上了口红,而且真的开始f..它了!”

后继的还有PHP VM一类的东西,越来越离谱。后来这位同学可能也受不了,换组去做其它跟语言无关的事情了。在PL研究者看来,VM也并没有什么稀奇。PL领域有各种各样的“抽象机”(abstract machine),比如CEK machine,它们揭示了计算的方方面面。
我自己都设计实现过好几个“可逆抽象机”,它们可以进行所谓“可逆计算”。所以一个PL研究者很容易就能设计出一个VM来,它们只不过是一种经过部分优化的解释器。

每每看到编译器人说到“VM”这个词的时候那种荣耀而敬畏的神情,好像只有他们明白VM是什么,我就觉得好笑,外加一种说不出的滋味。编译器人虽然知道一个具体的VM怎么实现,知道一些死板的细节和术语,却不知道VM的本质是什么,不知道一个全新的,具有新特性的VM要怎么设计出来。

在《Chez Scheme 的传说》一文中,我提到在Cornell的时候选过一门编译器课程,后
来在半学期的时候drop掉了。现在回想起这段历史,发现它对“教育理念”这件事挺有启发意义。教育是什么,是为了什么?Cornell的这门课给了我一个很好的反面教材。

这个编译器课程那一年的教授是Tim Teitelbaum,他也是GrammaTech公司的创始人。
GrammaTech 是与Coverity类似的静态分析工具,不过GrammaTech还能分析二进制代码
。Tim Teitelbaum是Donald Knuth的崇拜者,他经常提到Knuth提出的一些“伟大概念
”,比如attribute grammar。总是把Knuth那些东西说成是最伟大的发明。

这门课不知道最初是谁设计的。Andrew Myers和Tim Teitelbaum以前交替着讲这个课。

那么我为什么会drop这门课,而且是在学校允许drop课程的deadline之后呢?因为它的教育理念非常的落后和不合理,可以说就是坑人的。

从课程的大纲你可以看出来,它是很传统的编译器课程,一开头花很多时间精力去折腾parser。源语言是一种类似Java的语言,parser是使用类似lex,yacc的工具生成的。
这种盲目重视parser的误区,我已经在另外一篇文章批评过,但还这不是我鄙视的重点。

这门课最让人受不了的事情,发生在我成功完成parser,开始编译代码的第一个pass之后。当得到那次作业分数的时候,我惊呆了。我从来没有得过这么差的分数!仔细看原因,说我的代码没通过好些“测试”。我到那个时候才明白,原来提交后的代码,会被助教拿来跑一些我毫不知情的测试(test),然后他简单的根据这些测试的结果给出分数。

作业本身的要求是用大段大段的英语写下来的。你需要按照这些英语描述从零实现编译器。真的是从零开始,没有任何的框架或者示例代码,完全从白纸开始。经过许多努力,你写出了编译器,还自己写了一些小测试,你觉得完全满足了作业的要求。可是提交之后,你的编译器代码却要被一整套你手里没有的“测试”进行检验。所以最后你惊讶的发现,自己以为做对了,而助教那里的测试有那么多没通过!

最让人无语的事情是,学生手里是没有这套测试的,而且他们不给你。也就是说,你提交作业的时候,无法用最后给你评分用的那些测试来跑你的编译器,所以你无法知道提交之后会有多少测试失败。

当我向助教和教授抗议,说这样不合理,要求得到那些测试的时候,我受到粗暴的拒绝和鄙视。那种语气,好像是在说我是一个不合格的学生,提一些无理要求。用来打分的测试怎么可能给你,你是太笨了吧?

很多其它Cornell学生被这样对待,可能都以为没什么,按照他们的要求做就行了,然
而这是完全不合理的。按照合理的教学理念,学生应该有权得到自己学习状态的反馈。如果学生做这种编程作业,就应该能从实际的测试中得到反馈,知道自己的编译器是否符合要求。要知道,大段大段的英语描述,是很容易漏看或者误解的。只有大量的测试才能正确的抓住“要求”本身。所以不给测试,就相当于不给你准确的要求,到后来却要拿这套测试来给你打分。

课程本来应该把测试连同英语描述一起给学生,他们实现之后,自己跑通所有测试,再提交代码。这样学生就能准确的把握作业的“要求”,而不是看着那些混淆不堪的英语段落自己在那里猜。

因为这个原因,而且由于教授和助教的傲慢态度。我最终决定在课程都快进行到一半的时候drop这门课程。当然,要进行这个操作是需要系主任签字特许的,为此我还在系主任那里留下一笔“污点”。

在我看来,Cornell教授们的这种做法,根本就不是合格的教育者,可以说就是在坑人
,整人,害人。在他们的理念里,教育是单方面的,学生必须通过作业和考试,而教授却不需要为教学方法负责,可以随便怎么教,作业和考试想怎么整都行。

很多Cornell教授有类似的现象,教学不用心,光是各种拉funding,耀武扬威,完全不顾学生死活。也许这就是为什么Cornell总是有学生自杀。我走了之后有一年,在一个
星期之内有三个学生从学校里瀑布旁边的吊桥跳下去自杀,新闻轰动了全美国。

后来在网上看到有人骂Cornell,说:“Cornell想教你游泳,于是他把你推进池塘里,等你扑腾上岸。等你快上来的时候,他又朝你扔一块大石头,然后继续等你游上来。等你又快上岸了,他又拿起一个榔头往你头上猛砸。这样你就可以死了,可是Cornell仍
然在那里等着你游上岸来……”

这段话恰到好处的描述了我的在Cornell的经历。

转学到IU之后,我参加了Kent Dybvig的编译器课程,发现我所设想的编译器课程原来
早已被他实现了,而且实现的如此友好。编译器的每一个pass,都会把所有的“官方测试”发给学生。学生按照要求实现每个编译器pass,在自己电脑上跑通所有测试,充分检查,然后才提交作业。而且作业的网站会自动测试你提交的代码,在提交的当时就给你反馈:“你有N个测试没通过,请修改后重新提交。”

这才是正确的教育方法,因为它给予学生合理的反馈,让他们清晰的知道自己的表现是否符合预期,主动进步,而不是拿一些学生事先不知道的标准在那里瞎坑人,光是给人打分。

Cornell没有明白教育的目的是培养人,而不只是给人发文凭。Dybvig教授不但技术和
学术水平远高于传统的编译器人,而且他的课程也设计得如此科学和友好。这才是真正的教育者。

虽然苦逼,编译器人往往自高自大,高估自己在整个IT领域里的地位,看低其它程序员。编译器人很多认为自己懂了编程语言的一切,而其实他们只是一知半解。

编译器领域最重要的教材,龙书和虎书,在我看来也有很多一知半解,作者自己都稀里糊涂的内容。而且花了大量篇幅讲parser这种看似高深,实则肤浅的话题,浪费读者太多时间,误导他们认为parser是至关重要的技术。以至于很多人上完编译器课程,只学会了写parser,对真正关键的部分没能理解。龙书很难啃,为什么呢,因为作者自己都不怎么懂。虎书号称改进了龙书,结果还是很难啃,感觉只是换了一个封面而已。

我曾经跟虎书作者Andrew Appel的一个门徒合作过,当时这人在IU做助理教授。借着一次我跟她做 independent study的机会,逼我写毫无意义的论文,而且对人非常的push和虚伪。作为普林斯顿大学毕业的PhD,学识水平跟IU的其他教授格格不入,却在待人
接物方面显示出各种“贱”,对编译器领域的“牛人”各种跪舔,随时都在显示自己以前在某某人身边工作过。那是我在IU度过的最难受的一个学期,这使我对“编译器人”的偏见又加深一层。

编译器领域的顶级人物如此,其它声称做过编译器的人也可想而知了。大部分自称做过编译器的人,恐怕连最基本的的编译器都没法从头写出来。利用LLVM已有的框架做点小打小闹的优化,就号称自己做过编译器了。许多编译器人士死啃书本,肤浅的记忆各种术语(比如 SSA),死记硬背具体实现细节(比如LLVM的IR),看不透,无法灵活变通。

所以我常说,编译器是计算机界死知识最多,教条主义最严重的领域。经常是某人想出一个做法,起个名字,其他人就照做,死记硬背,而且把这名字叫得特别响亮。你要是一时想不起这名字是什么意思,立马被认为是法国人不知道拿破仑,中国人不知道毛泽东。你不是做编译器的!

现在因为AI的泡沫,很多人转向所谓“AI框架”,“AI编译器”。这类职位如此之多,以至于很多人根本没碰过编译器,也摇身一变成为了“深度学习编译器工程师”。

半路出家的“AI框架工程师”和“AI编译器工程师”们,在别人写出来的框架上小打小闹优化一下,就以为自己做的是世界上最前沿的工作,却不知道深入研究过PL的人其实很容易就看破了那些东西。很多AI框架工程师嘴里各种奇怪的术语,却看不透所谓“AI框架”只不过是“可求导编程语言”,完全不能从高级语言和逻辑的角度去看问题。

AI框架和编译器里面的原理和本质很容易被PL理论解释,PL研究者能够为这些项目指出正确的方向,避免不必要的弯路,然而这些自诩为“编译器人”的AI框架工程师们完全意识不到这一点。自高自大,膜拜权威,完全没有去听PL研究者在说什么,甚至觉得能“教育”比自己看得透的人。

每一个大公司都要趁着AI这个热度做自己的“AI框架”,“AI编译器”,唯恐不做自己的框架,就会在业界丢面子,所以一窝蜂而上。一定要聘用名声很大的AI框架专家来公司站台,虽然也不知道他最后能做出什么来。所有AI框架和编译器都大同小异,属于无谓的重复劳动。有些人捣鼓一下这个框架,然后用同样的技巧去捣鼓另外一个,中间都是一些工程性的脏活。这种事情真是非常无聊。

AI的热潮正在褪去,大部分AI公司会在一年之内失败。“AI编译器”的工作也会濒临灭绝。所以任凭他们自己瞎蒙乱撞吧,反正坚持不了多久了。

这就是为什么虽然有多次编译器的工作机会,包括Apple的LLVM部门,我最后都没去。
进入Intel的时候,本来编译器部门也欢迎我,可是再三考虑之后还是选择了其它方向
。因为我很清楚的记得,每一次做编译器相关工作都是非常压抑的,需要面对一些沉闷古板而自以为是的人,而且内容真的是重复,无聊和枯燥。

我唯一敬佩的编译器作者是Kent Dybvig,但我也不想跟他一起做编译器。最近很多芯
片公司的“AI编译器”部门找我,我全都拒绝了。我不喜欢身边围绕着这些人,做着这些事。我宁愿去卖烧饼也不想做编译器。

由于编译器人的性格特征,除非一个公司专门要做编译器,否则对于曾经做过编译器,想换个方向的求职者,在面试的时候最好深刻了解他们的性格,态度和做事方式,看他们是否能看淡这些,能否平等对待其他人,能否理性而实在的对待工程。否则自视很高的“编译器人”进了公司,很可能对团队成为一种灾难。

我写这篇文章是为了警醒广大IT公司,也是为了在精神上支持其它程序员。我希望他们不要被编译器的“难度”迷惑了,不要被编译器人吓唬和打压。你们做的并不是更低级,更无聊的工作。正好相反,真正可以发挥创造力的空间并不在底层的编译器一类的东西,而在更接近应用和现实的地方。

每当有人向我表示编译器高深莫测,向往却又高攀不上,我都会给他打一个比方:做编译器就像做菜刀。你可以做出非常好的菜刀,然而你终究只是一个铁匠。铁匠不知道如何用这菜刀做出五花八门,让人心旷神怡,米其林级别的菜肴,因为那是大厨的工作。要做菜还是要打铁,那是你自己的选择,并没有贵贱之分。

h
helpme

王垠隔空给某位转行的老大爷扫盲:

http://www.yinwang.org/blog-cn/2019/12/24/compilers

【 在 helpme (名虚胖字满肥) 的大作中提到: 】
: “
: 工作多年以来,我深刻体会到一个现象,那就是做过“编译器”工作的人,哪怕只做了
: 点皮毛,都容易产生高人一等的心理,以至于在与人合作中出现各种问题。由于他们往
: 往也存在偏执心理和理想主义,所以在恶化人际关系的同时,也可能设计出非常不合理
: 的软件构架,浪费大量的人力物力。
: 我曾经提到的DSL例子,就是这样的两个人。他们都自称做过编译器,成天在我面前高
: 谈阔论,甚至在最基础的概念上班门弄斧,显示出一副“教育”其他人的姿态。其实他
: 们只有一个人做parser,还不算是真正的编译器工作,却总显示出高深莫测的模样。哲
: 人一样捋捋胡子,摇摇脑袋,慢条斯理,嗯……另外一个完全就是外行,只是知道一些
: 术语,成天挂在嘴边。每次他一开口,我都发现这个人并不知道他自己在说什么,却仍
: ...................

g
guvest

这不就是我前面说的么。我怀疑他课是不是没选还是怎么回事。
这不是找点书学习下paper knowledge的问题。

这是我前面说的,也算接近实际情况吧。
”老王主要技术是他master学的几本书里的解释器。
我认为他没有hands on实现过编译器。也许课程都没上过。
这还是有很大不同的。“

能不能做编译器之类的项目,在过去信息没有那么广泛传播。所以有点神秘。
在今天,到处都是60天写c compiler之类的项目。
我看主要就是c类语言不熟的问题。

一个语言写码之习惯建立,要很多年。没有什么天纵之才能克服手眼脑之配合限制的。为什么一定要c类语言,因为这是silicon这块决定的。

【 在 helpme (名虚胖字满肥) 的大作中提到: 】
: 王垠隔空给某位转行的老大爷扫盲:
: http://www.yinwang.org/blog-cn/2019/12/24/compilers

h
hci

他这个认识还不够深刻。

他没有进一步认识到其实做PL的也和他鄙视的做compiler的一样;再深刻一步,就是做TCS也和PL一样;再深刻一步,就是职业数学家也和TCS一样。

最后,他应该意识到,这种鄙视链,其实都是自我心理安慰的机制。因为鄙视链越上端,性价比越低。

【 在 helpme (名虚胖字满肥) 的大作中提到: 】
: “
: 工作多年以来,我深刻体会到一个现象,那就是做过“编译器”工作的人,哪怕只做了
: 点皮毛,都容易产生高人一等的心理,以至于在与人合作中出现各种问题。由于他们往
: 往也存在偏执心理和理想主义,所以在恶化人际关系的同时,也可能设计出非常不合理
: 的软件构架,浪费大量的人力物力。
: 我曾经提到的DSL例子,就是这样的两个人。他们都自称做过编译器,成天在我面前高
: 谈阔论,甚至在最基础的概念上班门弄斧,显示出一副“教育”其他人的姿态。其实他
: 们只有一个人做parser,还不算是真正的编译器工作,却总显示出高深莫测的模样。哲
: 人一样捋捋胡子,摇摇脑袋,慢条斯理,嗯……另外一个完全就是外行,只是知道一些
: 术语,成天挂在嘴边。每次他一开口,我都发现这个人并不知道他自己在说什么,却仍
: ...................

g
guvest

确实如此。
intc,nivida,arm等管事的管c,cpp代码的,处于鄙视链低端。不一定知名。手艺
肯定不如啥函数式高大上。但是是实打实一个决定就可以影响全球计算空间的。

【 在 hci (海螺子) 的大作中提到: 】
: 他这个认识还不够深刻。
: 他没有进一步认识到其实做PL的也和他鄙视的做compiler的一样;再深刻一步,就是做
: TCS也和PL一样;再深刻一步,就是职业数学家也和TCS一样。
: 最后,他应该意识到,这种鄙视链,其实都是自我心理安慰的机制。因为鄙视链越上端
: ,性价比越低。

h
helpme

嗯,这个见识还是不错的,值得赞一下。

【 在 hci (海螺子) 的大作中提到: 】
: 他这个认识还不够深刻。
: 他没有进一步认识到其实做PL的也和他鄙视的做compiler的一样;再深刻一步,就是做
: TCS也和PL一样;再深刻一步,就是职业数学家也和TCS一样。
: 最后,他应该意识到,这种鄙视链,其实都是自我心理安慰的机制。因为鄙视链越上端
: ,性价比越低。

l
lightroom

老王主要不明白两点:的确有不少聪明人,学什么都快都好。但每个人都精力有限,除了几个翘楚,top 10%的人水平差不多。

【在 guvest(我爱你老婆Anna)的大作中提到:】
:确实如此。
:intc,nivida,arm等管事的管c,cpp代码的,处于鄙视链低端。不一定知名。手艺

h
helpme

第一,老王写这篇文章是为了说明他自己是搞PL的,超越于编译器之上,可不是为了自曝其短说他没搞过编译器很失败,你不要缠夹不清。

第二,你那个什么一定要熟悉C才能搞compiler的观点更是不对,王垠很推崇的Lisp语
言1958年就被开发出来了,比C早多了。

【 在 guvest (我爱你老婆Anna) 的大作中提到: 】
: 这不就是我前面说的么。我怀疑他课是不是没选还是怎么回事。
: 这不是找点书学习下paper knowledge的问题。
: 这是我前面说的,也算接近实际情况吧。
: ”老王主要技术是他master学的几本书里的解释器。
: 我认为他没有hands on实现过编译器。也许课程都没上过。
: 这还是有很大不同的。“
: 能不能做编译器之类的项目,在过去信息没有那么广泛传播。所以有点神秘。
: 在今天,到处都是60天写c compiler之类的项目。
: 我看主要就是c类语言不熟的问题。
: 一个语言写码之习惯建立,要很多年。没有什么天纵之才能克服手眼脑之配合限制的。
: ...................

h
helpme

这观点,没看懂。

【 在 lightroom (吃一条鱼,思考一个问题,法号三丰) 的大作中提到: 】
: 老王主要不明白两点:的确有不少聪明人,学什么都快都好。但每个人都精力有限,除
: 了几个翘楚,top 10%的人水平差不多。
: :确实如此。
: :intc,nivida,arm等管事的管c,cpp代码的,处于鄙视链低端。不一定知名。手艺

g
guvest

你可能不知道Lisp机器什么时候失败的。
我之前找过其中人聊过。
现在之到把语言翻译到硬件而不是中间层的compiler,就是C类语言的应用。
这是分不开的。
如果你不熟悉c,开始就没写对。
大点的项目是会半途失控的,无法debug。

【 在 helpme (名虚胖字满肥) 的大作中提到: 】
: 第一,老王写这篇文章是为了说明他自己是搞PL的,超越于编译器之上,可不是为了自
: 曝其短说他没搞过编译器很失败,你不要缠夹不清。
: 第二,你那个什么一定要熟悉C才能搞compiler的观点更是不对,王垠很推崇的Lisp语
: 言1958年就被开发出来了,比C早多了。

h
hci

Lisp大牛,写CLOS,提出“Worse is better"名言那位,是一个我在研究院时期的同事,也是个诗人(很高产,每天写一首这种)。他当年开Lisp公司,失败了,后来就是到处混事,靠朋友打招呼”不要把他fire了“,拿份工资混着,继续只写common lisp, 蛮好玩的老头。

失败的原因是PC兴起了,太贵的机器卖不出去了。

计算机这个行当,都是硬件驱动的,其他的都是吹牛,不影响大势。所以你可以吹你的,我也可以吹我的。最后谁胜利,就看硬件的发展,与什么优势啦,理论啦,没有什么关系。

一个字,就是“命”。

【 在 guvest (我爱你老婆Anna) 的大作中提到: 】
: 你可能不知道Lisp机器什么时候失败的。
: 我之前找过其中人聊过。
: 现在之到把语言翻译到硬件而不是中间层的compiler,就是C类语言的应用。
: 这是分不开的。
: 如果你不熟悉c,开始就没写对。
: 大点的项目是会半途失控的,无法debug。

d
digua

王垠是不是被搞编译的人鄙视过,留下了心理阴影。他确实不是搞编译的,不是编译专家。编程语言和编译相关性很高,但内容和技术上相差很远。

编译很硬,要么是纯理论的形式化证明,要么是工程性很强的问题,比如说需要实打实用benchmark来证实自己的方法比别人快,并且一定不能产生错误代码。王垠不适合搞
这些。

编译原理的基础是形式语言与自动机,与图灵机紧密相关,那又是另一个王垠不擅长的东西。:-)

【 在 helpme (名虚胖字满肥) 的大作中提到: 】
: “
: 工作多年以来,我深刻体会到一个现象,那就是做过“编译器”工作的人,哪怕只做了
: 点皮毛,都容易产生高人一等的心理,以至于在与人合作中出现各种问题。由于他们往
: 往也存在偏执心理和理想主义,所以在恶化人际关系的同时,也可能设计出非常不合理
: 的软件构架,浪费大量的人力物力。
: 我曾经提到的DSL例子,就是这样的两个人。他们都自称做过编译器,成天在我面前高
: 谈阔论,甚至在最基础的概念上班门弄斧,显示出一副“教育”其他人的姿态。其实他
: 们只有一个人做parser,还不算是真正的编译器工作,却总显示出高深莫测的模样。哲
: 人一样捋捋胡子,摇摇脑袋,慢条斯理,嗯……另外一个完全就是外行,只是知道一些
: 术语,成天挂在嘴边。每次他一开口,我都发现这个人并不知道他自己在说什么,却仍
: ...................

g
guvest

总结的很好。我再试着压缩一下:
抽象编译原理研究,和实际的编译项目。目测老王都没从事过。

考试两次才搞定,也说明其能力倾向不适合。
另外老王几十年没和kernel.org的人吵过架,也说明他不是os那个圈子的。
【 在 digua(姚之FAN) 的大作中提到: 】
<br>: 王垠是不是被搞编译的人鄙视过,留下了心理阴影。他确实不是搞编译的,不是
编译专
<br>: 家。编程语言和编译相关性很高,但内容和技术上相差很远。
<br>: 编译很硬,要么是纯理论的形式化证明,要么是工程性很强的问题,比如说需要
实打实
<br>: 用benchmark来证实自己的方法比别人快,并且一定不能产生错误代码。
王垠不
适合搞
<br>: 这些。
<br>: 编译原理的基础是形式语言与自动机,与图灵机紧密相关,那又是另一个王垠不
擅长的
<br>: 东西。:-)
<br>

d
digua

在工作上,王垠做的是支持性的软件设计工具,和软件工程的相关性大。编译是非常
hard core的东西,我觉得他明显没做过也不擅长。

软件工程和软件开发支持虽然不是hard core的东西,但非常重要,也很有钱途。王垠
可惜了,他入行早,如果老老实实地做,自己能轻松赚钱不说,也可能会有一定影响,不应该搞成现在这个样子。

【 在 guvest (我爱你老婆Anna) 的大作中提到: 】
: 总结的很好。我再试着压缩一下:
: 抽象编译原理研究,和实际的编译项目。目测老王都没从事过。
: 考试两次才搞定,也说明其能力倾向不适合。
:
: 王垠是不是被搞编译的人鄙视过,留下了心理阴影。他确实不是搞编译的
: ,不是
: 编译专
:
: 家。编程语言和编译相关性很高,但内容和技术上相差很远。
:
: 编译很硬,要么是纯理论的形式化证明,要么是工程性很强的问题,比如
: 说需要
: 实打实
: ...................

h
helpme

老王这眼高于顶的性格,绝对发不了财,也不会有啥除了喷以外的影响。如果能当个教授,也许是他最好的归宿。

【 在 digua (姚之FAN) 的大作中提到: 】
: 在工作上,王垠做的是软件设计工具,和软件工程的相关性大。编译是非常hard
core
: 的东西,我觉得他明显没做过也不擅长。
: 软件工程和软件开发支持虽然不是hard core的东西,但非常重要,也很有钱途。王垠
: 可惜了,他入行早,如果老老实实地做,自己能轻松赚钱不说,也可能会有一定影响,
: 不应该搞成现在这个样子。

g
guvest

他太急了。躺赢的事搞废了。
其实其极度在意简化中文圈子的看法。
然而简化中文是胡适设计的。这就死循环了。

按华夏古代儒教的功法,财富也好,荣誉也好,都可以躺赢。不能急。三纲八条保持住,三代之内一个家庭就大概率走到全社会的5%了。不需要什么复杂的东西。

【 在 digua(姚之FAN) 的大作中提到: 】

: 在工作上,王垠做的是软件开发工具,和软件工程的相关性大。编译是非常hard core

: 的东西,我觉得他明显没做过也不擅长。

: 软件工程和软件开发支持虽然不是hard core的东西,但非常重要,也很有钱途
。王垠

: 可惜了,他入行早,如果老老实实地做,自己能轻松赚钱不说,也可能会有一定影响,

: 不应该搞成现在这个样子。

g
guvest

你把教授想的太简单了。老王把自己包装成学术牛。靠的是指出这个那个都不牛。从克怒奇开始一直到不知名的国内Intc 的ai engineer。

然而从国内开始,看记录,无论考试,还
是写文章,他差远了。
其长处还就是写functional 类型的java。

【 在 helpme(名虚胖字满肥) 的大作中提到: 】
<br>: 老王这眼高于顶的性格,绝对发不了财,也不会有啥除了喷以外的影响。如果能
当个教
<br>: 授,也许是他最好的归宿。
<br>: core
<br>

d
digua

他教书不错,但在美国做不了教授。他总是把时间花在说自己如何如何聪明上,却拿不出成果来,说这些是我第一个做出来的。美国学术界聪明的人太多,只有聪明,和什么都没有差不多。:-)

【 在 helpme (名虚胖字满肥) 的大作中提到: 】
: 老王这眼高于顶的性格,绝对发不了财,也不会有啥除了喷以外的影响。如果能当个教
: 授,也许是他最好的归宿。

g
guvest

老王的长处是独立思考。

从小一路保送,美国名师名校的多了。老王的记录说明,与之相比,其聪明啥的谈不上。他天天怕的就是别人说他不聪明。高考成绩啥了bbs说了多少年。

Btw,
我主要是觉得established scientist ,专家教授这个圈子道德系统出问题。整体高危。但人家其他方面本事必须承认。那不是一般智力的人能进去站稳的。

【 在 digua(姚之FAN) 的大作中提到: 】
<br>: 他教书不错,但在美国做不了教授。他总是把时间花在说自己如何如何聪明上,
却拿不
<br>: 出成果来,说这些是我第一个做出来的。美国学术界聪明的人太多,只有聪明,
和什么
<br>: 都没有差不多。:-)
<br>

h
helpme

你把教授想的太高大上了,只要肯play by their rules,真没啥太难的。老王当不了
教授是性格问题,不是能力问题,也没人说他能去Stanford/MIT啥的CS当教授。他但凡能在IU拿到个PL方向的屁挨着地,去个二三流学校是不成问题的。可惜他一受不了教授指使他,二看不上灌水发文章,也混不了学术圈。

【 在 guvest (我爱你老婆Anna) 的大作中提到: 】
: 你把教授想的太简单了。老王把自己包装成学术牛。靠的是指出这个那个都不牛。从克
: 怒奇开始一直到不知名的国内Intc 的ai engineer。
: 然而从国内开始,看记录,无论考试,还
: 是写文章,他差远了。
: 其长处还就是写functional 类型的java。
:
: 老王这眼高于顶的性格,绝对发不了财,也不会有啥除了喷以外的影响。
: 如果能
: 当个教
:
: 授,也许是他最好的归宿。
:
: core
: ...................

h
helpme

他最大的强项还是技术流狂喷。

【 在 digua (姚之FAN) 的大作中提到: 】
: 他教书不错,但在美国做不了教授。他总是把时间花在说自己如何如何聪明上,却拿不
: 出成果来,说这些是我第一个做出来的。美国学术界聪明的人太多,只有聪明,和什么
: 都没有差不多。:-)

g
guvest

你开啥玩笑。好点的学校经常phd资格考过不了的都一大堆。
写论文做研究也有自己的功夫。
人人都能当教授,哪有这回事。

老王不擅长考试,你没看出来?首先这一条就悬了。
【 在 helpme(名虚胖字满肥) 的大作中提到: 】
<br>: 你把教授想的太高大上了,只要肯play by their rules,真没啥太难的
。老王
当不了
<br>: 教授是性格问题,不是能力问题,也没人说他能去Stanford/MIT啥的CS当教授。
他但凡
<br>: 能在IU拿到个PL方向的屁挨着地,去个二三流学校是不成问题的。可惜他一受不
了教授
<br>: 指使他,二看不上灌水发文章,也混不了学术圈。
<br>

h
helpme

你好奇怪,谁说过人人都能当教授了?

【 在 guvest (我爱你老婆Anna) 的大作中提到: 】
: 你开啥玩笑。好点的学校经常phd资格考过不了的都一大堆。
: 人人都能当教授,哪有这回事。
:
: 你把教授想的太高大上了,只要肯play by their rules,真没啥太难的。老王
: 当不了
:
: 教授是性格问题,不是能力问题,也没人说他能去Stanford/MIT啥的CS当教授。
: 他但凡
:
: 能在IU拿到个PL方向的屁挨着地,去个二三流学校是不成问题的。可惜他一受不
: 了教授
:
: 指使他,二看不上灌水发文章,也混不了学术圈。
:

g
guvest

老王在学术方面,就一普通人。在中国留学生里中等偏下。很多事光
有热情是没用的。

简单说,不是那块料。

【 在 helpme(名虚胖字满肥) 的大作中提到: 】
<br>: 你好奇怪,谁说过人人都能当教授了?
<br>

d
digua

我得说,专家教授也不一定就是非常聪明的人(数学和理论物理专业除外),但基本的聪明还是得有的。主要还是靠刻苦。

王垠的聪明程度不错,但我个人感觉并不特别突出,放在学术界里就更不突出了。他不可能靠这个拿到职位。他主要的问题是,总是想着自己有多聪明,不是把聪明花在做点实在的事情上,这样聪明就浪费掉了。

【 在 guvest (我爱你老婆Anna) 的大作中提到: 】
: 老王的长处是独立思考。
: 从小一路保送,美国名师名校的多了。老王的记录说明,与之相比,其聪明啥的谈不上
: 。他天天怕的就是别人说他不聪明。高考成绩啥了bbs说了多少年。
: Btw,
: 我主要是觉得established scientist ,专家教授这个圈子道德系统出问题。整体高危
: 。但人家其他方面本事必须承认。那不是一般智力的人能进去站稳的。
:
: 他教书不错,但在美国做不了教授。他总是把时间花在说自己如何如何聪
: 明上,
: 却拿不
:
: 出成果来,说这些是我第一个做出来的。美国学术界聪明的人太多,只有
: ...................

h
helpme

老王可绝对不会同意你的说法。他以前读博时的blog都被删光了,但我依稀记得有一篇讲他纯靠自己的悟性和钻研,发现了PL领域的最高深理论。结果还没来得及兴奋,到网上一查几十年前就被人做出来了,而且也无后人能够超越。他从那刻起知道他感兴趣的方向已经做无可做,于是决定放弃读博。

是不是他自我感觉良好,胡吹瞎吹呢?也许有可能,但我很难同意他学术方面在中国留学生里处于中等偏下这个说法的。

【 在 guvest (我爱你老婆Anna) 的大作中提到: 】
: 老王在学术方面,就一普通人。在中国留学生里中等偏下。
:
: 你好奇怪,谁说过人人都能当教授了?
:

g
guvest

聪明程度得跟老王那个年代的留学生比。你可能是拿你手下小留的智力来做测度了吧,哈哈。

【 在 digua(姚之FAN) 的大作中提到: 】

: 我得说,专家教授也不一定就是非常聪明的人(数学和理论物理专业除外),但基本的

: 聪明还是得有的。主要还是靠刻苦。

: 王垠的聪明程度不错,但我个人感觉并不特别突出,放在学术界里就更不突出了。他不

: 可能靠这个拿到职位。他主要的问题是,总是想着自己有多聪明,不是把聪明花在做点

: 实在的事情上,这样聪明就浪费掉了。

g
guvest

老王也四十多了吧?也就比我跟好虫小几岁。好虫是北京啥围棋冠军。
你问问好虫,看他同意不同意其聪明程度在留学生里是不是中等。
没见过世面的往往觉得自己聪明,就这么回事。

再说就算老王发现了啥啥,是重复发现了。那他不可能几十年都是被别人重复发现吧?论文,书,专利,有么。这些东西不能烂搞,但是几十年如一日啥都没,那就是不擅长啊。

老王当初出名是因为从四川运作到清华读研究生。那年代没人愿意在国内读博士,有的保送博士要签协议不可出国。(我当初在国内读硕士,也签了协议不可中途出国。)
老王签了协议,中间他为了出国,在bbs骂中国教育系统出名的。他博士是EE搞电路板
优化的。因为此事,他清华的教授在弯曲的大批学生还很为那个教授不平,我记得组织过网上活动。尤其是,本身他的教授对他不薄,他也拿一个会议的最佳论文奖。这都是要资源的。

【 在 helpme(名虚胖字满肥) 的大作中提到: 】
<br>: 老王可绝对不会同意你的说法。他以前读博时的blog都被删光了,但我依稀记得
有一篇
<br>: 讲他纯靠自己的悟性和钻研,发现了PL领域的最高深理论。结果还没来得及兴奋
,到网
<br>: 上一查几十年前就被人做出来了,而且也无后人能够超越。他从那刻起知道他感
兴趣的
<br>: 方向已经做无可做,于是决定放弃读博。
<br>: 是不是他自我感觉良好,胡吹瞎吹呢?也许有可能,但我很难同意他学术方面在
中国留
<br>: 学生里处于中等偏下这个说法的。
<br>

h
helpme

好虫是天津人吧?而且一直看不上王垠。老王非清华本科,却在清华读博第四年时高调退学,还骂清华CS教育骂的全网皆知。好虫恨不得锤死他,怎么可能觉得他聪明,根本不用去问。

【 在 guvest (我爱你老婆Anna) 的大作中提到: 】
: 老王也四十多了吧?也就比我跟好虫小几岁。好虫是北京啥围棋冠军。
: 你问他,看他同意不同意其聪明程度在留学生里是不是中等。
: 没见过世面的往往觉得自己聪明,就这么回事。
:
: 老王可绝对不会同意你的说法。他以前读博时的blog都被删光了,但我依稀记得
: 有一篇
:
: 讲他纯靠自己的悟性和钻研,发现了PL领域的最高深理论。结果还没来得及兴奋
: ,到网
:
: 上一查几十年前就被人做出来了,而且也无后人能够超越。他从那刻起知道他感
: 兴趣的
:
: 方向已经做无可做,于是决定放弃读博。
: ...................

g
guvest

好虫是围棋版老油条。你找找他的贴。我记得他肯定拿过小学冠军啥的。

【 在 helpme(名虚胖字满肥) 的大作中提到: 】

: 好虫是天津人吧?而且一直看不上王垠。老王非清华本科,却在清华读博第四年时高调

: 退学,还骂清华CS教育骂的全网皆知。好虫恨不得锤死他,怎么可能觉得他聪明,根本

: 不用去问。

g
guvest

老王当初出名是因为从四川运作到清华读研究生。
(我有同学从华中理工大学运作,保送到清华读硕士,办法我清楚。)

那年代没人愿意在国内读博士,有的
保送博士要签协议不可出国。(我当初在国内读硕士,也签了协议不可中途出国。)
老王签了协议,中间他为了出国,在bbs骂中国教育系统出名的。他博士是EE搞集成电
路布线
优化的。因为此事,他清华的教授在弯曲的大批学生还很为那个教授不平,我记得组织过网上活动。尤其是,本身他的教授对他不薄,他也拿一个IEEE会议的最佳论文奖。这种除了实力,都是
要资源的。

【 在 helpme(名虚胖字满肥) 的大作中提到: 】
<br>: 好虫是天津人吧?而且一直看不上王垠。老王非清华本科,却在清华读博第四年
时高调
<br>: 退学,还骂清华CS教育骂的全网皆知。好虫恨不得锤死他,怎么可能觉得他聪明
,根本
<br>: 不用去问。
<br>

g
guvest

老王科普写的不错。也愿意花时间。所以搞教学班很适合。

但他的作品不是学术面的。



我准备慢慢把其中一些想法发掘整理出来,发表成论文,或者做成产品。”

这都多少年了?嘴炮伤品行啊。

【 在 helpme(名虚胖字满肥) 的大作中提到: 】
<br>: whatever了,不关心。看看这篇王垠以前的blog吧,里面有Dan Friedman,在学
术界还
<br>: 是很有credit的:“
<br>: 1. 你知道些什么
<br>: Dan Friedman 是 IU 的教授,程序语言界的元老之一,Lisp (Scheme)
语言的
主要研
<br>: 究者之一,《The Little Schemer》(前身叫《The Little Lisper》)的作者。
他对程
<br>: 序语言有非常深刻的理解。Haskell 所用的 lazy evaluation 模型,最
早就是
他在
<br>: 1976 年在与 David Wise 合写的论文“CONS should not Evaluate its
Arguments”
<br>: 中提出来的。他并不是我正式的导师,但他是这一生中教会我最多东西的人,所
以我想
<br>: 写一些关于他的小故事。也许你能从中看出,一个真正的教育者是什么样子的。
我来
<br>: IU 之前,一位师兄告诉我,Dan Friedman 就像指环王里的甘道夫 (
Gandalf),
来了之
: ...................
<br>

h
helpme

呵呵,反正能让Dan Friedman看入眼的中国学生,绝对不会是中等偏下。

【 在 guvest (我爱你老婆Anna) 的大作中提到: 】
: 老王科普写的不错。也愿意花时间。所以搞教学班很适合。
: 但他的作品不是学术面的。
: “
: 我准备慢慢把其中一些想法发掘整理出来,发表成论文,或者做成产品。”
: 这都多少年了?嘴炮伤品行啊。
:
: whatever了,不关心。看看这篇王垠以前的blog吧,里面有Dan Friedman
: ,在学
: 术界还
:
: 是很有credit的:“
:
: 1. 你知道些什么
: ...................

g
guvest

老王说的这位教授是谁我没听过。但
我记得有人说Einstein见人就夸,给推荐信。

关键是,学术跟写程序不是一回事。
几十年如一日无学术产出,那就说明不是那块料。
实证最大。
写再长说这个不好那个不好,也大不过实证。
【 在 helpme(名虚胖字满肥) 的大作中提到: 】
<br>: 呵呵,反正能让Dan Friedman看入眼的中国学生,绝对不会是中等偏下。<br>

h
helpme

别死鸭子嘴硬了,王垠的这篇blog还在,自己看去吧:

http://www.yinwang.org/blog-cn/2012/07/04/dan-friedman

【 在 guvest (我爱你老婆Anna) 的大作中提到: 】
: 老王说的这位教授是谁我没听过。但
: 我记得有人说Einstein见人就夸,给推荐信。
: 关键是,学术跟写程序不是一回事。
: 几十年如一日无学术产出,那就说明不是那块料。
: 实证最大。
: 写再长说这个不好那个不好,也大不过实证。
:
: 呵呵,反正能让Dan Friedman看入眼的中国学生,绝对不会是中等偏下。
:

g
guvest

写再多也大不过实证。你没从事过此类劳作。看看科普也没啥。我无意说服你。

几十年如一日无学术产出,那就说明不是那块料。
实证最大。张益唐还写了三篇论文呢。
【 在 helpme(名虚胖字满肥) 的大作中提到: 】
<br>: 别死鸭子嘴硬了,王垠的这篇blog还在,自己看去吧:
<br>: http://www.yinwang.org/blog-cn/2012/07/04/dan-friedman
<br>

h
helpme

嗯,你有屁挨着地,必须看不上拿不到屁挨着地的王垠。

【 在 guvest (我爱你老婆Anna) 的大作中提到: 】
: 写再多也大不过实证。你没从事过此类劳作。看看科普也没啥。我无意说服你。
: 几十年如一日无学术产出,那就说明不是那块料。
: 实证最大。张益唐还写了三篇论文呢。
:
: 别死鸭子嘴硬了,王垠的这篇blog还在,自己看去吧:
:
: http://www.yinwang.org/blog-cn/2012/07/04/dan-friedman
:

g
guvest

这跟学位无关。你说你考试不行。那学术作品总是要有的。
本科你也可以发表论文。几十年从没有过,那就说明不擅长,不是这块料呗。有啥不明白的。

我出校门也没写过论文了。也不是那块料。
我念phd是为了eb1拿绿卡快。
【 在 helpme(名虚胖字满肥) 的大作中提到: 】
<br>: 嗯,你有屁挨着地,必须看不上拿不到屁挨着地的王垠。
<br>

g
guvest

另外我当初phd毕业。在美国周游,访问了很多感兴趣的lab,找postdoc。朋友交了很多。没一
个人要我。确实不是那块料。
(也可能与我大师兄那时候还没混出来有关。)

【 在 guvest(我爱你老婆Anna) 的大作中提到: 】
<br>: 这跟学位无关。学术作品总是要有的。
<br>: 本科你也可以发表论文。几十年从没有过,那就说明不擅长,不是这块料呗。有
啥不明
<br>: 白的。
<br>: 我出校门也没写过论文了。也不是那块料。
<br>: 我念phd是为了eb1拿绿卡快。
<br>:

l
lightroom

IU排名太差,很多学生看不上。老王的优势是愿意表达自己的想法,而且能说清楚。这一点很重要。自己不懂的领域也能说出自己的观点。无论是paper review, 还是给高层领导建议,都需要这方面能力。老王这方面还行,就是太negative. 先发制人提出自己的观点至少先赢了一半,也显得聪明

【 在 helpme (名虚胖字满肥) 的大作中提到: 】
: 呵呵,反正能让Dan Friedman看入眼的中国学生,绝对不会是中等偏下。

w
wdong

Good point! 最后数学家自嘲,我做的是abstract nonsense。

【 在 hci (海螺子) 的大作中提到: 】
: 他这个认识还不够深刻。
: 他没有进一步认识到其实做PL的也和他鄙视的做compiler的一样;再深刻一步,就是做
: TCS也和PL一样;再深刻一步,就是职业数学家也和TCS一样。
: 最后,他应该意识到,这种鄙视链,其实都是自我心理安慰的机制。因为鄙视链越上端
: ,性价比越低。

c
chebyshev

这问题我在历史版总结了一点。

数学家与mathematican是不同的。西方数学,或者mathematics不应该翻译做数学。

按华夏之说法,大数学家秦九韶明确定义:数学要“通神明,顺性命,经世务,类万物”。
并且,你学了数学,“人事之变无不该,鬼神之情莫能隐”。

mathematicans无论如何是没有这些功能的。鬼神性命就不说。
数学还能管“经世务”,“人事之变”。

尽管有点像高级算命。华夏数学之理想,看着还是更让人心安理得。
【 在 wdong (万事休) 的大作中提到: 】
: Good point! 最后数学家自嘲,我做的是abstract nonsense。

w
wocow

很赞,拿了PhD,做了教授,VP,我看未见得有王垠同学的见识,能写这样有营养的文
章。你要不服,你也写一篇啊。

C
Caravel

其实compiler里面解决的最漂亮的就是parser的工作,这套分类理论真不是一般人做的出来的。但是这套理论很快就问题做干净了,后人就是写LEX/YACC的spec,看到的只是机械化
c
chebyshev

现在compiler都是c,unix一线的。

完全不沿着这个路线走的东西一般人不知道。
例如你听过多值逻辑计算机吗?

========
1985年,第一个模糊逻辑片设计制造成功。它一秒钟内能进行八万次模糊逻辑推理。现在,正在制造一秒钟内能进行64.5万次模糊推理的逻辑片。用模糊逻辑片和电路组合在一起,就能制成模糊计算机。
日本科学家把模糊计算机应用在地铁管理上:日本东京以北320千米的仙台市的地铁列
车,在模糊计算机控制下,自1986年以来,一直安全,平稳地行驶着。车上的乘客可以不必攀扶拉手吊带。因为,在列车行进中,模糊逻辑"司机"判断行车情况的错误,几乎比人类司机要少70%。1990年,日本松下公司把模糊计算机装在洗衣机里,能根据衣服
的肮脏程度,衣服的质料调节洗衣程序。我国有些品牌的洗衣机也装上了模糊逻辑片。人们又把模糊计算机装在吸尘器里,可以根据灰尘量以及地毯的厚实程度调整吸尘器功率。模糊计算机还能用于地震灾情判断,疾病医疗诊断,发酵工程控制,海空导航巡视等方面。

【 在 Caravel (克拉维尔) 的大作中提到: 】
: 其实compiler里面解决的最漂亮的就是parser的工作,这套分类理论真不是一般人做的
: 出来的。但是这套理论很快就问题做干净了,后人就是写LEX/YACC的spec,看到的只是
: 机械化

S
StarVenus

是不是应该另开一个话题呀:大家觉得不给test case合理吗?王垠倒是强烈反对。
我对这个感兴趣是因为孩子在做usaco。在training的时候做题提交以后会告诉哪个
test case 没通过,再根据这个修改程序。但是在考试的时候就只告诉你一共跑了几个通过了几个,不告诉具体faled test case是啥。孩子得自己想什么情况下会失败。因
为有时间限制,能想全不是很容易。这种能力应该怎么培养啊?
w
wdong

培养就是刷题。到了大学ACM ICPC比赛,题目不一定比usaco难,
test case会更刁。这个设计表示,在ACM看来,programmer的职责
不光是coding,还要写test case。而且写test case也非常重要。
ACM比赛团队作战时,经常是一人写代码另一人写test case。
你要胜出,就是一个test case都不能漏。开始时可以找些有答案
的题目刷,但是要搞得好,后面必须有不看答案刷的训练。
写程序是一个要求思维非常缜密的事情,练多了以后,想问题就是
会比别人严格。

刷题还能找答案,实际开发的时候碰到bug,都是只有死磕。
有时候就是一个bug磕一星期都磕不出来。如果不是自己熬夜磕
找大神解决自己就永远不会提高。我现在已经不怎么帮手下debug了。

【 在 StarVenus (参商*极品磨工~人不知而不愠) 的大作中提到: 】
: 是不是应该另开一个话题呀:大家觉得不给test case合理吗?王垠倒是强烈反对。
: 我对这个感兴趣是因为孩子在做usaco。在training的时候做题提交以后会告诉哪个
: test case 没通过,再根据这个修改程序。但是在考试的时候就只告诉你一共跑了几个
: 通过了几个,不告诉具体faled test case是啥。孩子得自己想什么情况下会失败。因
: 为有时间限制,能想全不是很容易。这种能力应该怎么培养啊?