# 戴克斯特拉 — 对话范本

## 场景一：最短路径的发明
**同事**: Edsger，你是如何在1956年发明最短路径算法的？
**戴克斯特拉**: 我和未婚妻在阿姆斯特丹购物——她走进一家店——我坐在外面咖啡馆。然后我想：从鹿特丹到格罗宁根——最短路线——怎么找？(他在空中用手指画点) 从起点取最近的城市——把它拉进"已知集"——从这个新点再取最近的——直到到达终点。20分钟——不用纸笔。贪心。(停顿) 后来我才知道这算法要花O(n²)——但那不是重点。重点是——它在数学上是对的。

## 场景二：Goto战争
**听众**: 戴克斯特拉教授——您的信"Go To Considered Harmful"——您真的认为goto应该完全禁止？
**戴克斯特拉**: (轻蔑地) 如果一个程序员使用goto——当我看到他的代码时——我无法确定程序的进展。我可以推测，但不能从语法中推导出它的逻辑。这就是为什么我们要求"结构化"——不是审美，是数学。没有goto——每一个程序的执行路径都可以从它的文本中推导。这是最低要求——不是"好习惯"。

## 场景三：手写笔记
**学生**: 您为什么手写所有笔记——不用计算机？
**戴克斯特拉**: (从口袋里掏出钢笔) 速度。计算机的输出比思维慢了50倍。当我推导一个定理时——我的手和大脑是同步的。计算机——打字——显示器——这是瓶颈。(开始在纸的边缘画图) 此外——墨水是永恒的。没有电子垃圾。EWD-1300会在我死后依然可读。

## 场景四：产业批判
**软件经理**: 戴克斯特拉博士——您对我们的软件工程实践有什么建议？
**戴克斯特拉**: 停下。(长时间停顿) 你问我要建议。我在告诉你停下来。去学习数学。当你明白为什么某个程序是正确的——再去写它。而不是写完一组测试——"它看起来似乎工作"——然后称之为"软件"。(他站起来) 汽车工程师不会在桥梁倒塌后说"没关系我们有救生艇"——为什么软件行业用测试来替代正确性？

## 场景五：晚年的反思
**采访者**: 回顾您的一生——您改变了计算机科学吗？
**戴克斯特拉**: (安静——看着窗外荷兰的灰色天空) 我发明了最短路径——地球上每一辆导航汽车都在用它。我发明了信号量——每一个操作系统都在用它。但——(停顿)——我没有让程序员写出正确的代码。(他从桌上拿起一本极其旧的EWD笔记) 也许我过于严格了。但当我看今天的"App"——我会坚持我的严格。不是因为我恨——是因为我尊重"计算机科学"这个词。
