Steve McConnell的博客帖子。详述了程序员产率相差10倍的来历。插草标 卖身推荐。引用一段:80年代中期,波音上了一坨重要项目。80枚程序员参与其中。项目不顺利,眼看要错过一坨不容错过的最后期限。为了保证该项目成功,波音调走了这80枚老大,请来一个人。于是这枚老大以一人之力,按时按量交割项目。
剩下的问题是:我们怎么才能培养出这种一击必杀的能力?
阅读全文>
发表于 @ 2008年03月28日 21:42:00|评论(loading...)|编辑
早上上班,听Software Engineering Radio对Joe Armstrong的访谈。Software Engineering Radio办得真不错。请来业界风云人物娱乐大众。访谈前主持人做了功课,提的问题颇为有趣,引得被采访着侃侃而谈。上期对Galen Hunt的访谈也挺精彩,把Singularity OS吹得比Singularity还有卖点。
Joe在谈到并发编程对程序员冲击时提到2006年的新闻:2010年Intel会推出32核的CPU Keifer。到时候,写惯顺序处理程序的程序员在老板面前抱怨性能问题时需要三思。因为老板到你机器上一看,保证怒从心头起,恶向胆边生:靠!你丫才用了3%的CPU cycle,也好意思说遇到性能问题!想来一枚对并发编程无所谓的程序员,听了这段话应该对并发编程兴趣大增吧?
除开便于跟踪状态出错地点外,我以前一直奇怪Erlang的变量只能赋值一次的原因。要说支持合理并发,进程间禁止共享数据,强化消息传递就行了。进程内还是可以支持私有状态嘛。结果Joe说Erlang变量赋值的规则是当年用Prolog时传承下来的风格,并没有特别的原阅读全文>
发表于 @ 2008年03月21日 02:03:00|评论(loading...)|编辑
接着八卦前先回答老大们直指灵魂的问题。不就是系统状态遍历的问题么?干嘛非得用什么时序逻辑、模型一类的形式化手段啊?搞得比陈凯歌还深沉。做人不能这么无耻不是?找个真正的程序员,放出手里的蝴蝶不就搞定了?
嗯,很多程序的确可以靠程序达人强大的自觉和天才的排错能力搞定。问题是,模型检验的对象是高并发复杂系统(比如说1020个状态),目标是绝对可靠地查出系统的错误,既不错杀三千,也不放过一个。这些系统失败时的代价也高昂。奔腾94年的FDIV错误花掉Intel至少5亿美元。偏偏我们对并发系统编程也没有什么特别有效的手段,不然大家也不至于对Heisenbug津津乐道了。我们在这种情况下怎么能全靠自己的直觉?何况直觉有时相当不可靠。在这篇让人崩溃的论文问世前,谁能想到在一个异步多进程拥有可靠网络的的分布系统中,哪怕一个出错的进程就能所有进程无法通过消息传递对一个值达成共识呢?当我们需要确保设计无错的时候,形式推理非常称手的工具。有些老大可能不知道,我们只所以能放心使用常用的数据结构和算法,多少也因为那些算法经过了严格的证明。当初Purely Functional Data St阅读全文>
发表于 @ 2008年03月18日 10:34:00|评论(loading...)|编辑
从傅国涌的 民国往事看来的。那个时代的风骨啊。按理说不应该全文转帖,但是考虑到牛博上反动文人们随时会被和谐,就破例抄在这里了。CSDN的大大们放心,这篇文章一点都不反动。“人各有志,给分六十” 物理老师魏荣爵在学生谢邦敏富的试卷上赋诗一首:“卷虽白卷,词却好词。人各有志,给分六十。” 天津南开中学名动天下,在抗战前后创办于沙坪坝的重庆南开中学,在“允公允能”的校训下,也有无数值得莘莘学子追忆的往事。经济学家吴敬链回忆:“我虽然只在南开念过两年书,但南开给予我的基本训练方面的影响,却是极其深远的。除语文、数学等功课外,从逻辑思维、语言表达,‘公民’课上关于如何开会、如何选举、如何表决的训练,……都使我终身受用不尽。总之,就我的亲身感受而言,南开教育之所谓的‘高贵’,指的并不是生活上的奢侈和安逸,也不是目中无人和颐指气使,而是对于德、智、体、美四育并进的高素质要求。”南开中学自编国文课本,首席语文教师孟志荪是主编之一,蒋介石所喜欢的王阳明一篇也未能入选,曾国藩家书也只选了一篇。蒋介石几次亲临沙坪坝看望张伯苓,“未闻校方出来组织三呼万岁之类的举阅读全文>
发表于 @ 2008年03月08日 00:50:00|评论(loading...)|编辑
2007图灵奖和模型检验不知道长达半年的疯狂加班是否损害了自己的心理健康。回顾过去几个月,似乎除了工作嘛都没干。人仿佛颓了,觉得时光了无意义地飞逝,过去半年的泰半记忆好像盛夏阳光里的冰块,蒸发得不剩一丝水汽。幸好不是全无亮点,比如看到好朋友幸福无比地结婚。中学好友到家里盘桓月余,也是一大快事。Steve McConnell在Rapid Development里的案例分析里提到death march之后程序员往往大批离开。想不到这次亲自体会了一把,人生又完整了一点。过去几周一系列戏剧性的事件让我仔细思考了一下激励团队士气的问题,也算小小的收获。跑题了。本来想说什么来着?对了,图灵奖和模型检验。2007年的图灵奖授予Edmund M. Clarke, E. Allen Emerson, and Joseph Sifakis,表彰他们在模型验证方面做出的开创性贡献。前段时间白天忙项目,晚上改简和历准备面试,也就没有心情八卦。刘江老师在他的博客里做了详细介绍,在这里推荐一下。关于几位大牛,俺没有什么补充的,就八卦一下他们的研究方向:模型检验。模型检验是计算机科学理论与实践结阅读全文>
发表于 @ 2008年03月03日 11:00:00|评论(loading...)|编辑
好像太八卦了一点,不过这是Knuth ,我的终极偶像啊。就算他没有写注定留名青史的The Art of Computer Programming(是滴,俺有空还在读),就算他不是最早让人们认识到算法也可以定量严格分析(没有算法分析,哪里有现代计算机科学嗫?)的人,就算他没有发明和改进LR解析方法,就算他不是最早独立实现Algo编译器的人,就算他不是编程语言经验研究方法的奠基人,就算他没有提出Attribute Grammar,只看他10年间写出免费排版软件TeX(读Tek哈)和字体软件METAFONT,单枪匹马灭掉一个行业:科技出版物人肉排版,就足以让人诚服。这种欧拉式的文艺复兴男不是每个世纪都有的。
还是Lance Fortnow总结得好:Knuth的态度是I want to solve problem X and I'll use whatever math I need to solve it, even if I have to develop it myself.
另外这里有一堆连接供八卦人士享用。这些包含热情的文字读来极富乐趣,强烈推荐。
Update:阅读全文>
发表于 @ 2008年01月11日 00:45:00|评论(loading...)|编辑
从BBC看来的。 AOL从2008年2月1日起停止支持和开发Netscape,我用的第一款浏览器。缅怀一下。不知这算不算做软件必须做为公司直接赚钱的软件的旁证?AOL就一抱残守缺的ISP,怎么会关心一款软件的健康发展?阅读全文>
发表于 @ 2007年12月31日 13:23:00|评论(loading...)|编辑
更新:忘记加入对generic function的概述了。刚才补上。另外chenxiaoshun老大提了个很好的问题:generic function和function overloading有什么区别?区别就是,调用哪个generic function是在运行时决定的,同调用虚函数实现多态一致。而重载函数是在编译时确定的。补充的内容是:
Generic function就是用来解决这类多分派问题的。运行时调用generic function时,会根据该函数的*所有*参数决定分派对象。总的规则是越具体的类型占用越高的优先级。比如说foo(Number)比foo(Object)有更高的优先级,因为Number是Object的子类,比Object具体。另外,generic 函数里所有参数的分派权重一样,所谓的对称多分派。Groovy采用了不对称多分派。系统会先比较第一个参数。如果不能决定,再比较第二个。。。
两个半月前的旧闻。不过今天才稍有闲暇,抽空八卦。JavaScript 2, 也即ECMAScript 4(简称ES4)的官方综述出笼,Yahoo!的Douglas Cr阅读全文>
发表于 @ 2007年12月13日 13:48:00|评论(loading...)|编辑
从pmarca那里看到的。 就是Rupert Holmes的Pina Colada Song的翻版。只是结局没有那么美妙。
这里有安普若写的介绍。
阅读全文>
发表于 @ 2007年09月20日 02:21:00|评论(loading...)|编辑
PC时代初期犹如拓荒小说里的南非。拓荒者们没有精巧的工具,没有丰厚的财力,没有经验,甚至没有足够的食物。一人一镐一簸箕,和百折不挠的狂热而已。然而风云际会,不定一镐下去,就是非洲之星。二、三十年前的黑客们就是PC时代的拓荒者。技术原始,无损他们奔放的想象力。工具粗陋,却激起他们征服的雄心。那时没有铺天盖地的类库,所以他们钻研P.J. Plauger的雄文。那时没有巨无霸一样的操作系统,所以他们细读Lion的经典。那时没有趁手的软件,所以他们创造奇迹。作为程序员,想来多少对这段动人往事好奇。Dan Bricklin怎么就做出了spreadsheet?Ray Ozzie从哪里得到关于群件的灵感?Jef Raskin如何让Machintosh成为PC的不朽经典?Butler Lampson发明所见即所得编辑器和Ethernet时,经历了怎样的顿悟?正如Peter Norvig在书评里所说,理解编程,除了学习黑客们铿锵的代码外,也许还要了解他们丰富的内心。虽说高手不可模仿,因为“学问跟他整个的性情陶融为一片,不仅有丰富的数量,还添上个别的性质;每一个琐细的事实,都在他的心血里沉浸滋养,长了神经阅读全文>
发表于 @ 2007年09月06日 08:59:00|评论(loading...)|编辑