我于2019年12月20日读了Paul Graham所著的黑客与画家

★★★☆☆Hackers & Painters

黑客与画家是硅谷教父 Paul Graham 的杂文集, 中译本的译者是博客圈内小有名气的 阮一峰

我认为作者的很多观点都有失偏颇, 存在明显的幸存者偏差(survivorship bias)。比 如作者把初创公司 Viaweb 的成功很大程度归功于采用了 Lisp 编程语言,使得他们的团队 能够快速的开发,就像有了“超级武器”。我个人认为软件工程不是一个初创企业的成功的充 分条件,—— 甚至不是一个必要条件。市场上有很多商业上很成功的公司, 比如Etsy,其 所以成功在于它们解决了用户的问题, 即使下面的开发栈非常稀松。 一个公司的成功往往 是产品、技术、市场等多种因素的综合结果,就好比“幸福的家庭都是相似的,不幸的家庭 各有各的不幸”。

另一方面,作者的很多观点确实值得玩味。

校园霸凌源于秩序的缺失

当一个群体缺乏一个公允的排名方法,其中的个体往往会通过人气排名(popularity contest)来确定在组织里的相互地位。这个在美国学校里颇为流行,美国高中尤甚。 我的 理解是

  • 美国的高等教育资源相对丰富, —— 除了竞争激励的常春藤,还有实惠的州立大学,门槛 更低的社区大学。
  • 即使考不上大学,美国的蓝领工人高中毕业后也可以有份体面的工作来养家糊口。

因此美国的高中生没有中国高中生“千军万马过独木桥” 的压力。美国高中生往往把全部的 精力投入到如何提升自己的个人魅力。 书呆子(nerd)通常是这场比赛的输家,兼职的到 底干不过全职的啊。

在金字塔中央的那部分人,往往是校园霸凌的始作俑者。他们缺少公认的社会地位, —— 比 如橄榄球队员抑或是啦啦队长;但他们可以通过霸凌另一批更不受欢迎的人,从而取得较高 的社会地位。

政治正确

作者对耸人听闻的真话(比如达尔文的进化论,哥白尼的日心说) 和万金油的不合时宜 (inappropriate)所采取的态度都是“守口如瓶,笑脸相迎(i pensieri stretti & il visosciolto)”, —— 这和儒家的 “穷则独善其身,达则兼济天下” 颇有异曲同工之妙。

快速积累财富需要你的工作有可测量性和可放大性

你的职位产生的业绩,应该是可测量的,否则你做得再多,也不会得到更多的报酬。此外 ,你还必须有可放大性,也就是说你做出的决定能够产生巨大的效应。

高科技创业满足了以上的要求。 小团队特性保证了你的工作的可测量性,而零边际成本使 得迅速地占有更大的市场成为可能。

编程语言的进化

编程语言从打孔卡片到汇编语言,再从 Fortran, C 到更高级的抽象。编程语言逐渐从机 器的指令进化成为面向程序员,描述行为的高级语言。一方面高级语言更具有可读性,方便 维护; 另一方面编译器的发展以及计算机体系的日益复杂;使得高级语言的运行性能足够 快1

作者认为

一种语言的内核设计得越小、越干净,它的生命力就越顽强。

这点我同意,语言应该是自洽(self-contained)的,一个小到不能再小的核心对日后的维护 大有裨益; —— 程序代码从某种意义上说,既是功能(features),也是拖累 (liability)。


  1. 在 SIMD 和超标量流水线日益普及的今天,编译器相对手工汇编往往能够生成更加高效 的机器码。原因在于防止流水线停顿,安排读写顺序来充分利用多个执行单元对手工汇 编的程序员有非常高的要求。