马斯克所指的已故美国社保受助人数据实际上是由COBOL程序造成的
坊间流传着数百万已故人士收到了美国社会保障支票的谣言。然而,这种耸人听闻的说法与事实相去甚远。真实情况是老化的技术、政府系统和年轻的IT专业人员(尤其是政府效率部(DOGE)的专业人员)的误读之间复杂的相互作用。
谣言始于埃隆-马斯克(ElonMusk)声称有大量100岁以上的美国人在不当领取福利。马斯克和其他能源与环境部代表称,他们在对社会保障进行初步审查时发现了"异常现象"。马斯克甚至断言,150岁的老人都被列为福利领取者。后来,他又扩大了这些说法,称超过2000万美国百岁老人正在领取社会保障金。马斯克在X上分享了一张他描述为社会保障数据库电子表格的图片,以支持他的论点。
不过,真正的罪魁祸首是一种编程语言,几十年来它一直是社会保障管理局IT系统的支柱。
COBOL开发于20世纪50年代,为社会保障局的关键功能提供支持,包括处理退休和伤残索赔。社保局保留了令人印象深刻的6000万行COBOL代码。
COBOL的一个特点是缺乏处理日期的标准化方法。这一局限性导致程序员在政府数据库中设计出了一些具有创造性的日期表示方法,包括使用占位日期来表示未知信息。
根据圣托马斯大学工程学院数据科学和软件工程教授ManjeetRege的说法,1875年5月20日是一个常用的占位日期。根据ISO8601时间和日期标准,这个日期标志着时间的开始,之所以选择这个日期,是因为它是国际度量衡局成立的周年纪念日。
日期表示上的这一偏差导致一些社保申请人的出生日期被指定为1875年5月20日,而他们的实际出生日期却是未知的。因此,系统中的受益人年龄似乎超过了149岁。众多程序员和数据录入员数十年如一日的工作使情况变得更加复杂,导致系统出现不一致和错误。
尽管存在这些错误,社保局还是采取了一些措施来防止欺诈性申请。个人去世后,殡仪馆必须提交死亡声明(SSA-721表)。
此外,社保局多年来一直在主动监控年龄极大的公民。2023年的一项研究显示,虽然有1890万社会保障号持有者被列为出生于1920年或更早而没有死亡日期记录的人,但实际上只有44000人在领取福利金。此外,自2015年起,社保局使用自动系统阻止向任何超过115岁的人支付福利金。
社会保障局并不是唯一使用几十年前的编程语言的政府机构。许多关键系统,包括教育部、卫生与公众服务部和美国国税局的系统,仍然依赖COBOL和其他遗留软件。
例如,美国国税局使用大约160个COBOL应用程序,其中包括可追溯到20世纪60年代初的个人主文件(IMF)系统。
此外,45个州和哥伦比亚特区仍在使用COBOL系统。COVID-19大流行凸显了这些系统的局限性,当时许多基于COBOL的失业救济金计划都难以处理突然激增的申请。
尽管年代久远,COBOL仍然是处理大量业务数据的强大而高效的语言。它在数据操作、批处理以及保持数据准确性和可靠性方面表现出色,这也是COBOL在某些行业(如银行业和保险业)仍然流行的原因。
挑战不在于COBOL的功能,而在于缺乏更新和维护政府遗留代码的资金。虽然一些机构,如英国就业与养老金部和纽约时报,已经成功地从大型机COBOL中迁移出来,但政府系统的现代化任务仍然十分艰巨。据估计,目前仍在使用的COBOL代码在2200亿到8000亿行之间。
踩一下[0]
顶一下[0]