将遗留的COBOL后端集成到现代前端是一项大生意。有相当庞大的生态系统涉及终端 仿真 软件, 屏幕刮取器, 接口库和各种协议的RPC包装器,例如CORBA和SOAP。
几年前,Micro Focus推出了一款COBOL .NET编译器,使您可以在CLR后端上运行COBOL应用程序。您可以编译任何受支持的方言,并运行所有旧版仿真功能。这允许您在现有COBOL应用程序上放置GUI或Web前端(或Web服务层),保留对现有代码库的投资。前端可以使用几乎支持CLR的任何开发工具编写。您想要使用C#/Windows Forms、MS Workflow Foundation、SSIS、IronPython、ASP.NET或SQL Server CLR集成与您的COBOL后端 - 随便你。因此,这通常是完全重写和迁移传统应用程序的非常有吸引力的选择。
这种类型的工作占据了他们业务的相当大部分,但仍然存在COBOL在自己的领域做得非常好的利基。对于许多大型批处理作业,打开面向记录的文件并按过程处理它是一种很好的范例,可以获得一个简单、易懂且快速的应用程序。我曾经在Slashdot(如果我没记错的话)上读到过一篇帖子,其中有人谈论一个COBOL应用程序,该应用程序每小时读取一个35GB的信用卡退款文件并处理它。那是在相当长时间之前发布的,大约是在1990年代的某个时候 - 那时,35GB比大多数PC的磁盘容量要大得多。
获取RDMBS在一个小时内批量加载和处理35GB的数据(大约1-2亿条记录)并不是一项轻松的任务,即使在现代硬件上也是如此。通常,要从SQL获得性能需要您采取一种有点间接的方法来处理,这可能会掩盖代码的含义;高度调优的SQL可能相当“只写”。COBOL已经在这种应用程序中使用了大约50年,并且是一种成熟、被充分理解和可靠的技术,实际上做得非常好。我真正开始编写COBOL代码 - 在Fortran、Pascal和C上学习,但在我的前5年职业生涯中,我大部分时间都在IBM/390上专业编写COBOL代码。然而,15年来都没有碰过它。
COBOL是批量金融处理语言的典范。如果结构合理,它可以做到最好的事情——比任何其他语言更好地处理大量的金融数据。它也是一个非常好的嵌入其他系统的语言——通常作为其他系统之间的粘合剂。
把它想象成一辆火车头:-)。在19世纪,每个人都乘火车旅行,因为那是我们唯一拥有的交通工具,但对于大多数人来说,这已被汽车和飞机所取代。然而,对于大量重型货物的运输,铁路系统仍然是最佳选择。你不经常在日常生活中看到火车头,但它们用煤保持你的发电站运转。
值得注意的是,Lisp在AI编程中仍然有类似的地位。我发现有趣的是,三个60年代/70年代“大”语言中的另外一个成员 - Fortran - 的衰落比其他语言更多,这不是我当时所期望的。然而,我们现在仍然大量使用BASIC,它实际上是Fortran的私生子,因此可以说这三种语言和以前一样活跃。
Rob,尽管不一定是为了 .NET,但仍有许多地方在使用COBOL;我们仍然进行着大量的大型机开发,绝大多数金融应用程序仍然是使用 COBOL 接口与 CICS 编写。
此外,您仍然可以为 Windows 平台获取 COBOL 编译器(例如 Fujitsu)。
我认为更常见的情况是互操作性,例如Windows和ASP.NET应用程序与COBOL/CICS应用程序之间的通信以及反过来。
几年前,我参与了一个这样的项目,为我国一家大型银行工作,我可以想象对于任何拥有超过40年IT经验的银行来说,这将是相当普遍的情况。
COBOL是一个小众领域。一个美好、舒适、有利可图的小众领域。也许它(迟早)会消失,但现在还存在。在这里,几个主要的银行机构都使用COBOL开发他们的核心系统。这不仅仅是维护,还包括开发!
它已经存在了大约50年左右。每隔10年就会有人宣布它死亡,但它仍然存在。
http://en.wikipedia.org/wiki/COBOL
我曾认为COBOL是“木材”语言,但事实并非如此。 顺便说一下,Fujitsu NetCOBOL for .NET和Micro Focus Net Express® with .NET都是相当全面的实现。也许我们应该学习这种语言,然后找到一份高薪工作? :)
我知道Raincode、Fujitsu和Microfocus。
Microfocus尝试使用COBOL Codebehind来开发ASP.NET。
我不确定Fujitsu是否仍然提供自己的Web解决方案或者尝试适应ASP.NET。
Raincode提供一个标准的COBOL编译器,针对.NET平台,没有任何尝试去利用ASP.NET。