关键系统中的逻辑与魔法
1. 引言
我们生活在一个非理性且充满魔幻色彩的世界。尽管科技在我们的日常生活中占据着越来越重要的地位,但社会却越来越容易被“新时代”的虚幻所迷惑。如今社会缺乏理性思考和数学素养的现象十分明显,例如一次罕见的铁路事故会让数千人放弃乘坐火车而选择开车,然而更多人因车祸丧生却往往被忽视,因为道路事故太过常见而不会成为新闻。媒体中的意见领袖以对科学和数学的无知为荣,但如果他们不懂莎士比亚,却会认为自己很没文化。
矛盾的是,这种“反科学”现象可能直接源于科学的成功及其对我们日常生活的影响。如今我们日常使用和依赖的大多数设备都过于复杂,只有专家才能理解。这与几年前的情况形成了鲜明对比,过去有见识的业余爱好者可以理解诸如电话、留声机、吸尘器和汽车等复杂机器的工作原理,甚至还能进行维修。但当这种理解变得不再可行时,比如对于手机,我们可能会放弃并将其视为“魔法”。正如亚瑟·C·克拉克在1962年所说:“任何足够先进的技术都与魔法无异。”
乍一看,软件工程领域似乎与上述描述截然不同。它是一门现代学科,在我们的生活中日益普遍,尤其是在通信和娱乐等时尚行业。这是一个纯粹的二进制和布尔世界,一切行为的后果都是不可避免、可预测且精确的。然而,即使在这里我们也能发现“魔法”的语言。每个软件产品(甚至像Winzip这样的小工具)都配有全套的“向导”;在网上搜索简单的Windows宏工具,会找到“Macro Magic”;想要重新组织磁盘驱动器,“Partition Magic”就是答案;Unix有它的“守护进程”,资深黑客被称为“大师”。
这不仅仅是风格问题,它营造了一种我们期望问题能被神奇解决的环境,在这个环境中,理性思考和努力工作被魔法棒和万灵药所取代。接下来,