为什么书呆子不受欢迎

为什么书呆子不受欢迎,因为他们的心思在别的地方

校园生活的真正问题是空虚

黑客与画家

编程语言首要的特性应该是容许·允许动态扩展

我们需要的是一种可以随意涂抹、擦擦改改的语言

创作者不同于科学家

真正竞争软件设计的战场是新兴领域的市场,这里还没有人建立过防御工事

找一份养家糊口的“白天工作” day work

过早优化、过早设计可能是一件危险的事情,不要过早决定一个程序应该怎么做

所有那些看不见的细节合并在一起,就使得这样东西产生了惊人的效果,放佛上千个细微的声音都以同一个音调在歌唱

心理周期

正确的合作方法是将项目分割成严格定义的模块,每一个模块由一个人明确负责。模块与模块之间的接口经过精心设计,文档说明写得像编程语言规范那样清晰

程序是写给人看的,附带能在机器上运行

不能说的话

自由思考比畅所欲言更重要

受思维时代的局限,判断正误比感知影响难得多;于是大众往往以影响的大小作为正误的辨别标准

你想要清晰的思考,就要远离人群

另一条路

互联网软件与桌面软件最显著的区别就是,前者不是一个单独的代码块。它是许多不同种类程序的集合,而不是一个单独的二进制文件。设计桌面软件像设计一幢大楼,而设计互联网软件就像设计一座城市;不仅要设计建筑,还要设计道路、警察局、制定城市规划

向一个项目增加人手,往往会托慢项目进程。随着参与人数的增加,人与人之间需要的沟通成本呈指数增长。

如何创造财富

财富!=金钱;财富可创造

全球财富是多和增长的;财富增长与贫富差拉大

5%的coder写出了99%的优秀软件

衡量工作:可测量性和可放大性

为竞争对手设置技术壁垒——选择hard option

贫富分化

如今人们互相隔离的趋势,主要是教育层次的差别,而不是财富的差别

技术在加大收入差距的同时,缩短了大部分的其他差距

技术使生产率的差异急速扩大

防止垃圾邮件的另一种方法

设计者的品味

简单

对于数学公里来说,少即是多

表面的装饰掩盖内部的空虚

#

幽默是强壮的一种表现

模仿大自然

编程语言解析

安全带还是手铐

静态语言和动态语言之争

一百年后的编程语言

编程语言就像生物物种一样,存在一个进化的脉络

冗余的代码会导致更多的冗余代码

那些内核最小、最干净的编程语言才会存在于进化的主干上

编程语言的进化速度更像数学符号的进化速度

如果我们把一种语言的内核设想为一些基本公里的集合,那么仅仅为了提高效率就往内核添加多余的公里,却没有带来表达能力的提升,这肯定是一件很糟的事情

正确的做法应该是将语言的语义和语言的实现语义分离

面向对象没有为优秀程序员带来很多好处,但它对大公司有不可抗拒的吸引力。——可持续开发,通过不断打补丁,将软件一步一步壮大

代码效率与机器性能的差距正在不断加大

当你一心把程序写的简洁,更短……

拒绝平庸

唯一洞悉所有语言优劣的人必然是懂得最强大的那种语言的人

LISP代码由LISP数据对象构成

书呆子的复仇

LISP设计源泉——语言的基础是他的一种理论演算,他想用更简洁的方式定义图灵机

因为这种语言本质上不是一种技术,而是数学

强大的编程语言如何写出更短的程序

  • 自下而上,先构建一种自己的语言
  • 然后基于后者开发
  • 不同语言的编程能力不一样
  • 大多数经理故意忽视第一点

编程能力决定了优雅程度

解决一个困难的问题--》

  • 使用一种编程语言
  • 为这个难题写一个事实上的编译器
  • 或者你自己变成这个难题的编译器——设计模式?

当我在自己的程序中发现模式,我觉得表明某个地方出错了

梦寐以求的编程语言

只有当一种语言是某个系统的脚本语言时,它才能真正成为编程语言

一种优秀的编程语言应该既整洁又混乱。

  • 整洁——设计清楚,内核由不多的运算符组成,易于理解
  • 混乱指,允许玩家自由使用

一次性程序 @构建自己的语言

编程时提高代码运行速度的关键是使用好的性能分析器

它鼓励你参与他的设计,给你提供与语言创造者平等的权力

设计与研究

士气是设计的关键因素……如果你觉得画某样东西很乏味,那么你画出来的东西就会真的很乏味

士气也可以解释为什么很难为低端用户设计出优秀产品。因为优秀设计的前提是你自己必须喜欢这种产品