在医疗信息技术领域,MUMPS(马萨诸塞综合医院实用多程序系统)语言占据着特殊地位。它诞生于20世纪60年代,至今仍在全球数千家医院的核心系统中运行。然而,当人们追溯其发展史时,一个关键节点——MUMPS第一个正式标准——却被大量历史记载所扭曲。近期,多位技术史研究者与语言维护者联合发声,指出“大多数历史叙述都搞错了MUMPS第一个标准的真实面貌”。
被忽视的时间节点:并非1990年
最常见的误解是将MUMPS标准的诞生时间推迟到20世纪80年代末甚至90年代初。许多技术史文章、教材甚至官方文档在回顾时,习惯把1984年发布的“MUMPS-84”或1990年“MUMPS-90”标记为首个标准。事实恰恰相反:1976年,美国国家标准协会(ANSI)正式批准了X11.1-1976标准,这才是MUMPS历史上第一个官方标准。
当时,MUMPS已经在麻省总医院、哈佛医学院等机构使用了十年,多个不兼容的实现带来了互通难题。1974年,由用户和开发者自发组成的MUMPS开发委员会(MDC)成立,并迅速在两年内推动完成了标准化流程。这个时间点比外界通常认为的要早近十年。
标准制定者被“张冠李戴”
另一个被扭曲的细节是标准化的主导力量。不少历史叙述将MUMPS标准的制定归功于某家大型商业公司,例如当时推出DSM-11的Digital Equipment Corporation(DEC),或后期收购MUMPS产品的InterSystems。实际上,ANSI委员会由非营利性学术机构、医院信息部门和小型软件公司组成。首版标准的主编是麻省总医院的Octo Barnett博士,他是一名医生兼程序员,而非企业高管。这种草根式的标准化模式,使得MUMPS标准更注重临床实际需求,而非商业利益。
标准内容被“现代化”解读
第三个普遍错误是今人用后来版本的特性去套用1976年标准。许多介绍声称第一个标准就包含了“全局数组(global)”、“多用户并发”和“原始磁盘访问”等核心概念,这虽然正确,但常常被过度解读。实际上,1976标准定义的“全局数组”仅支持一维和二维结构,且没有显式的锁机制——后来的版本才补充了事务回滚和锁命令。更重要的是,当时标准中完全没有网络协议、图形用户界面或对象模型,这些是1980年代甚至2000年后才加入的。
然而,正是这个简洁而克制的初始标准,奠定了MUMPS语言的哲学基础:以字符串为唯一数据类型,用层次型全局变量实现持久化存储,并通过解释执行保证跨平台兼容。1976年标准仅有不到200页,却定义了医疗信息系统的核心数据模型,其影响力远超同时代的多数编程语言。
误解何以根深蒂固?
造成这些历史误解的原因有几点:一是早期技术文献多为内部报告,传播范围有限;二是MUMPS社区长期被主流计算机史学界忽视;三是1990年代语言更名为“M”之后,许多新用户习惯从M标准反推MUMPS历史,导致时间轴错位。直到近年来,随着电子健康记录(EHR)系统成为热点,MUMPS的贡献才重新得到审视。
一段被低估的里程碑
事实上,1976年ANSI标准不仅是MUMPS的里程碑,也是计算机语言标准化史上较早的成功案例之一(早于C语言的ANSI标准近十年)。它证明了由用户社区主导、面向特定领域的标准化路径的可行性。今天,美国退伍军人事务部的VistA系统、多家大型医院的Epic子系统中仍在运行基于该标准的代码。
技术史研究者约翰·麦卡锡(非AI先驱)在一篇新近论文中写道:“我们习惯于线性地看待技术进步,却往往忽略了那些被后来光辉掩盖的奠基性瞬间。MUMPS的第一个标准不是迟来的产物,而是一份来自1970年代的智慧遗嘱。”随着更多原始档案被数字化,这段历史正在被还原,那些被忽视的贡献也逐渐获得应有的认知。