既然楼上让我多介绍一点,我就另开个回答写一点吧。

这个现象在工程项目管理中通常叫做“legacy system”,指的就是那些技术复杂且功能稳定,需要长时间保持高可用性的系统 。楼上答主已经很好的介绍了Fortran的情况,我再举几个栗子。

1. COBOL诞生于1959年,和Fortran一个时代。这个语言可能大家听说的不太多,但如果超过70%的银行和政府的大型机运行着基于这个语言的系统(是的,多于VB,C#,Java或者其他语言)应该会得到重视吧。美国国防部(以后简称DoD)当时计划构建一种能够在不同类型计算机上运行的面向商业的语言,委托Grace Hopper博士(计算机界的女神,有兴趣的知友可以八一下)设计出来的。这可以说第一种真正意义上的跨平台高级语言,要知道那个年代的大型机是连黑白屏这种用户界面都没有的,输出要靠打孔卡,存储要靠磁带, 但是不同公司生产的大型机却只能运行自带的程序。

值得一提的是,这个计划得到了包括IBM在内的大公司和美国军方的支持,尤其是IBM在1964年推出的S/360大获成功之后,几乎所有的银行及政府系统第一次投入巨资引入大型机来改变商业流程,一直持续到今天,COBOL作为银行开发商务程序的首选地位仍然是无可撼动。根据2012年《计算机世界》杂志对银行系统的管理者进行的调查Brain drain: Where Cobol systems go from here,64%的受访者表示使用过COBOL,高于其他任何语言;超过一半的受访者表示组织内部的系统多于50%是用COBOL编写的,53%的受访者表示直到今天还在用COBOL开发新的商务系统。究其原因,不外乎迁移系统的成本太大,而现有系统运行稳定,只要迁移的好处不明显(另一项调查表明基于COBOL的每行代码成本是基于Java的每行代码成本的四分之一),COBOL会一直持续的使用下去。

2. Ada是DoD在80年代提出的一种语言,一开始的根本目的也是为了解决因为DoD的系统上跑着数百种不同的语言,事实上已经无法持续的高昂维护成本。自从使用Ada进行开发以后,DoD项目中使用的开发语言数量从1983年的450种降到了1996年的37种。美军的各种导弹、火箭、战机控制系统都是基于Ada的,民用的包括大型商务客机的飞控系统、各国的空管系统也是基于Ada (详细情况可见Who’s Using Ada?)。

— 完 —

本文作者:知乎用户(登录查看详情)

【知乎日报】
你都看到这啦,快来点我嘛 Σ(▼□▼メ)

此问题还有 13 个回答,查看全部。

分享到