人工智能可以解决华尔街的“意大利面条式代码”危机吗?

2023-11-26 01:26BenWeiss
财富(中文版) 2023年6期
关键词:程序员助手面条

Ben Weiss

世界上没有多少企业是以磁带或者软盘为基础建立起来的,因此缺乏能够修复这些已经有几十年历史的技术的专家并不构成问题。但Cobol语言却打破了这一规则—华尔街(WallStreet)和美国联邦政府每年都需要依靠该语言来处理价值数万亿美元的交易,而Cobol语言是一种已经有64年历史的编程语言。随着Cobol语言的不断老化,这些大型机构已经很难找到能够更新其古老系统的人员。

一旦出现问题,许多公司就会求助于82岁的、绰号为“Cobol牛仔”(CobolCowboy)的比尔·欣肖(BillHinshaw)。欣肖在他位于美国得克萨斯州北部的家庭办公室工作,在那里他负责管理一个由大约600名年迈的Cobol語言工程师组成的远程团队—其中一些人在20世纪六七十年代就开始做程序员。每周,这些牛仔们都会提供应急响应服务,包括在2021年为来自美国艾奥瓦州的一家已经有93年历史的公司SuperiorWeldingSupply提供应急响应服务,这家公司唯一的Cobol语言专家在公司的软件崩溃前去世了。

各类公司都在努力解决维护陈旧代码(通常是Cobol代码)的问题,这些代码仍然可以运行,但通常文档不全,难以修改,这是程序员称之为“意大利面条式代码”(spaghetticode)普遍问题的一部分。多年来,政府机构、媒体和大型银行一直在为技术基础设施的老化敲响警钟。现在,IBM和微软(Microsoft)等科技巨头认为,它们可能已经找到了让我们摆脱对艾森豪威尔(Eisenhower)时代的技术的依赖的强大工具:生成式人工智能。

“意大利面条式代码”

当我们把钱从储蓄账户转到支票账户时,我们不会看见Cobol语言,也不会想到它,但它对银行的日常运营却至关重要。这些操作还包括把客户添加到数据库、实现ATM交易和处理工资单。自1973年以来,美国联邦政府一直使用同一系统处理学生助学金申请,该系统由大约100万行Cobol代码组成。

据信息技术公司Open-Text称,目前依旧在使用的Cobol代码大约有2,200亿行到8,000亿行。埃森哲(Accenture)的全球银行业务主管迈克尔·阿博特(MichaelAbbott)说:“当你深入研究绝大多数的大型银行真正的核心银行体系时,你就会发现,这些银行都在使用Cobol代码。”

实际上,在1959年程序员设计出Cobol语言之后,它就迅速成为了数据处理语言,这意味着银行、保险公司、政府机构和任何其他处理TB级信息的公司都要编写和维护数百万行Cobol代码。

然而,传统的Cobol语言在效率和通用性方面都比不上20世纪70年代及之后出现的C语言、Java和Python等新兴语言。这些语言的构建方式不同,允许工程师更好地构建和重用以前编写的代码。最终,新创企业和位于硅谷(SiliconValley)的公司开始使用Java或者Python,而不是Cobol语言。

随着Cobol语言失宠,维护成本也随之飙升。此外,由于遗留的Cobol代码往往文档不全,因此修复和升级需要更长的时间。在快节奏的经济环境中(例如,利率变化迫使银行迅速更新提供给客户的产品),重大改革可能并不可行。

阿博特称:“这些企业和机构可能需要9个月到12个月的时间来解开意大利面条式代码难题并更新其中的产品,从而推出新产品。在现代架构中,这能够在几周内完成。”

与此同时,升级的成本可能高达数亿美元。当澳大利亚联邦银行(CommonwealthBankofAustralia)在2017年完成其核心银行系统的更换时,整个过程耗时五年,耗资近7.5亿美元。而且,如果操作不当,升级可能就会导致灾难。2022年,英国金融监管机构对英国信托储蓄银行(TSB)处以6,000多万美元的罚款,原因是该银行未能成功地迁移到新信息技术平台。此前,数千名客户于数周内无法进行在线支付。

代码助手

最近的一个下午,IBM研究中心(IBMResearch)的首席科学家鲁奇尔·普里(RuchirPuri)在公司位于纽约市北部绿树成荫的园区里跳到了一块白板前。这位留着大胡子、头戴棒球帽、身穿白色西服衬衫的高管,用两只马克笔勾勒出金融机构如何使用watsonx代码助手将数百万行Cobol代码翻译成Java。

是的,普里表示,代码转译器或者翻译器已经存在了几十年,但是这些陈旧的系统把意大利面条式Cobol语言翻译成意大利面条式Java语言。换句话说,记录不全、难以理解的传统语言变成了记录不全、难以理解的现代语言。

他指出,IBM的解决方案超越了现有的转译器。通过生成式人工智能,或者与OpenAI的ChatGPT相同的技术,IBM可以将文档不全的Cobol代码转换为结构化、易于解析的Java代码。普里称,IBM的工具能够把公司代码库实现现代化的速度提高10倍。

这将为华尔街和美国政府节省了数十亿美元。比如,2018年2月,美国空军(AirForce)完成了负责管理作战任务的物资和设备的计算系统的现代化改造。根据2019年的一份报告,这一为期三年的过程,包括把数百万行Cobol代码翻译成Java代码,每年为美国政府节省了2,500万美元的计算成本。那么,试想一下,如果生成式人工智能将美国空军的系统实现现代化所需要的三年时间缩短为几个月,纳税人就可以节省多少钱。

不出所料,这为IBM带来了重大商机。普里指出,大公司都争相使用其翻译软件(将Cobol语言翻译为Java语言)。他说:“大多数《财富》美国100强的企业都是我们的客户,而且所有这些企业目前都在使用我们的软件。”

对于微软旗下的开发者软件平台GitHub的首席执行官托马斯·多姆克(ThomasDohmke)来说,Cobol语言也是首要考虑因素。“Cobol仍旧在大型机上运行,这是一个比我们想象的要大得多的社会问题。”他最近在X上发帖说道。多姆克表示,他在过去的一年里听到的关于Cobol语言的问题比他过去30年听到的还要多。

就像向IBM寻求帮助一样,客户们也在向GitHub寻求帮助,看看它的生成式人工智能助手GitHubCopilot如何帮助他们实现传统基础架构的现代化。

Copilot采用与ChatGPT相同的算法,类似于电子邮件的自动补全功能。当程序员键入代码时,Copilot会以GitHub公共项目中所有的编程语言为语料进行训练,并提出行编辑建议。多姆克补充道,程序员还能够使用该工具突出显示Cobol代码,并要求Copilot解释这些代码的实际作用。就像IBM自己的编码助手一样,Copilot也可以把Cobol代码翻译成Java或者其他编程语言。

他说:“生成式人工智能和Copilot将使我们在维护这些陈旧代码库时更加轻松,并最终实现现代化。”

退休

人工智能炒作已经达到了高潮,甚至Cobol牛仔欣肖也在为一家新创企业的人工智能和Cobol产品提供建议。欣肖在他位于美国得克萨斯州的办公室门上挂着一顶皮帽,但他并不担心人工智能会迫使他退休。“在凌晨三点,你可能会接到一个电话,说这个程序崩溃了。”欣肖说道,“你如何让人工智能参与其中,从而在一个小时内让它恢复正常运行呢?”

IBM和GitHub的高管们也煞费苦心地表示,人类应该参与代码翻译和实现现代化的每一步。两人都承认,人工智能生成的代码并不完美,因此应该像人类生成的代码一样,经过一系列的测试。例如,斯坦福大学(StanfordUniversity)的研究人员发现,不使用OpenAI编码助手的开发人员编写的代码往往比使用该助手的开发人员编写的代码更加安全。

但是,尽管存在风险,像埃森哲的阿博特这样的金融行业从业者还是希望,像IBM或者GitHub这样的产品能够解开经常使大银行陷入困境的意大利面条式代码难题。他在谈到生成式人工智能时说:“我要告诉大家,我认为它大有可为。”

猜你喜欢
程序员助手面条
为了让妈妈看懂地图,一位“野生程序员”做了个小程序
怎样成为一名优秀程序员
晒面条
加盐的面条和不加盐的菜
程序员之子
擀面条
煮面条
加班
小助手
灵感助手表彰大会(二)