《Coders at Work》的原文摘录

  • 不管是面向对象编程,还是函数式编程,不论是基督教还是犹太教,我会吸取其中有用的东西,但是不会全盘接受。 Tony Hoare的图灵奖获奖感言中有一句充满了大智慧的话,讲的是设计一个系统的两种方式:“一种是尽量简单,这样显然不会有什么问题;另外一种是,尽量复杂,这样没什么显然的问题。” 后面说的话同样包含智慧,但是知道的人不多:“第一种方法其实更难。它需要从复杂的自然现象中发现简单物理规律的那种技能、投入、洞察力,甚至是那种灵感,同时还需要你能接受你的目标受限于物理、逻辑和科技的约束,以及在目标间有冲突的时候可以妥协。委员会不会这么做,除非已经完全来不及了,不得不做。” (查看原文)
    任平生 1回复 3赞 2013-04-23 12:17:08
    —— 引自章节:5 Joshua Bloch
  • Well, it was decisions like not using C++ and not using threads that made us ship the product on time. The other big thing was we always shipped all platforms simultaneously; that was another thing they thought was just stupid. "Oh, 90 percent of people are using Windows, so we'll focus on the Windows side of things and then we'll port it later." Which is what many other failed companies have done. If you're trying to ship a cross-platform product, history really shows that's how you don't do it. If you want it to really be cross-platform, you have to do them simultaneously. The porting thing results in a crappy product on the second platform. (查看原文)
    [已软注销] 1赞 2012-03-13 14:42:17
    —— 引自第20页
  • 我就是这么学编程的。说白了,就是先鼓捣出一个程序,然后坐在机器前,花上几周时间来一点一滴地改进它。 某领域有位科学家,随着年纪渐长,他的学识和阅历也日渐精深。然后有一天他宣称:“哦,对了,我学过的知识中,有些的确回报很大,但有些从来就没用过。我不会再让我的学生为这些没用的知识浪费时间,也不会再讲授任何底层的基础知识。了解那些强大的理论就足够了,忘掉我是怎么得到它们的吧。” 我认为,各个领域的科学家都会犯这种根本性错误,他们不明白,学一门知识必须全方位、多层次了解,浮沙之上筑不起高台。然而,我们的大脑在完全了解了基础知识后,会把它们都塞进一个不起眼的角落里。所以,那些老学究还真以为自己用不着它们。 (查看原文)
    任平生 2回复 2013-04-22 18:54:18
    —— 引自章节:15 Donald Knuth
  • 现实中,我把自己积攒的几千页资料和习题都写进了书里,这样它们就不会占据我有限的大脑空间。不过我把它们写进书里时,还得在重温一遍。此外,我还在书里提供了习题答案,因为再过十年,我肯定会忘记这些麻烦问题的解法,到那时,我又得花大把时间重新解题,所以我最好还是给自己预留一些基本线索。 对我的书,人们时常持有两种不同评价,这让我感到左右为难。一种评价是:“哎,这部分内容太复杂了,你还是别提它比较好。”另一种评价是:“你这书上的知识都太微不足道了,没什么意思。”对前一种评价我愿意回答:“我干脆什么都别提算了。”对后一种评价我想说:“鄙人实在是太才疏学浅了。” 说到底,对我来说至关重要的是,所有能在半夜纸篇幅之内解释清楚的精妙知识,我这书里必须得有,所有精彩得让我过目难忘的材料,我也决不会错过。 如果我不写这些书的话,别人查找类似资料的过程可能会困难得多。这正是我不断写作的动力。 另外要提到的一点是,我宁愿以一种最接近编程实践的方式来探索计算机科学领域,也不愿借着发表一些虽有理论意义,却对实际编程毫无用处的东西,去博取学术上的功名。 令我大为惊讶的是,当一个人写书的时候,有些什么东西在潜移默化的影响着、改变着他的表达方式,我甚至不明白它们是怎么做到这一点的。TeX给我带来的最重要的影响就是这样——它改变了我从精神层面看待事物的角度,也由此改变了我的写作风格。我会更自由洒脱,会更全面地看问题,也会对写出来的东西更有把握。 我现在特崇拜那些从事大型软件项目的人——若非亲身实践过,我决不会这么想。 我觉得这句话是条不变的真理:管理者不该认为编程时间是可预测的。 写作的第一要旨是去了解你的读者,……其次,对于科技写作来说,为了加深读者对你作品所表达思想的印象,达到一种前呼后应的效果,你最好能以某种互补的形式,把所有内容说上两遍。 我的程序理应服从我自己的直觉,而不是... (查看原文)
    任平生 2回复 2013-04-22 18:54:18
    —— 引自章节:15 Donald Knuth
  • 你阅读别人的材料越多,未来开拓创新的能力就越强,至少在我看来是这样。 多种不同形式的编程记法还是有用的——不要只阅读那些编程习惯跟自己一样的家伙的代码。 (查看原文)
    任平生 2回复 2013-04-22 18:54:18
    —— 引自章节:15 Donald Knuth
  • 编写自己回头还能理解的代码,这点至关重要。 任何东西只要表达恰当,不论精炼,抑或平淡,都是具有美感的。 通常当你第二或第三次剪切粘贴同一段代码时,就得停下来把这段代码抽取成子程序了。 如果你理解不了某件东西的工作原理,那就找做这块的人问。……不知道某件东西并不代表你笨,只是暂时还不知道罢了。 快速掌握别人的代码并弄清楚其用法,这项必备技能变得更加重要。“这个我理解不了,干脆自己写一个”的做法过去很管用。不管这个想法好坏与否,你还是可以去做。但现在,这么做要难得多。 至今我还未看到过真正让人眼前一亮的建造类玩具。真叫人沮丧。 (查看原文)
    任平生 1回复 2013-04-22 22:24:03
    —— 引自章节:1 Jamie Zawinski
  • 厉害的人从来只愿跟厉害的人一起工作。可能这听起来有点取巧,但这也算是我识别天才的一种方法。 (查看原文)
    任平生 1回复 2013-04-23 11:29:20
    —— 引自章节:4 Brendan Eich
  • 我认为年轻人有巨大的优势,脑袋瓜更灵光。他们缺的是经验和智慧。我们这些老人们有时候会变得顽固、跟不上节奏,但是有亲自走过一些弯路并从中得到的宝贵经验,可以传授给年轻人。不过年轻人经常不听,非要自己再去走一遍弯路。对这种情况,我只能扼腕叹息。 (查看原文)
    任平生 1回复 2013-04-23 11:29:20
    —— 引自章节:4 Brendan Eich
  • 我有理由相信,认为一门语言比其他语言都能更好地,或者说一样好地解决所有问题是一种错误的认识。我相信对于不同的应用领域,都有特定的语言更适合。 (查看原文)
    任平生 1回复 2013-04-23 13:37:14
    —— 引自章节:9 Guy Steele
  • 真想做到跨平台的话,就必须同时开发。所谓的移植只会令产品在第二平台上蹩脚不堪。 (查看原文)
    skyivair 2013-08-24 09:39:20
    —— 引自第16页
  • Oh, it only does what it does because Microsoft stopped letting it improve, so why should we want better syntax; it’s actually a virtue to go lambda-code everything. (查看原文)
    dexteryy 1回复 6赞 2011-03-26 19:56:39
    —— 引自第111页
  • It’s very reductionistic and it’s not for everybody. Subsetting is powerful. But to say everyone has to program in this sort of minuscule subset, that’s not usable. tries to make everybody into an expert and it will not work on the large number of programmers out there who have been mistrained in these Java schools. (查看原文)
    dexteryy 1回复 6赞 2011-03-26 19:56:39
    —— 引自第111页
  • we do make sure we can recast all of the sugar as macros when we have macros. (查看原文)
    dexteryy 1回复 6赞 2011-03-26 19:56:39
    —— 引自第111页
  • We tried to add doc comments of some sort to ES4 with first-class metadata hooks or reflection hooks and it was just impossible to get everybody to agree. (查看原文)
    dexteryy 1回复 6赞 2011-03-26 19:56:39
    —— 引自第111页
  • That was one of the reasons why in JavaScript we were interested in optional typing and we still are, though it’s controversial in the committee. There’s still a strong chance we’ll get some kind of hybrid type system into a future version of JavaScript. (查看原文)
    dexteryy 1回复 6赞 2011-03-26 19:56:39
    —— 引自第111页
  • Seibel: Was the ES4 proposal your chance to show the world that, “Look, I’m a really smart guy and JavaScript is a really a good language”? Eich: No, I don’t think so. I know Doug may think that. I don’t think Doug knows me that well, but the thing is, I’m not really looking for respect, especially from the Java-heads or the trailing edge. (查看原文)
    dexteryy 1回复 6赞 2011-03-26 19:56:39
    —— 引自第111页
  • Bloch:随着年龄的增长,我逐渐意识到编程不仅仅是让程序运行而已;编程是创造一个易于理解的、可以维护的、高效的作品。一般来说,我发现,干净整洁的代码,往往运行起来更快。这与流行观点正好相反。而且即使它们不快,也可以很容易地让它们变快。正如人们所说的,优化正确的代码比改正优化过的代码容易多了。 (查看原文)
    kongxx 2011-05-15 21:11:49
    —— 引自第134页
  • Tony Hoare的图灵奖获奖感言中有一句充满了大智慧的话,讲的是设计一个系统的两种方式:“一种是尽量简单,这样显然不会有什么问题;另外一种是,尽量复杂,这样没什么显然的问题。” (查看原文)
    kongxx 2011-05-15 21:17:15
    —— 引自第151页
  • Seibel:谈到写复杂的代码,我注意到有些某种意义上说太聪明的人写出的代码会很烂。因为他们确实可以把整件事情都丢到脑子里,所以他们可以写出来一大堆乱成一团的代码。 Bloch:我同意你的说法,这些人聪明到了可以处理非常复杂问题的程度,而同时缺乏对我们这些无法理解他们代码的人的同情。他们认为:“我能看懂而且使用这些代码,所以他们一定是好的。” (查看原文)
    kongxx 2011-05-15 21:19:14
    —— 引自第155页
  • 是打印语句。编程之神说过:“应当在程序中你认为可能出错的地方放上一些pringf语句,重新编译并运行。” (查看原文)
    kongxx 2011-05-15 21:46:25
    —— 引自第175页
<前页 1 2 3 4 后页>