【新智元导读】COBOL语言已经诞生超过60年了,今天全球依然存在8000亿行代码正在运行,为何它的生命力如此强大,迟迟不「退休」?
有数据表明,一种被越来越少的开发人员掌握的,已有 60 年历史的编程语言支持的应用程序比以前想象的要多得多。
这门语言名叫COBOL。
根据 IT 现代化公司 Micro Focus 的一份报告,目前全球每天使用的 COBOL 代码超过 8000 亿行,大约是预期的三倍。更重要的是,几乎一半的受访开发人员实际上预计,其组织中的 COBOL 数量将在未来 12 个月内增加,而类似比例的人表示,他们预计 COBOL 应用程序至少还能再存在十年。
新冠带来的「COBOL 难题」
围绕 COBOL 语言的一种典型说法是,熟悉该语言的开发人员数量的减少,可能会导致严重的问题,因为它在政府和银行等部门提供了各种各样的任务关键型应用程序。
例如,在新冠大流行初期,这门古老的编程语言就一度登上了媒体的头条。据CNN 报道,面对疫情,美国各州政府都表示 COBOL 程序员出现了严重短缺。
新泽西州州长菲尔·墨菲(Phil Murphy)呼吁志愿者掌握如何使用这门已有数十年历史的计算机编程语言,因为该州的许多系统仍在较旧的大型机上运行,底层支持正是COBOL。该州有 36.2万名居民申请失业,已有 40 年历史的大型机一度因缺乏合格的运维人员而不堪重负。目前,在美国国土安全部、退伍军人事务部的系统都在使用COBOL,它可以自动为员工、计时员、工资单和主管提供时间和考勤;可以踪退伍军人提出的福利、资格和死亡日期索赔请求;国土安全部的系统负责跟踪当前和以前的招聘计划,并对招聘职位和个人的相关信息进行维护。2019 年,64% 的大型机驱动组织计划在平台上运行一半以上的关键任务,比 2018 年的 57% 有所增加。路透社2017年的一份报告显示,今天仍有 2200 亿行 COBOL 代码正在使用, 43% 的银行系统和 95% 的ATM刷卡设备仍然依赖于这门古老的计算机编程语言。
而在COBOL开发人员的平均年龄上,大部分程序员位于45-55岁年龄段,可以说是几乎是「大爷级」了。
60多岁的COBOL,是如何诞生的?
COBOL(Common Business-Orientated Language)语言诞生于上世纪50年代,是最早的高阶编程语言、以及是世界上最早实施标准化的计算机语言之一,属于编译语言的一种。
计算机科学家Grace Hopper 正在指导一个开发早期 COBOL 应用程序的团队COBOL专为特定目的而设计,最初是作为美国国防部协助数据处理计划的一部分而创建的,后来被计算机制造商推动,促进了它的广泛采用。从那时起,它的可读性、简单性和可重复性使其成为编程人员不可或缺的一部分。与英语一样,COBOL 也有一定程度的普遍性。实际上我们每天都在使用 COBOL,无论我们是否知道,它都会继续影响我们的生活。银行、保险、物流、零售、政府部门,可以说几乎任何时候,我们都在与 COBOL 应用程序打交道。 像英语一样,COBOL也在不断迭代更新,以满足新需求,支持新技术,今天它仍然支持从老式批处理任务,到新式移动应用程序的后台等所有内容。 许多大企业仍然使用流利的 COBOL,该语言擅长在大型机上执行大规模的批处理和事务处理操作。路透社指出,银行业是对COBOL最青睐的行业之一,这对金融业的重要性不言而喻,COBOL 系统在金融业处理的日常业务量估计达 3 万亿美元。此外,存款账户、卡网络、ATM、抵押服务、贷款分类记账等服务背后都有COBOL的身影。 目前,尽管 COBOL 在新一代开发人员中已基本过时,但许多企业并不打算放弃该语言。市场调查机构MicroFocus认为,大多数依赖 COBOL 的公司 (64%) 更倾向于对其应用程序进行现代化改造,而不是用其他语言重写和替换。
同时,92% 的受访者表示,COBOL 继续对其业务具有战略上的重要性。
古老的编程语言,为何今天还在用?
有人在Quora上提问:为什么用了50-60年的古老编程语言,今天还在继续广泛使用?
一位自称有着25年编程经验的老程序员表示,最早期的程序员都是专家级,对软硬件系统特性的掌握程度很高。而「一个软件的长期稳定性的原因是参与设计、开发、维护和测试它的软件开发人员的专业知识。」还有人表示,几十年过去,对整个系统进行完全替换和重写的成本太高。既然旧系统仍旧能用,还不如继续维护。另外一个重要原因是,当时的COBOL早期程序和应用的编写者,熟知COBOL系统的专门用途,而大部分广泛应用COBOL的金融、银行、保险等系统,其软件功能不需要其他行业那么高的迭代速度,也缺乏推倒重来的动力。用Micro Focus COBOL 产品营销总监 Ed Airey的话说,「市场上大量的 COBOL 应用程序代码为组织带来了巨大的价值,需要持续投资,作为更大的现代化战略的一部分。对于支持核心业务系统的 IT 领导者而言,COBOL 应用程序的现代化是实现数字化转型的核心。」
参考资料:
https://www.quora.com/Why-are-banks-still-using-COBOL-Is-it-because-the-cost-of-switching-is-so-highhttps://www.cnbc.com/2020/04/06/new-jersey-seeks-cobol-programmers-to-fix-unemployment-system.html