
Maurice Wilkes(莫里斯·威尔克斯,英国,1919 年生)在 软件工程与分时系统 领域的位置,很少有人能给出准确坐标。他在 1948 年就意识到「写程序」和「造计算机」是两件不同的事,并因此在六十多年前发明了软件工程这个词——他还证明了一件更反直觉的事:一台计算机可以让很多人同时使用。
一、问题一:机器排队的程序该由谁来写——「软件」这个词的分水岭
英国达灵顿,1930 年。这个坐标决定了 Maurice Wilkes 早年接触到的数学与工程语汇——生于英国达灵顿;他在剑桥大学数学系学习,因加入莫里斯·威尔克斯所在的 EDSAC 项目而投身计算,并进入剑桥大学;他的博士研究涉及射电天文与宇宙学
他在剑桥的成长路径与当时多数计算机科学家不同——他是从数学与天文学转入计算的,这使他习惯于把计算机当作一台需要被严格论证的数学机器。
EDSAC 是剑桥自研的电子存储自动计算机,他作为早期成员参与其开发与编程,这是他与「程序」这个概念的最初相遇。
他在 1945 年前后完成的论文工作涉及日月引力计算,这让他熟悉了当时的数值计算实践——这些经验后来在他讨论软件可靠性时被反复引用。
他早年还参与设计了一台面向射电天文的仪器,这段经历让他对「设备与环境」这类物理约束有工程师式的敏感。
他 1919 年生于达灵顿,那一年距离第一台电子存储自动计算机的建成还有近三十年。
二、1948 年:软件工程这个词的诞生
1948 年的 在《Notes on the Present State of Electronic Computers》报告中提出「软件工程」这一术语是Maurice Wilkes 的分水岭。核心论证是:当时的编程依赖少数掌握机器细节的专家,因此无法规模化;要让计算机被广泛使用,软件开发必须成为一门有方法论、可教授、可由更多人掌握的工程学科,这一点后来被整个软件工程与分时系统领域反复引用,而 「软件工程」一词在两年内被整个行业接受,而剑桥据此建立的计算机实验室成为世界第一个计算机科学系。
报告中有一段被反复引用的表述,大意是「如果把写程序当作一种可以教给所有人的技艺,而不是少数天才的秘技,计算机就能被更广泛地使用」。
他同时指出当时的软件状况:没有统一的语言、没有调试手段、文档几乎不存在、错误无法定位——这些问题在硬件可靠性远高于软件可靠性的年代尤其刺眼。
同一份报告里他给出了分时系统的构想雏形:让多台终端连接到一台中央计算机,用户在输入命令的间隙可以被切走,从而让昂贵的机器时间被多人共享。
剑桥随后在 1949 年建成了世界上第一个计算机科学系,并把「软件工程」作为课程体系的核心——这个建制决定了几十年来计算机教育的学科形态。
他在 1948 年提出「软件工程」一词,并在同一份报告中给出了分时系统的构想。
三、1951 年:EDSAC 2 与分时系统的第一次运行
1951 年前后,Maurice Wilkes 在 剑桥大学做的是 主持实现 EDSAC 2,并建成世界上第一个可实际交互的分时系统。这件事的技术核心是 核心机制是把处理机的控制权在多个用户之间快速轮转,让每个人感觉像在独占机器;此前计算机只能由一个操作员独占,他人排队等待,而它之所以重要,在于 分时把计算机从「研究机构的专属设备」变成了交互式工具,这一转变是个人计算与后来整个软件产业的起点。
在分时之前,一台计算机的使用方式是:提交穿孔纸带作业、排队、等待结果返回。程序员无法与程序交互,调试一个错误可能需要数天的周转。
EDSAC 2 的分时实现让多个用户同时通过电传打字机终端与机器交互,程序出错可以立刻看到并修改——这种「即时反馈」彻底改变了编程方式。
他同时设计了一套面向程序员的实用工具:符号化的输入系统(用户直接敲命令而非穿孔)、一个符号汇编器、以及早期意义上的编辑与链接工具链。
他推动的「软件工程」课程在此期间产出了一批系统性的教材与工具,其中包括后来广为人知的「测试先行」与程序测试思路的早期版本。
在分时之前,一台计算机的使用方式是:提交穿孔纸带作业、排队、等待结果返回,程序员无法与程序交互,调试一个错误可能需要数天的周转。
他在 1951 年主持实现 EDSAC 2,建成世界上第一个可实际交互的分时系统。
四、问题二:计算机该属于谁——学术计算中心的领导与一场持续数十年的判断
从 剑桥大学计算机实验室从事 EDSAC 2 与分时系统开发的阶段 到 剑桥大学计算机实验室(1965 年),Maurice Wilkes 完成了一次关键的问题重定义。如何让一台昂贵的研究设备变成多人都能同时使用的公共资源 属于 剑桥大学计算机实验室之前的世界;剑桥大学计算机实验室 要回答的是 如何把软件从一个专家的手艺变成一门有方法论、可教给所有人的学科。
他在剑桥的二十年里把实验室建成了世界最大的计算研究机构之一,并培养了包括 Turing 在内的多位重要学者。
他关于「软件应当可移植」的观点在那个时代极具前瞻性——当时各家的机器体系结构互不兼容,软件移植几乎等于重写。
他长期主张计算应当被作为一项公共基础设施来组织,这个立场贯穿了他参与英国国家计算中心设计与国际合作的全过程。
他晚年推动把计算史完整记录下来,参与创立了计算机历史档案馆并投入大量精力保存早期机器与文档——这批档案是后来该领域历史研究的重要基础。
他在 1965 年前后参与创建英国国家计算中心,推动学术机构共享计算资源。
五、1980 年代:把「软件危机」这个诊断贯彻到底
1981 年前后,学界的主流判断仍偏保守。在分时与软件工程概念提出的最初十余年里,工业界几乎无人跟进——主流仍认为计算机是少数专家的专属设备,但 Maurice Wilkes 选择 他的理由基于一个具体观察:程序编写的难度与可调试性,而非硬件速度,才是限制普及的真正瓶颈,代价是 他所在的实验室在最关键的那些年里几乎没有得到与其洞察相称的产业支持,Edinburgh 与 Cambridge 的分时实践长期处于边缘。
他认为「软件危机」的根因是规模与结构,而非程序员不够努力或工具不够先进——这个判断把注意力从个人技巧转向了系统结构。
他主张软件应当像硬件一样被设计:有明确的接口、有可验证的组件、有可替换的实现——这套主张后来成为软件工程教科书的骨架。
他在书中对当时盛行的开发方法提出了相当直接的批评,包括认为过度依赖流程与文档而忽视结构本身。
他参与创办的研究机构后来成为分布式系统与软件架构研究的重要基地之一。
他在 1981 年出版《计算机软件:结构与设计》,系统阐述软件工程方法。
六、他开始的三件事:三个都从「想法」开始的东西
ACM 图灵奖(1967 年首颁)与 IEEE Computer Pioneer Award 等多项荣誉(1967)之后,Maurice Wilkes 的工作重心转向 持续推动计算机史料的保存与整理,并推动剑桥计算中心的长期建设。这条线的意义在于 使软件工程、分时系统与计算机档案三条工作线同时延续了下来。
软件工程这个词由他命名,而软件工程作为一个学科、作为一个产业职业类别、作为一种制度化的工程实践,也由他所在的研究机构率先建立。
分时系统的提出同样出自他之手,此后四十年,「交互式计算」这一基本形态几乎完全建立在他当年的构想之上。
他在剑桥推动的计算机历史档案工作,保存了大量早期机器、文档与口述记录,其中相当一部分在其他机构意识到其价值之前就已抢下——这些档案后来成为该领域历史写作的底本。
他留给后来者最实用的习惯是一条判断标准:遇到任何依赖个人技巧而无法被复现的做法,就问「能不能把它变成一个可以被别人也做出来的东西」——这是软件工程从第一天起就在追问的问题。
参考来源
- Maurice Wilkes,《Notes on the Present State of Electronic Computers》, 1948
- Maurice Wilkes 与 Wheeler,《The EDSAC Programming System》相关论文
- Maurice Wilkes,《Computing Before Computers》, 1959
- Maurice Wilkes,《Computer Software: Systems and Programming》, 1981
- 英国国家计算机中心(NCC)建设史料与剑桥计算机实验室历史档案
- ACM 1967 年度图灵奖官方授奖说明