60多岁的COBOL,50岁的码农:今天仍有8000亿行代码!

简介: 60多岁的COBOL,50岁的码农:今天仍有8000亿行代码!
【新智元导读】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.techradar.com/news/this-ancient-programming-language-is-way-more-common-than-we-all-thought

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

相关文章
|
2月前
|
人工智能 Cloud Native API
从零到一:如何通过 OpenClaw 快速构建企业级专属 AI Agent 指南
阿里云OpenClaw是云原生大模型应用开发平台,提供低代码编排、强大RAG引擎、弹性架构与丰富插件,助企业快速构建深度耦合业务数据的专属AI Agent,降低大模型应用开发门槛。
548 0
|
4月前
|
传感器 人工智能 前端开发
智能体来了!告别对话框,迈向自主代理:一文读懂AI Agent从0到1
真正的AI Agent不仅是大模型,更是具备规划、记忆与工具调用能力的智能体。它通过任务拆解、提示词工程与自我反思构建闭环逻辑,在工业等场景实现从感知到行动的自动化。迈向生产力的关键,在于深度理解业务流程。你准备让AI动起来了吗?(238字)
317 3
|
10月前
|
应用服务中间件 Linux 测试技术
Tomcat启动错误:组件启动失败StandardEngine[Catalina].StandardHost[localhost].StandardContext[]
解决此类问题需要系统地排查和分析,有时候甚至需要根据应用的具体情况定制化解决方案。注意的是,如果问题涉及到复杂的应用逻辑或第三方库,那么可能需要深入到具体的应用代码和库文档中查找原因。最后,保持软件环境的更新也是预防这类问题的好习惯,因为新版本的软件通常会修复旧版本中的已知错误。
1061 12
|
12月前
|
API Android开发 开发者
Android颜色渐变动画效果的实现
本文介绍了在Android中实现颜色渐变动画效果的方法,重点讲解了插值器(TypeEvaluator)的使用与自定义。通过Android自带的颜色插值器ArgbEvaluator,可以轻松实现背景色的渐变动画。文章详细分析了ArgbEvaluator的核心代码,并演示了如何利用Color.colorToHSV和Color.HSVToColor方法自定义颜色插值器MyColorEvaluator。最后提供了完整的源码示例,包括ColorGradient视图类和MyColorEvaluator类,帮助开发者更好地理解和应用颜色渐变动画技术。
381 3
|
5月前
|
弹性计算 容灾 关系型数据库
数据备份与容灾:基于云备份与跨地域复制的企业级方案设计
在数字化转型中,数据是企业核心资产。本文基于阿里云云备份与跨地域复制能力,构建满足严苛RPO/RTO要求的企业级数据保护体系,涵盖ECS、RDS、OSS的分层备份与容灾设计,结合自动化恢复与全局流量切换,实现业务连续性保障,助力企业提升数据安全与业务韧性。(238字)
|
中间件 API 开发者
Bottle框架:这个小东西,真的能革新Web开发吗?
【8月更文挑战第31天】Bottle是一个轻量级Python Web框架,以其迷你、快捷和强大的特性在快速发展的Web开发领域中脱颖而出。它仅依赖Python标准库,可无缝集成到任何Python项目中。通过简明的API设计,Bottle支持快速构建复杂功能的Web应用,如动态页面和精细的HTTP请求控制。无论是学习、小项目还是高性能应用,Bottle均能胜任,提供从原型搭建到生产部署的全方位支持。其灵活性和简洁性使其成为重新定义Web开发便捷与高效的理想选择。
370 1
|
SQL 关系型数据库 MySQL
mysql密码错误-ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using passwor:yes)
这篇文章提供了解决MySQL数据库"Access denied for user 'root'@'localhost' (using password: YES)"错误的方法,通过跳过密码验证、修改root密码,然后重启服务来解决登录问题。
mysql密码错误-ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using passwor:yes)
|
前端开发
别再去记什么“子绝父相”了
子绝父相只是因为经常会这么用所以才有人把它总结为这几个字的,但并不是只能这样用,就算是:子绝父绝,子绝父固定都是可以的,absolute 的 left、right、top、bottom 这几个定位的属性参照对象是最邻近的定位祖先元素,所以只要我们要相对与哪个祖先来定位只要将祖先设置为定位元素就行,至于是哪种就得看你的实际需求了,当希望子元素相对于父元素进行定位,又不希望父元素脱标的时候,我们才会会用到子绝父相。
919 1
别再去记什么“子绝父相”了
|
Java 编译器
成功解决:java file outside of source root
解决Java文件不在源代码根目录内的问题,可以通过在IDEA中将包含.java文件的目录设置为Sources Root来修复。
成功解决:java file outside of source root
|
敏捷开发
怎么理解基于架构的软件开发
理解基于架构的软件开发
713 1

热门文章

最新文章