新闻首页 / 标签为“王垠”的新闻

63

王垠:程序员的心理疾病

说实话,虽然似乎为之奋斗了十多年,在真正进入软件行业的短短一年之后,我已经对它感到相当的厌倦了。这并不是说这个行业没有前景,而是在这个行业工作,其实很难得到心理上的快乐。人们说女怕嫁错郎,男怕入错行。我并不认为自己入错了行,我仍然很喜欢设计程序和语言,而且我显然是这个领域的王牌之一。然而...
17

王垠:我和权威的故事

每个人小时候心里都是没有权威的,就像每个人小时候也都不相信广告一样。可是权威就像广告,你听一遍不信,听两遍不信,……,直到一千遍的时候,它忽然开始起作用了,而且这作用越来越强。消灭广告所造成的幻觉,最好的办法就是去尝试,去实地的考察它。有些虚幻的东西只要你第一...
19

王垠:半年来的工作感受

好久没有写博客,一方面因为工作太忙,另一方面是因为没有发现什么好写的。可是后来发现没什么好写的原因其实也是因为工作太忙了。忙得不正常,所以没有很多时间和精力来研究和欣赏自己喜欢的东西了。我在一家叫做 Coverity 的公司工作,我住在三藩市(San Francisco)。Coverit...
5

编辑器与IDE

无谓的编辑器战争很多人都喜欢争论哪个编辑器是最好的。其中最大的争论莫过于 Emacs 与 vi 之争。vi 的支持者喜欢说:“看 vi 打起字来多快,手指完全不离键盘,连方向键都可以不用。”Emacs 的支持者往往对此不屑一顾,说:“打字再快又有什么用...
13

王垠:原因与证明

证明我在 Cornell 的时候经常遇到这样的问题,那就是教授们一上课就在黑板上写长篇的“定理证明”,全体同学认认真真在下面抄笔记,就连只有十来个人的小课也是那样。有些写字速度慢的人就不得不带上小型录音机,把教授的课全都录下来,要不就是之后去借别人的笔记来抄。...
8

王垠:关于编程语言的思考

之前写了那么多 Haskell 的不好的地方,却没有提到它好的地方。其实我必须承认,我从 Haskell 身上学到了非常重要的东西,那就是对于“类型”的思考。虽然 Haskell 的类型系统有过于强烈的约束性,从一种“哲学”的角度看感觉&ldquo...
4

王垠:我为什么离开 Cornell

很多人都知道,我曾经在 Cornell 博士就读,两年之后转学到了 Indiana 大学。几乎所有人,包括 Indiana 大学的人都感觉奇怪,为什么会有人从 Cornell 这样的“牛校”转学到 Indiana。我曾经在之前的博文里提到 Cornell 的情况,比如学生...
2

谈“测试驱动的开发”

现在的很多公司,包括 Google 和我现在的公司 Coverity,都喜欢一种“测试驱动的开发”(test-driven development)。它的原理是,在写程序的时候同时写上自动化的“单元测试”(unit test)。在代码修改之后,这些...
0

谈谈 Currying

很多基于 lambda calculus 的程序语言,比如 ML 和 Haskell,都习惯用一种叫做 currying 的手法来构造函数。比如,如果你在 Haskell 里面这样写一个函数: f x y = x +y然后你就可以这样做: map (f 2)它会输...
1

谈惰性求值

从之前的几篇博文里面,你也许已经看到了,Haskell 其实是问题非常严重的语言。他们的设计者却非要把缺点也说成优点。当你委婉的批评它的设计的时候,它的粉丝们总是以一种很高的姿态说,这里面道理太深了,你不懂。可笑的是,当他们面对我这样的水平超过它的设计者的专家的时候,居然也是这种态度。这也许就是...
3

Hindley-Milner 类型系统的根本性错误

之前的一个时间,我曾经公开过这样一段幻灯片,它是 2012 年 10 月的时候,我在 Indiana 大学做的最后一次演讲。由于当时的委婉,我并没有直接说出这些结论的重要性:其实这是一个可以置 ML 和 Haskell 这样的语言于死地的结论。然而现在我发现,委婉其实是一种错误的态度。对待错...
8

王垠:什么是脚本语言

很多人都会用一些“脚本语言”(scripting language),却很少有人真正的知道到底什么是脚本语言。很多人用 shell 写一些“脚本”来完成日常的任务,用 Perl 或者 sed 来处理一些文本文件,很多公司用“脚本&rdq...
7

王垠:谈编译器

在上一篇博文的最后,我提到了 Lisp 编译器的问题。由于早期的 Lisp 编译器生成的代码效率普遍低下,成为了 Lisp 失败的主要原因之一。而现在的高性能 Lisp 编译器(比如Chez Scheme),其实已经可以生成非常高效的代码,甚至可以匹敌 C 程序的速度。如果你看得到我...
6

王垠:Lisp 已死,Lisp 万岁!

有一句古话,叫做“国王已死,国王万岁!”它的意思是,老国王已经死去,国王的儿子现在继位。这句话的幽默,就在于这两个“国王”其实指的不是同一个人,而你咋一看还以为它自相矛盾。今天我的话题仿效了这句话,叫做“Lisp 已死,Lisp 万岁!...
1

王垠:论对东西的崇拜

在之前的几篇博文里面,我多次提到了 Lisp,它相对于其它语言的优势,以及 Lisp Machine 相对于 Unix 的优点。于是有人来信请教我如何学习 Lisp,也有人问我为什么 Lisp Machine 没有“流行”起来。我感觉到了他们言语中对 Lisp 的敬畏和好.....
7

王垠:谈“P=NP?”

“P=NP?” 通常被认为是计算机科学最重要的问题。有一个叫Clay Math的研究所,甚至悬赏 100 万美元给解决它的人。可是我今天要告诉你的是,这个问题其实远远不是那么的重要。我并不是第一个这样认为的人。在很早的时候,就有一位数学家毫...
6

王垠:“解决问题”与“消灭问题”

一直以来,教育者们都注重培养学生“解决问题”的能力,却忽视了培养他们“消灭问题”的能力。各种各样的竞赛,分数和排名,导致学生进入一种思想的枷锁:能“解决问题”的人,就是最厉害的人。然而,事实真是这样吗?我只举一个很简...
9

王垠:程序设计里的“小聪明”(1)

很早就想写这样一篇博文了,可是一直没来得及动笔。在学校的时候,时间似乎总是不够用,因为一旦有点时间,你就想是不是该用来多看点论文。所以我很高兴,工作的生活给了我真正自由的时间,让我可以多分享一些自己的经验。我今天想开始写这系列文章的原因是,很多程序员的头脑中都有一些通过“非理...
1

王垠:谈语法

使用过和研究过这么多程序语言之后,我觉得几乎不包含多余功能的语言,只有一个:Scheme。所以我觉得它是学习程序设计最好的入手点和进阶工具。当然 Scheme 也有少数的问题,而且缺少一些我想要的功能。但是在用了很多其它的语言之后,我觉得 Scheme 真的是非常优美的语言。想要指出 S...
2

Oberon 操作系统:一个被忽略的珍宝

推荐一篇很久以前看的文章:Oberon - The Overlooked Jewel它介绍的是 Niklaus Wirth 设计的一种操作系统,叫做 Oberon。Niklaus Wirth 就是大家熟知的 Pascal 语言的设计者。绝大部分人都没听说过有 Oberon 这个东西存在,...

最新评论