一个图灵奖得主,放着巨著不写,花十年造了个排版软件。他把版本号设成π,说死后剩下的bug都算“功能”。谁找到真bug就发奖金,每年翻倍,最后涨到327美元——然后bug被找光了。收到支票的人没人去兑,全裱了起来,比钱值钱的是这份荣誉。
1. 为字距停下脚步的人
*Donald Knuth,2005 年,他暂停了自己一生最重要的工作,去解决一个排版问题,(Jacob Appelbaum / CC BY-SA 2.5)。
1974 年,Donald Knuth 获得了图灵奖——计算机界的最高荣誉,那年他 36 岁,他正在写《计算机程序设计艺术》——一部七卷本的著作,同事们已经在当经书对待了,他已经完成了三卷。
ACM 等不及了,他没写完,他们就把奖颁给了他。
然后,几年后,Knuth 停止了写作。
他的出版商换成了数字排版,他收到了第二版第二卷的校样,他看着页面,数学公式看起来不对,不是灾难性的——大多数读者根本不会注意到,但字距偏了,符号之间的间距微妙地碎了,原来热金属印刷的美感荡然无存。
对大多数人来说,这是个小小的不快,你注意到它,然后翻篇。
Donald Knuth 不是大多数人。
他决定,在继续写他一生最重要著作之前,他需要先修好排版,别抱怨,修好它,自己来,从零开始。
他休了学术假,接下来十年,他造出了 TeX。
2. 趋近于π的版本号
TeX 一夜之间改变了学术出版,物理学家、数学家、计算机科学家——任何需要在印刷品中表达精确符号的人——全都用上了它,45 年后的今天,它仍然是标准,你在过去四十年里读到过的任何严肃的数学或物理论文,都是 TeX 排的。
但 TeX 的了不起之处不在于它的寿命,在于它的版本号里嵌着的底气。
大多数软件:1.0、2.0、3.0,有些用年份,TeX 两者都不用。
TeX 的版本号是 π 的近似值。
3 → 3.1 → 3.14 → 3.141 → 3.1415 → 3.14159……
TeX 版本号
每次发布多加一位小数,TeX 趋近完美,就像 π 趋近一个永远无法真正抵达的常数:越来越近,永不到头。
Knuth 宣布过,他去世之后,版本号将永久锁定为 π,剩余的 bug 将被重新归类为功能。
他不是在反讽。
3. 再也发不出去的悬赏
为了撑住这份底气,Knuth 设立了 bug 悬赏。
在 TeX 里找到一个真正的 bug:2.56 美元(二进制2的8次方 256),赏金每年翻倍——5.12 美元、10.24 美元、20.48 美元、40.96 美元。
Knuth 一辈子都在研究增长函数,他太清楚指数级翻倍意味着什么了,他还是开了这个悬赏。
赏金最终涨到了 327.68 美元——然后停了,不是因为他关闭了它,是因为 bug 没了。
*Knuth 悬赏支票,收到支票的人没有去兑现,他们把它裱了起来,(Wikimedia Commons / CC BY-SA 3.0)。
那些找到 bug、收到支票的人,没有把它存进银行,他们把它裱了起来,一张 Donald Knuth 亲笔签名的支票——证明你发现了他漏掉的东西——作为藏品,比作为钱值多了。
NASA 为40万行代码建专用数据库:每一行变更都要有“理由”
韬定律是不是新瓶装旧酒,醉翁之意不在酒(韭),顺带预测下一代手机散热风口
夜雨聆风