数以百万计的“死亡”社会保障领取者实际上是由 Cobol 编码怪癖引起的
快速阅读: 《技术点》消息,关于数百万已故人士领取社会保障支票的传闻源于COBOL编程语言的日期处理缺陷。该语言缺乏标准化日期处理,导致部分申请人被误标为过百岁。尽管如此,社会保障管理局已采取措施防止欺诈,并逐步淘汰过时系统。然而,许多政府部门仍依赖这些老旧系统,更新维护面临资金短缺。
简而言之:关于数百万已故人士领取社会保障支票的传闻一直在流传。然而,这个耸人听闻的说法并不属实。实际情况是老龄化技术、政府系统和年轻IT专业人士误读之间的复杂互动,特别是那些在政府效率部门(DOGE)工作的人员。这些传闻始于埃隆·马斯克声称大量超过一百岁的美国人不恰当地获得了福利。马斯克和其他DOGE代表表示,他们在初步审查社会保障时发现了“异常现象”。马斯克甚至断言,有高达一百五十岁的人被列为福利领取者。他后来进一步声称,超过两千万美国百岁老人正在领取社会保障金。马斯克在X平台上分享了一张据称是从社会保障数据库中获取的电子表格图片来支持他的论点。
真正的罪魁祸首是一种多年来一直支撑着社会保障管理局的编程语言。COBOL是在二十世纪五十年代开发的,它为社会保障管理局(SSA)提供了关键功能的支持,包括处理退休和残疾申请。该机构维护着六千万行COBOL代码。COBOL的一个特点是缺乏标准化的日期处理方法。这种限制使得程序员在政府数据库中设计了创造性的解决方案来表示日期,包括使用占位日期来表示未知信息。
根据圣托马斯大学工程学院的数据科学和软件工程教授曼吉特·雷格的说法,一八七五年五月二十日是一个常用的占位日期。这个日期标志着ISO 8601时间日期标准的时间起点,选择它是因为它是国际度量局成立周年纪念日的意义。这种日期表示的怪癖导致一些社会保障申请人被分配了一八七五年五月二十日的出生日期,而他们的真实出生日期未知。因此,系统似乎显示有超过一百四十九岁的受益人。这种情况由于数十年来众多程序员和数据录入员的工作变得更加复杂,导致系统中的不一致性和错误。
尽管存在这些错误,社会保障管理局已经采取措施防止欺诈性索赔。当个人去世时,殡仪馆需要提交死亡声明表(SSA-721表)。此外,社会保障管理局多年来一直在积极监控极老的公民。二〇二三年的一项研究显示,虽然有一千八百九十万社会保障号码持有者被列为一九二〇年或更早出生且未记录死亡日期,但实际上只有四万四千人正在领取福利。此外,自二〇一五年以来,社会保障管理局使用自动化系统阻止任何超过一百一十五岁的人支付。
社会保障管理局并不是唯一使用几十年前编程语言的政府机构。许多关键系统,包括教育部、卫生与人类服务部和国税局仍在依赖COBOL和其他遗留软件。例如,国税局大约使用一百六十个COBOL应用程序,包括个人主文件(IMF)系统,该系统可以追溯到二十世纪六十年代初。此外,四十五个州和哥伦比亚特区继续运行COBOL系统。
新冠疫情凸显了这些系统的局限性,当时许多基于COBOL构建的失业救济计划难以应对突然激增的索赔。尽管COBOL已有多年历史,但它仍然是处理大量商业数据的强大且高效的语言。它在数据操作、批处理以及保持数据准确性和可靠性方面表现出色——这就是为什么COBOL在银行业和保险业等某些领域仍然受欢迎的原因。
挑战不在于COBOL的能力,而在于缺乏资金用于更新和维护政府遗留代码。虽然一些组织,如英国工作和养老金部和《纽约时报》,成功地从主机COBOL迁移出来,但现代化政府系统的任务仍然艰巨。估计表明,目前仍有二百二十亿至八百亿行COBOL代码在使用。
(以上内容均由Ai生成)