10

我对旧的编程语言非常好奇,尤其是 COBOL,由于 Wikipedia 无法真正告诉我这个话题,我决定在这里问它:

  • COBOL 是真正用于金融、股票和银行系统的第一种编程语言吗?

  • COBOL 到底用在了哪里?

  • 例如,它是否比 Fortran 或 BASIC 更频繁地使用?

  • 我不知道你是否生活在那个时代,但是人们对不断上升的 COBOL 有何反应?他们期望它是未来吗?

  • COBOL 何时真正停止用于创建新的大型系统?

  • 您确定仍然存在用 COBOL 编写的重要遗留应用程序吗?我简直不敢相信。

4

7 回答 7

21

以前的 SO 问题对回答您的问题大有帮助。请查阅:

今天的 Fortran 和 COBOL 是做什么用的

为什么 COBOL 仍然是商业世界的首选语言

在 COBOL 中启动新项目的原因

是什么让 COBOL 成为如此令人讨厌的语言

COBOL 是第一种用于金融、股票和银行系统的编程语言吗

与早期 COBOL 共存的著名语言是 Fortran 和 Lisp。在研究和大学设施之外,这些语言的使用并不多。

商业计算领域的格局高度分散。存在许多专有的中低级语言,但通常只在一台供应商的机器上运行。一些例子是:FLO-MATICAIMACOCOMTRAN,它们都对 COBOL 的发展产生了重大影响。

从这种混乱中产生了一种强烈的愿望,即拥有一种独立于机器的通用语言来开发业务应用程序。

根据 Jean E. Sammet(COBOL 的早期历史)的说法,美国国防部率先并资助了 COBOL 的早期开发。

COBOL 在哪里使用

主要在金融(银行/政府)和保险行业。在这些领域之外,COBOL 几乎是闻所未闻的。

它是否比 Fortran 或 BASIC 更频繁地使用

我相信 Fortran 实际上比 COBOL 早了一点。Fortran 主要适用于高性能数值应用程序(天文学、物理学等)。COBOL 主要适用于财务和记录保存应用程序——商业和商业的东西(因此得名:CO mmon B usiness Oriented L anguage )。两者从来没有“竞争”过,所以问哪个更常用有点像比较苹果和橘子。

撇开“苹果”和“橙子”不谈,很难说这两种语言中存在多少行生产代码。估计从数十亿到数百万不等。但是,我认为没有人会声称活动代码库是微不足道的。

BASIC(不包括“Visual Basic”)主要是一种个人计算机语言。已经有一些大型机器的端口(例如 VAX BASIC - 哦,这很有趣),但我认为这从未流行过。如果今天有任何用 BASIC 编写的重要生产系统,我会感到惊讶。只要对任何“老前辈”说“BAISC”,他们的脑海中就会充满美好的回忆。除此之外,它几乎没有了。

COBOL 什么时候停止使用

COBOL 的遗产是巨大的。因此,今天有很多遗留维护正在进行,并且会持续很多年。

有没有新的发展?我会说每年越来越少,但它还远未结束。我在一家非常大的商店工作,我们积极开发新的 COBOL 应用程序。我不相信我们是孤独的。那些仍然在 COBOL 中积极开发系统的人不是一群不知道更好的“后木”白痴。他们这样做是因为 COBOL 以最低的每笔交易处理成本“交付货物”。相信我,如果有任何其他技术可以更便宜、更快、更可靠地做到这一点,COBOL 明天就会消失!

只有在金融、政府或保险行业工作才能了解 COBOL 的广泛传播——而且只能在他们必须推送大量数据的领域。如果你在这个环境之外工作,就像语言在一百年前就死了!

人们对 COBOL 的兴起有何反应?

一句话:不好。

COBOL 的出现几乎与学术界在语言理论和编译器设计方面取得巨大突破的同时。COBOL 错过了那条船,从那时起就被所有对计算有学术兴趣的人诋毁。我在 70 年代读完大学,即使在那个时候,“COBOL”这个词也让我们都畏缩不前。对 COBOL 的仇恨非常深。

即使是 COBOL 的开发人员也无法预测该语言的长期成功。最初的 COBOL 是由一个“短期委员会”指定的,因此它可以在合理的时间和精力下实施。最后的“接触”将由一个“长期委员会”进行。“长期承诺”从未实现,这就是我们得到的!

自 60 年代以来,COBOL 的消亡就已被预测为迫在眉睫。它仍然与我们同在,并且不断发展壮大。

为什么?我认为有三个很大的原因:

  • 代码稳定性。COBOL 很好地继承了它的传统,很少有重大升级。如果您从事开发代码的业务,这可能不是卖点。但是,如果您是为此付费的人,COBOL 会在这一项上获得高分。
  • 表现。COBOL 应用程序通常在数量和/或吞吐量至关重要的情况下开发(例如,处理每月银行对账单、纳税申报表等)
  • 跟踪记录。使用 COBOL 的组织通常都知道他们的跟踪记录。他们对使用 COBOL 和相关技术的主要开发项目的成本/时间估算有一定的舒适度。采用新的语言和支持技术来实施关键任务应用程序涉及额外的和未知的风险(和未知的好处)。

请注意,我为 COBOL 继续存在所引用的所有原因都是由成本和风险最小化驱动的。从开发人员的角度来看,没有什么能让使用 COBOL 进行开发变得有趣。将 COBOL 的持续成功归咎于企业会计师。

从好的方面来说,有一些框架(例如,Bassett Frame Technology 和 XVCL)可以使今天的 COBOL 开发变得可以忍受,甚至,我敢说,有趣。

于 2010-04-14T18:23:34.353 回答
3

COBOL 是真正用于金融、股票和银行系统的第一种编程语言吗?

出于实际目的,这一切都是在汇编程序中完成的,但 Cobol 是第一个进入这些领域的高级语言。

COBOL 到底用在了哪里?

任何资金易手、库存被跟踪的地方,等等。您使用“曾经”这个词意味着它现在没有被使用。每次您刷信用卡、运送包裹、打电话时,Cobol 都会参与其中……无处不在。仍然。

例如,它是否比 Fortran 或 BASIC 更频繁地使用?

是的,非常如此。Fortran 非常适合科学极客和工程师——这是一个崇高的使命——但在 Cobol 领域的销售和营销极客数量中并不存在。

有人用 BASIC 吗?这不是很糟糕吗?

我不知道你是否生活在那个时代,但是人们对不断上升的 COBOL 有何反应?他们期望它是未来吗?

人们喜欢信用卡。人们喜欢在线访问他们的银行账户。人们喜欢提供余额和最后 5 笔交易的语音应答系统。人们喜欢自动取款机。人们喜欢快速的航空公司和酒店预订。

唯一不喜欢 Cobol 为他们做的事情的人是那些从未花时间和精力去理解 Cobol 的程序员(但他们还是讨厌它)。

COBOL 何时真正停止用于创建新的大型系统?

嗯,从来没有。Cobol 仍在世界各地积极开发和使用。这并不性感,没有计算机科学教授会告诉你这是“下一件大事”——但如果他们知道他们在说什么,他们就会在现实世界中赚钱......

您确定仍然存在用 COBOL 编写的重要遗留应用程序吗?我简直不敢相信。

万事达。签证。呐……

于 2010-06-08T08:50:07.397 回答
2

回答最后一部分:

是的,银行每天都会编写新的COBOL 应用程序。大型金融机构通常有一两台大型机,因为它们(传统上)具有比标准服务器更好的正常运行时间,并且可以可靠地移动大量数据。

此外,仍在做 COBOL 的人非常擅长他们所做的事情。

如果您正在处理数十亿美元的电子交易,那么可靠值得付出代价,即使这样做并不新鲜也不性感。再说一次,我不能从我的网络服务器中热插拔处理器;从大型机中热交换任何部件通常是可能的,如果我自己这么说的话,这实际上是一个非常技术性感的功能。

于 2010-04-14T20:23:30.117 回答
2
  1. 真的不知道,但LEO用于工资单。它使用了一种类似于 COBOL 的语言,称为 CLEO。

  2. COBOL 到处都在使用。主要是银行和大型主机部门。

  3. 很难说。它在当时肯定很受欢迎。

  4. 在 COBOL 处于全盛时期的日子里,替代品是针对替代利基市场的——例如 Fortran 用于科学,Algol 用于学术,Cobol 用于金融。他们是否期望它成为未来……可能。

5,6。它仍然被使用。搜索 COBOL 工作,您会在银行和金融公司中找到很多正在寻找程序员、架构师等的热门职位。从各方面来看,薪水也相当不错。

于 2010-04-13T21:26:00.070 回答
0

在我的职业生涯中,我成功地走了近 15 年,没有接触过任何一行 COBOL,甚至没有看到它。直到我得到我的最后一份工作,这是一些将 COBOL 链接到 Web 服务和非大型机数据库的企业中间件。我在这份新工作中的第一个客户参与是在一家拥有大量 COBOL 的大公司,他们希望与更新的系统集成。

学习它一直很痛苦,主要是因为很少有好的基于 PC 的 COBOL 引擎,但它并不难。这就是它仍然存在的原因。它完成了一项工作,做得很好。它表明它在如何与 SOA 框架交互方面有点过时了,但即使是这个问题也正在消失。

于 2010-07-08T12:47:00.857 回答
0

@尼尔:

> BASIC(不包括“Visual Basic”)主要是一种个人计算机语言。已经有一些大型机器的端口(例如 VAX BASIC - 哦,这很有趣),但我认为这从未流行过。

BASIC 也开始在大型机器上。我记得 1974 年在一个类似于http://www.museumwaalsdorp.nl/computer/en/comp742E.html的环境中使用 BASIC 和纸带在 CDC 上编程。

于 2013-02-23T09:53:20.120 回答
-1

cobol 的 RE 代码稳定性:更新很少,但它们非常具有破坏性,并且受到安装群的积极抵制。强制转换时,通常会在兼容模式下完成,仅测试一项就可以消耗一年的整个 SD 预算。OO cobol 就是一个很好的例子,因为除非尝试进行全面重新设计,否则转换的实际成本将超过其收益。咨询公司喜欢这样做,因为他们会按时计费,但对于组织来说,它有可能让他们倒闭。这个 OO cobol 练习的一大神话是 cobol 技能集的“可移植性”,但实际上它是 OOP/OOD 技能所缺乏的,必须向传统程序员传授。学习一种新的范式比学习一种新的工具(语言)更难,事实上,这种练习没有任何意义,只有被称为管理的愚蠢堡垒才能娱乐——就像他们一样被供应商社区小心误导是为股东创造“价值”。这通常很容易出售,而傻瓜通常确实值得被剥削。

RE 执行速度。这真的不值得详细回答。平台很快,编译器决定了执行速度。我检查了 COBOL 编译器的 asm 输出,它并不比一个好的 c 编译器好。更重要的是,经典 COBOLS 缺乏类型安全性、不支持范围、不支持参数化过程、不支持显式类型转换等,导致错误的印象是,因为它不做任何事情,所以速度更快。事实上,其中大部分只需要编译时支持,其余的并不会增加太多开销(并且可以优化它所做的很少),因为它确实使代码重用成本高得令人望而却步,使测试成为一场噩梦,并产生脆弱的代码。

只有当修复成本很高时它才会消失。这可能会发生也可能不会发生,但组织更有可能会因为一个重大的软件问题而失败,在此之前该问题会被类型安全的语言所困。(OOP 将提供类型安全,但这需要 cobol 程序员和业务分析师学习使用类型)

于 2010-07-08T12:21:24.823 回答