版权归原作者所有,如有侵权,请联系我们

“老古董”——Cobol语言

CCF计算机科普
由中国计算机学会主办,提供优质的计算机科普内容。
收藏

一、小白剧场

大东:话说因为疫情,美国好几个州都发出了一份特殊的招募:急聘懂Cobol的程序员,甚至还把新泽西州的州长都“惊动了”,在直播上亲自上阵开出55-85美元的时薪。

小白:按理说,美国的程序员一抓一大把,厉害的更是不少,招募程序员似乎不是啥难事,但为啥好像还挺不容易的样子?

大东:事情是这样的,因为疫情对经济造成了巨大冲击,不少人无奈的失业下岗,只好先领领失业救济金,就把从未承受过这么大流量的政务系统给“挤”瘫痪了。

(图片来自网络)

小白:的确如此,这个时候肯定就需要人来维护了嘛!

大东:然而,这门至今被广泛部署于政府和企业,金融、航空等重要领域的大型机中的高级程序设计语言Cobol,其实是计算机世界中不折不扣的“古董”。

小白:怎么说?

二、“老古董”Cobol

大东:它诞生于1959年,迄今为止已经61岁了,在快速迭代的计算机世界里,算得上“古老”,不少代码的“年纪”,都有好几十年,甚至比一些程序员的年龄都大。更何况,计算机语言的发展,使得已经几乎没有人在教授这门语言,导致年轻一代的程序员很少会使用Cobol,而第一批使用他们的程序员都到了退休的年纪,甚至有网友表示,湾区某现代科技公司招聘Cobol程序员,而来面试人员中,最年轻的都有63岁……

小白:这么说来,Cobol曾经是软件开发的大哥大?

大东:Cobol的全盛时期是在20世纪70年代,这意味着美国大多数的Cobol专家,很可能已经60多岁了,他们中的许多人可能很久都没有使用Cobol做开发了。

小白:给我讲讲关于Cobol以前的事情吧?

大东:Cobol语言,是一种面向过程的高级程序设计语言,主要用于数据处理,是目前国际上应用最广泛的一种高级语言。它是专门为企业管理而设计的高级语言,可用于统计报表、财务会计、计划编制、作业调度、情报检索和人事管理等方面。

(图片来自网络)

小白:Cobol语言主要有哪些特点呢?

大东:一是面向文件,将处理对象按一定方式组织成文件,记录在计算机的外部设备上;二是接近英语自然语言,大量采用普通英语词汇和句型;三是通用性强,数据、运行环境和处理过程是分别单独描述的;四是功能模块化,实现功能模块化,它对每一种功能模块的特性、语义及限制作了严格的规定。

小白:刚刚在网络上搜索了关于Cobol的信息,发现它由四个部分组成:标识部、环境部、数据部、过程部。

大东:标识部,用于标识程序名;环境部,用于说明程序运行的环境;数据部,用于说明程序中涉及的所有数据;过程步,是程序的核心部分,它决定计算机应进行什么操作。

小白:Cobol还有数据特点。

大东:从层次概念来说,数据间存在的从属关系;从文件概念来说,多个记录可以组成一个文件;从记录概念来说,具有一定层次关系的一组数据项的最大集合,它是内存中具有独立逻辑含义的最大存取项,具有最高层次。

三、过时不轻视

小白:可是就算是这样,Cobol已经过时了。

大东:可以这么说,但依赖Cobol所引发的危险,并不最近才出现的新问题。

小白:这样看来,Cobol程序员有过返聘经历?

大东:大概在25年前,许多行业专家发出警告,称合格Cobol程序员的供应正在急剧减少。当时为了处理千年虫(Y2K)相关的修复工作,一些Cobol程序员不得不在退休后重新返聘。

小白:还真有这样的?

大东:还有呢,一位 60 多岁的 Cobol程序员在 2012 年遭到解雇,被年轻程序员替代,但 2014 年原雇主又找到了他,去修复管理层没有预料的问题。一位 70 多岁的 Cobol 程序员都已经用上了吸氧器,每天早上仍要搭乘政府派来的警车,前往办公室工作。

小白:Cobol现状如何?

大东:虽然市场规模很难精确地制定,但我们确实知道,目前运行Cobol系统的组织有数万个。我们无法估计每天有几千万终端用户使用基于Cobol的应用程序,但这种语言的依赖性显而易见,全球70%的是处理系统都使用它。

小白:疫情导致的失业问题似乎让Cobol火了一把。

大东:不过,因为这种短期需求而去专门从事 Cobol 的开发似乎并不明智。自上世纪 90 年代以来,美国的许多专家便建议更换基于 Cobol的系统,否则系统维护将变得越来越难。但由于替换成本较高,这一建议一直未能实施。在国内,只会 Cobol 语言的程序员也存在就业面窄等问题。比较常见的操作是,许多程序员在进入特定行业之后才开始学 Cobol,以满足实际工作需要。

小白:其实,这次Cobol的安全事件,算是给人警醒了。

大东:不过,好在,新泽西州州长Murphy表示,在公开招募Cobol后,已经有一些人表示自愿提供帮助。希望早日解决问题吧!