代码惯性。 大量使用COBOL编写的现有代码 = 切换到其他语言的成本过高。据维基百科称,目前有超过2000亿行COBOL代码在使用中。
政策惯性。 COBOL真正广泛使用的地方往往是政府机构和大型企业,这些机构通常变化缓慢。
人的惯性。 专门编写代码且了解多种语言的人更不太可能认为学习新语言是一件大事。而因需要掌握某种语言以执行“业务”工作而学习该语言的人可能根本没有考虑切换的想法。
维护,支持和运行 - 这里进行长时间的大量数字计算,因为结果不尽如人意!
COBOL回归了 - 但并非完全回归。 新的执行方向是保留COBOL用于繁重的工作(后端事务处理)和批量导向的应用程序。基本上,COBOL用于数字计算和业务规则实现。Java则提供GUI类型界面和轻量级处理。
我认为这可能是行业趋势。COBOL不会很快消失,但它可能会在幕后不被注意,以支持前台的新参与者。
为什么COBOL变得流行?
因为在20世纪50年代末期,美国政府颁布了一项法令,规定如果软件供应商想要向政府销售或编写应用程序,语言必须是COBOL。
因此,在几十年的时间里,COBOL是拥有最多编译器供应商支持的语言,并且它是具有最高ISO标准化程度的语言,只有FORTRAN接近,但FORTRAN显然有完全不同的目标受众。
第二个原因:即使在今天,对于某些经常出现的特定业务问题,我确信它比我知道的其他任何语言都要好。其中最重要的方面是十进制算术。COBOL原生支持它(与PL/1等情况相同),但这并不适用于所有那些所谓的“更现代”的语言。顺便说一下:这正是为什么这里会有那么多关于“什么数据类型最适合存储货币值?”的问题的根本原因。提出这些问题的人们不知道整个IT世界不仅仅包括一些OO语言和一些ORM工具,而且他们也不知道为什么“货币算术”对于计算机语言来说可能是有用的,即计算机语言应具备内置的本地数据类型,除了bigint(程序员仍需跟踪小数位数)或float(程序员仍要负责在各个地方添加正确的舍入逻辑)。
[供应商发布-但不一定是供应商的官方声明]
当然,惯性、安装基础和改变风险都是非常合理的原因,但我认为语言本身也有很好的理由。如果您想要批处理大量数据记录或进行财务计算,那么记录布局和数字数据类型的定义比任何其他语言都更好。
正如NealB在他的帖子中所描述的那样,我曾与那些自然环境和专业知识是Java的用户交谈过,但他们将核心逻辑保留在COBOL中,因为这是最适合工作的工具。他们在同一应用程序中自由混合Java(主要用于Unicode字符串操作和系统集成)和COBOL。如果他们比较了在Java中完成相同工作所需的代码量,那就没有意义了。Alex Turner在另一个网站上发布了一些很好的例子,比较了COBOL和Java中的典型业务功能。
Cobol的发明是为了让那些对计算机一无所知的人编写程序。这正是商业,特别是美国商业蓬勃发展的糟糕想法。
优秀的软件需要高超的技能和良好的工具,其中一些实际上需要真正的知识和理解才能使用得当。高超的技能水平往往要求高薪,因此寻找银弹的搜索继续进行,并且积极地阻碍高超的技能水平的发展。不相信我?试试这些链接
http://userweb.cs.utexas.edu/users/EWD/transcriptions/EWD12xx/EWD1284.html
我曾使用C、C++和Java。 所有语言都具有高级功能和图形特性。 但是当涉及到计算时,也就是业务计算和推断,并非越努力越好。在效率方面没有人比得过COBOL,尤其处理大量数据时, 一天或更长时间的处理......用Java或其他语言想都别想,只有COBOL和主机。
这就是为什么领先的银行公司在从主机迁移到其他平台之前会考虑十次。