首页 KU体育 新闻资讯 >校园风采 KU体育app
校园风采
>校区风采
巨头公司避而不谈的秘密:“活化石”计划仍是当今数字世界的中流砥柱
2025-11-20

今年早些时候,科技界迎来了一位来自编码界的“老朋友”——Eliza。作为世界上第一个能够进行看似有意义的对话的人工聊天机器人,Eliza 在 20 世纪 60 年代中期让计算机科学家感到惊讶。近几十年来,人们认为 Eliza 迷失了,因为它的创建者、麻省理工学院的 Joseph Weizenbaum 没有公布他创建 Eliza 时编写的 420 行代码。然而,美国斯坦福大学的杰弗里·施拉格和同事对魏森鲍姆的成就非常着迷,他们建立了伊丽莎考古项目。几年前,他们在麻省理工学院魏森鲍姆的旧文件箱中发现了丢失的代码,为伊丽莎的复活铺平了道路。与这个在人工智能历史上发挥重要作用的聊天机器人进行通信的能力不仅令人惊叹,而且还引出了一个好奇的话题:除了 Eliza 代码之外,是否还有较旧的代码片段仍然执行某些操作今天有重要任务吗?直到那时,一个人开始追踪最古老的密码,并发现了一些意想不到的情况:大多数古代密码远没有像伊丽莎那样受到尊重。一般来说,企业和组织对遗留代码表现出一种奇怪的矛盾态度:有些人似乎不信任它,另一些人则信任它,而且几乎所有人都不愿意公开讨论它。很少有人提及,但不要忘记,追踪一项技术的根源通常并不困难。你可以很快在公开资料中找到至今仍在飞行的最古老的飞机,这是一架经过修复的英国 Blériot 11,已有超过 115 年的历史;或者世界上仍在使用的最古老的灯泡,位于美国加利福尼亚州利弗莫尔,已点亮 124 年。但找到仍在使用的最古老的计算机代码并不那么容易。英国数学家阿达·洛夫莱斯 (Ada Lovelace) 在 1840 年代设计了世界上第一个计算机程序。但实际上,洛夫莱斯的程序依赖于英国人设计的机械计算机。数学家查尔斯·巴贝奇(Charles Babbage)从未建造过,因此代码从未真正运行过。英国剑桥大学EDSAC开发的电子存储自动计算器可能是世界上最早的通用计算机之一。现在,英国国家计算机博物馆的志愿者正在构建 EDSAC 的复制品,一旦完成,可以运行在 20 世纪 40 年代和 1950 年代的科学论文中发表的 EDSAC 软件,这可能是世界上现存最古老的代码之一。在这项工作完成之前,寻找仍在运行的旧代码,可能会有现代软件的线索。在使用EDSAC的同时,计算机科学家开始改变他们编写代码的方式,“高级”计算机语言诞生了。这些语言的结构与人类语言相似,使得编程更容易理解。多年来,世界上已经开发出许多高级计算机语言,其中包括IBM的Fortran (1957)、cobOL (1959) 和 JavaScript (1995)。即使一种计算机语言不再常用,它也不会被完全遗忘,因为今天的程序通常包含用多种语言编写的代码,这意味着用几十年前的语言编写的旧代码片段仍然可以隐藏在今天的常见应用程序中。根据这些信息,一条线索很快就出现了——根据吉尼斯世界纪录,如今用于预订机票的网站通常依赖于美国航空公司于 1960 年开发的 Sabre 全球分销系统。这意味着当今软件版本中的某些代码可能比 Eliza 还要早。然而,尝试联系 Saber 却没有得到回应。发送给其他机构的联系请求包括达美航空、美国航空、联合航空、汉莎航空和英国航空,英国银行业“四大”汇丰银行、劳埃德银行、国民西敏寺银行和巴克莱银行、伦敦劳埃德银行和 PayPal,甚至还有 Apple、Mic 等科技公司rosoft、惠普、德州仪器等。Visa和万事达卡最初对此很感兴趣,但最后被告知他们无能为力。拒绝讨论旧代码确实让局外人感到惊讶。对此,旨在保存不可阻挡的英国计算机品牌历史的非营利组织英国利奥计算机协会的受托人文森特·博兹沃斯表示:“公司可能会因为提请人们注意其产品中存在的古代代码而感到紧张,因为他们不知道这些代码是如何工作的,也不知道如何维护它以确保它继续工作。”难以找到古代代码可能意味着源代码丢失,并且理解或修改代码所需的专业知识也可能丢失。后者可能更为常见。 Leo计算机协会的Bodsworth曾经讲过一个他听到的故事。就在那时,英国于 1971 年开始使用十进制货币。伦敦一家不知名的银行遇到了问题。它有一个计算机程序主要对非十进制货币进行金融计算。但由于源代码丢失,所以没有办法修改程序来完成向十进制的切换。后来银行就没有投入那么多资金去重写软件了。相反,它只是简单地编写了一段代码,将十进制的英镑和便士转换为非十进制的英镑、先令和便士,并将这些值交给旧程序进行计算。最后用另一段代码将计算结果从非十进制转换为十进制。博兹沃斯说,这种补救措施虽然笨拙,但却是一种至今仍在使用的古老密码。在美国德克萨斯州,有一家名为“Cobol Cowboy”的咨询公司。联合创始人 Bill Shinshaw 早在 20 世纪 70 年代就用 Cobol 语言为银行 ATM 机编写了软件。事实上,Cobol 对于整个 20 世纪中叶的企业运营至关重要。虽然它现在不再是程序员的首选,但它仍然在一些软件中发挥着虽小但很重要的作用。Sheenshaw 估计目前有 8000 亿行 COBOL 代码。代码仍在运行。因为现在大多数程序员都不熟悉它,而熟悉它的人大多即将退休,出现问题的企业别无选择,只能求助于 Sheenshaw 团队。事实上,这支“牛仔”队中最年轻的成员已经40岁,大多数都在60多岁或70多岁,肖恩·肖已经82岁了。在他看来,即使目前使用COBOL没有问题,十年后情况应该会有所改变。理论上,代码不会丢失或损坏,但软件更新可能会使旧代码与程序的其他部分不兼容。 2024 年 7 月,网络安全公司 Crowdstrike 在更新软件时出现故障,导致全球机场、医院和银行的数百万台计算机瘫痪。幸运的是,他们很快发现了故障,推出了新的更新,并在几小时内让大多数计算机恢复并运行。然而,如果故障涉及程序员只能理解的旧代码,修复就会更加困难。出于这些担忧,科技公司不会讨论旧代码是合乎逻辑的。此外,他们偶尔会从现代软件中删除旧代码。最著名的halimeach是25年前的“Y2K”bug,当时为防止世界各地的计算机在世纪之交因无法区分2000年和1900年而崩溃而进行紧急操作后,旧代码被强行删除。对旧代码的讽刺,关键是工作。在一些非常重要的软件中,旧的代码至今仍然有效。 Perl 基金会主席斯图尔特·麦金托什 (Stuart McIntosh) 表示,2024 年发布的 Perl 最新版本包含了 1987 年第一版的代码片段。由于 Perl 支持 Amazon Web Services,因此 Amazon Web Services 的所有用户都将使用这段近 40 年历史的代码,包括苹果,以及 NASA、CIA、英国军情五处等重要组织。军情六处。还有一些使用旧代码的现代软件。例如,Red Hat,响应软件公司可以发布开源操作系统Linux的版本。该公司的 Mike McGrath 表示,许多版本的 Linux 都包含一个名为“Indent”的命令,该命令使用 1976 年的代码,这也意味着在人工智能和云计算时代,人们仍在使用近 50 年前的代码。麦金托什说,旧代码保留下来的原因很简单——它有效。尽管人们一直担心旧代码可能与新代码不兼容,但事实是旧代码几十年来一直运行良好。这在业界引发了一个奇怪的现象:软件工程师越来越害怕破坏旧代码,但与此同时,他们对旧代码继续保持可靠和准确的能力越来越有信心。航空航天行业就是最好的例子。 James Eggleston,欧洲计算机系统工程师美国宇航局表示,太空任务的设计、建造和发射成本极其昂贵,一些卫星的成本高达数十亿美元。因此,最好使用可靠的旧代码,而不是冒险使用可能有问题的新代码,因为如果搞砸了,航天器就会报废。一些仍在使用的古代密码可能不存在于地球上,甚至不存在于太阳系之外。即使在太阳系之外,距地球超过 200 亿公里的航海者号探测器今天运行的软件可能与 1977 年发射时几乎相同。据一位匿名的航空航天内部人士透露,它偶尔会雇用老程序员来维护或修改旧任务的淫秽代码,类似于 Sheenshaw 为保险公司和银行所做的事情。但航空航天业似乎不愿讨论其对旧准则的依赖。美国宇航局没有回应采访请求。埃格尔斯顿还承认欧洲航天局对他接受采访的想法持谨慎态度,主要是因为担心该机构使用这个词可能会误导人们认为其太空任务不值得资助。那么最旧的代码到底在哪里运行呢?现在唯一能做的就是猜测。博兹沃思认为,它可能静静地运行在政府办公室某处的一台古老计算机上,年复一年地执行相同的任务。虽然旧代码最终可能会在未来的某一天崩溃,但没有人知道这需要多长时间,而且几乎每个人都很高兴看到它继续可靠地运行。 “我们正处于数字革命的早期阶段。展望 500 年后,我们可能仍然在与今天相同的基础上发展,”麦金托什说。 特别声明:以上内容(如有则包括照片或视频)由自媒体平台“网易号”用户上传发布。本平台仅提供信息存储服务。 注:T上述内容(包括图片和视频,如有)由网易HAO用户上传并发布,该社交媒体平台仅提供信息存储服务。

Copyright © 2024-2026 蘑菇吃瓜料每日爆料-蘑菇吃瓜官网黑料爆料-58爆料网每日精选最新消息 版权所有

网站地图

鄂ICP备36659856号

友情链接: