卖桃者说
池建强
极客时间创始人、墨问西东创始人
30376 人已学习
免费领取
课程目录
已完结/共 523 讲
第一季 (135讲)
第二季 (134讲)
第三季 (124讲)
第四季 (90讲)
卖桃者说
15
15
1.0x
00:00/07:11
登录|注册

第249期 | “上古语言”COBOL 还有春天?

讲述:池建强大小:6.58M时长:07:11
你好,这里是卖桃者说,今天和你聊一门非常古老的编程语言,COBOL。
COBOL 是 Common Business Oriented Language(通用商业语言)的缩写,它是一种面向过程的高级程序设计语言,主要用于数据处理。估计很多程序员都没听说过这门编程语言,即便听过,也很少能看到谁在使用。原因就在于,它实在是太过古老和低级。
有多古老呢?这门语言正式创建于 1959 年,今年已经 61 岁高龄了,仅比汇编语言“年轻”10 岁。有多低级呢?引用 COBOL 经典语录中的一条:1000 行代码实现一个小需求。
这样一门编程语言,它的鼎盛时期其实是在上个世纪 70 年代,后来逐渐被 C、C++、Java 等更高级的语言所取代。不过,最近一则消息又让这门“上古语言”重新回到了大家的视野中。
4 月初,美国新泽西州州长菲尔·墨菲(Phil Murphy)在新闻发布会上紧急招聘精通 COBOL 的程序员,时薪为 55-85 美元。据说,新泽西州政府处理失业登记的系统是 40 多年前使用 COBOL 编写的,受疫情影响,当地失业人数暴增,系统不堪重负,因此急需程序员维护。
而此时,精通 COBOL 的程序员大都已年过六旬,因此有不少网友调侃,“我等这个消息等了一辈子”、“退休程序员可以再就业了”。
虽然 COBOL 又老又低级,但直到今天,它始终没有完全退出历史舞台。在美国,很多重要的领域仍在使用 COBOL 程序,比如政府部门、银行和保险公司等等。
路透社 2017 年的一项调查发现,在全球范围内,有 2200 亿行 COBOL 代码仍在运行。另外根据咨询公司 COBOL Cowboys 的数据,《财富》500 强企业中,90% 的公司仍在使用 COBOL 代码。
维护 COBOL 的公司 Micro Focus 曾在 2019 年接受 ZDNet 采访时提到:“虽然很难准确地确定市场规模,但 COBOL 确实支撑着全球 70% 的事务处理操作。这意味着,每当你转移资金、检查账户、与政府部门联系,或是在线购买商品、预订假期、买卖股票等等,都表明你正在与 COBOL 进行互动。”
在最近几十年里,不断有专家提议更换基于 COBOL 的系统,但出于成本和风险的考量,COBOL 始终活跃在一线。毕竟,COBOL 是第一种真正的商业编程语言,甚至在其诞生后的 20 年里,仍然是商业语言的首选。虽然它不够好用,但起码能用,而且还足够安全。另一方面,无论是重写还是迁移,代价都是相当巨大的。
从发展的角度来看,我不建议你学习 COBOL,但可以了解下这门语言的历史、特点以及编程思想。
COBOL 诞生于 1959 年,当时,玛丽·霍斯(Mary Hawes)看到了市场对计算机语言的需求,提议创建一种新的编程语言。这门语言会有类似英语的词汇表,并且可以在不同的计算机上进行使用。
这个想法很快得到了“计算机软件工程第一夫人”格雷丝·霍珀(Grace Hopper)的支持,霍珀提议,可以向美国国防部寻求资助,并将其纳为该语言的潜在客户。
1959 年 5 月,在五角大楼的支持下,团队成立了一个临时委员会。委员会借鉴了霍珀早期创建的汇编语言 Flow-Matic,确定了 COBOL 编写的程序应该类似于普通英语。此外,委员会还制定了 COBOL 指南,希望这门语言能简单一些,便于大型机编程。
当时,COBOL 确实做到了简单,只是在今天看来,异常复杂笨重,饱受诟病。不同的时间维度下,不能用现在的标准去看待几十年前的事情。
到了 1959 年 9 月份,COBOL 的基本语法已经确定。它采用 300 多个英语单词作为保留字,以一种接近于英语书面语言的形式,来描述数据特性和数据处理过程。
1960 年 12 月,COBOL 程序已经可以在两个不同供应商的计算机上运行,这足以证明,它是真正可互操作的。同时也意味着,COBOL 正式成为第一种真正的商业编程语言。直到 1980 年,COBOL 仍相当受欢迎。
具体来看,COBOL 语言主要有 4 个特点:
面向文件。COBOL 语言是一种典型的按文件系统方式进行数据处理的语言。
接近英语自然语言。COBOL 语言中大量采用普通英语词汇和句型。
通用性强。在 COBOL 程序中,数据、运行环境和处理过程是分别单独描述的。
功能模块化。在标准 COBOL 文本中实现功能模块化,它对每一种功能模块的特性、语义及限制都做了严格的规定。
虽然一度风头无两,但“长江后浪推前浪”,总有更优秀的语言取代它。至于 COBOL 是否还有未来,我觉得起码还能坚挺个几十年。一方面,相当多的大型机还在依靠 COBOL,迁移需要时间;另一方面,COBOL 可以与 Docker 容器、Java 相结合,运行在云、Linux、Windows 上,或是运行在任何地方的任何设备上。
但就进化而言,COBOL 似乎已经走到了尽头。正如“硅谷创业之父”保罗·格雷厄姆(Paul Graham)在《黑客与画家》中所说:
“我认为,编程语言就像生物物种一样,存在一个进化的脉络,许许多多分支最终都会成为进化的死胡同。这种现象已经发生了。Cobol 语言曾经流行一时,但是现在看来没有任何后续语言继承它的思想。它就像尼安德特人一样,进化之路已经走到了尽头。”
最后留个小作业,在 COBOL 身上,你能学到什么呢?现代编程语言中,你最喜欢的是哪一门语言?
好,今天的话题就先聊到这儿。卖桃者说,明天见。
(编辑:夏天) 
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结
该免费文章来自《卖桃者说》,如需阅读全部文章,
请先领取课程
免费领取
登录 后留言

全部留言(11)

  • 最新
  • 精选
  • leslie
    这就像另外一个问题,mongodb和redis诞生之时就说要替代RMDB和SQL,可是十年过去了;至今在大多数DB中依然大量看到了RMDB的痕迹和SQL的使用,甚至最近新出来的DB大量看到了SQL的痕迹-只是略微改动了一点点而已。

    池建强回复: 因为历史原因,有的编程语言很难被完全替换,比如 Cobol 因为历史原因,有的编程语言很难快被完全替换,比如 Flash 相关

  • Paualf
    学到什么呢?可能目前对编程语言理解的还没有那么深,文章中印象比较深刻的是接近英语自然语言,现在也是如此,英语对程序员进阶还是比较有帮助的,优秀的资料和文档都是英文的。我目前最喜欢的编程语言是C。
    2
  • 1043
    技术的进步总是远远大于思想的的进步。人类想要彻底变化进化速度,需要再思维上有一次飞跃式的进化,然后思维才不会成为技术的瓶颈。
    1
  • NO.9
    日本无数cobol程序员,我本人也做过7年,哈哈
    1
  • Geek_py hang
    “我认为,编程语言就像生物物种一样,存在一个进化的脉络,许许多多分支最终都会成为进化的死胡同。这种现象已经发生了。Cobol 语言曾经流行一时,但是现在看来没有任何后续语言继承它的思想。它就像尼安德特人一样,进化之路已经走到了尽头。” 任何领域都有相似的路径
  • 没有海的夜
    让我这种用了十几年COBOL的人情何以堪,感觉自己是木乃伊了。
  • rocinn
    在对日外包公司,看过Cobol代码
  • LDxy
    COBOL 其实是高级语言
  • Geek_007
    cobol是不是早就停止升级了,也没有像c++标准委员会那样的组织吗?
  • 小斧
    编程语言就像生物物种一样,存在一个进化的脉络,许许多多分支最终都会成为进化的死胡同。这种现象已经发生了。Cobol 语言曾经流行一时,但是现在看来没有任何后续语言继承它的思想。它就像尼安德特人一样,进化之路已经走到了尽头。”
收起评论
显示
设置
留言
11
收藏
16
沉浸
阅读
分享
手机端
快捷键
回顶部