为什么 COBOL 还没有“死”?

点击上方“编程派”,选择设为“设为星标

优质文章,第一时间送达!

为什么 COBOL 还没有“死”?_第1张图片

译者:EarlGrey@编程派

原文:http://slott-softwarearchitect.blogspot.com/2020/04/why-isnt-cobol-dead-or-why-didnt-it.html

由于疫情原因,上古语言 COBOL 又火了,甚至 IBM 都开始重新提供培训课程了!今天分享一位国外开发者对 COBOL 的分析文章,解释为什么 COBOL 没有发展的更好?


FORTRAN 之所以能够存活下来,就是因为这门语言及相关的工具链(尤其是编译器)成功地解决了很多开发者的痛点问题,同时保留了高性能的优势。这避免了 Python 等挑战者,试图取代它运行天气预报等动态模型任务的尝试。

简而言之,为什么 FORTRAN 现在混得还可以?但是 COBOL 就惨很多呢?

我敢保证,这两门语言的的境遇基本是一致的。现在仍有机构使用的原因,是仍有大量的历史遗留实现。

当然,两者也是有区别的。我觉得其中一点,就是开发者对语言的反感程度

FORTRAN 给人的印象尚可,是因为它已经将很多实现细节,封装在了常用库里面,开发者不用自己去摸索。SciPy 中有很多 FORTRAN 代码,GCC 编译器会负责处理这些代码,不需要我们操心。

但是 COBOL 就不同了。它没有方便的 Python 上层封装库,也没有 Conda 安装包。只有在企业应用中才有使用。

另外,使用 COBOL 的机构,又正好是存在大量技术惰性的组织。组织变化很慢,它们所使用的语言则更加迟缓。

这是具有监管优势的超大型组织所带来的后果。例如,政府要求很高,政策调节下几乎不怎么变动。银行、保险等其他监管严格的行业,调整的也比较缓慢,能够忍受 COBOL 的问题。

还有一个原因。

FORTRAN 库没那么难弄懂,至少会有清晰的数学定义,可以进行测试。没有什么意料之外的情况。

但是对于要符合法律要求的 COBOL 程序,100% 存在模糊的、无法解开的迷雾,特性叠加特性之后,根本无法进行单元测试。

特殊情况和例外,是程序设计必须要考虑的问题,通常是在应用中解决。

对于FORTRAN,例外情况是由使用 FORTRAN 的 Python 封装(如 SciPy、Numpy)处理的。

但对于COBOL,例外情况就直接在 COBOL 里的,某个地方处理的。

回复下方「关键词」,获取优质资源

回复关键词「 pybook03」,立即获取主页君与小伙伴一起翻译的《Think Python 2e》电子版
回复关键词「入门资料」,立即获取主页君整理的 10 本 Python 入门书的电子版
回复关键词「m」,立即获取Python精选优质文章合集
回复关键词「book 数字」,将数字替换成 0 及以上数字,有惊喜好礼哦~
题图:pexels,CC0 授权。

好文章,我在看❤️

你可能感兴趣的:(为什么 COBOL 还没有“死”?)