刚才在查看微软的 Visual Studio 页面时,突然在广告侧边栏看到了一个不可思议的广告:
“Net Express 是一个COBOL开发环境,用于将核心业务流程扩展到 .NET Framework 和其他分布式平台。”
当然我跟着链接找到了一家做这个的公司,但是还有地方还在用COBOL吗?有人真的在 .NET 框架中使用 COBOL 吗?
Micro Focus制作了一个 COBOL 开发套件,主要用于维护旧的大型机应用程序。它会说来自各种平台的 20 种 COBOL 方言,并具有CICS仿真工具。截至 2004 年,他们推荐它来替换高达400 MIPS左右的大型机工作负载。请记住,您仍然可以在 1990 年代初期从 Amdahl 购买额定为 22 MIPS 的大型机系统,在大型机上 400 MIPS 是相当大的工作量。
将传统的 COBOL 后端集成到现代前端是一项大生意。有相当丰富的终端 仿真 软件生态系统、屏幕抓取工具、接口库和用于各种协议(如 CORBA 和 SOAP)的 RPC 包装器。
几年前,Micro Focus 推出了一个COBOL .NET 编译器,允许您在 CLR 后端运行 COBOL 应用程序。您可以编译任何受支持的方言,它将运行所有旧版仿真功能。这允许您将 GUI 或 Web 前端(或 Web 服务层)放在现有的 COBOL 应用程序上,从而保留对现有代码库的投资。几乎可以使用任何支持 CLR 的开发工具来编写前端。您想使用 C#/Windows Forms、MS Workflow Foundation、SSIS、IronPython、ASP.NET 或 SQL Server CLR 与您的 COBOL 后端集成 - 让自己失望。
因此,对于遗留应用程序的完全重写和迁移,它通常是一个非常有吸引力的替代方案。
这种类型的工作占了他们业务的很大一部分,但仍然有一些利基市场,COBOL 实际上本身就做得很好。对于许多大批量作业,打开面向记录的文件并按程序处理它是获得简单、可理解和快速的应用程序的良好范例。我曾经读过一篇帖子(在 Slashdot IIRC 上),有人在谈论一个 COBOL 应用程序,该应用程序读取 35GB 的信用卡退款文件并每小时处理一次。这是很久以前发布的,在 1990 年代的某个时候——当时 35GB 比大多数 PC 的磁盘容量大得多。
让 RDMBS 在一个小时内批量加载和处理 35GB 的数据(估计 100-2 亿条记录)不一定是一件微不足道的工作,即使在现代硬件上也是如此。通常,从 SQL 中获得性能需要您对处理采取一种有些不恰当的方法,这可能会混淆代码的含义;高度调整的 SQL 可以是相当“只写”的。
COBOL 已在此类应用程序中使用了大约 50 年,是一种成熟、易于理解且可靠的技术,实际上做得很好。
我真的很喜欢COBOL编码 - 学习 Fortran、Pascal 和 C,但我前 5 年的大部分时间都在 IBM/390 上的 COBOL 上进行专业编码。不过15年没碰过。
COBOL 是出类拔萃的批处理财务处理语言。结构合理,它可以做它最擅长的事情——处理大量财务数据——比其他任何事情都好。它也是一种将其他系统嵌入其中的非常好的语言——通常作为其他系统之间的粘合剂运行。
把它想象成一个机车:-)。在 19 世纪,每个人都曾经乘坐火车旅行,因为我们只有火车,但大多数人都被汽车和飞机所取代。尽管铁路系统仍然是要走的路,但要运送大量的重型货物。您在日常生活中并不经常看到机车,但它们让您的发电站使用煤炭运行。
值得注意的是,Lisp 在 AI 编码中仍然具有相似的地位。我发现有趣的是,1960 年代/70 年代三种“大”语言组中的另一个成员 - Fortran - 比其他语言下降得更多,这不是我当时所期望的。然而,我们仍然有很大一部分BASIC,它实际上是 Fortran 的私生子,所以可以说这三个人都像他们在任何地方一样活跃和活跃。
Rob,虽然不一定适用于 .NET,但仍有很多地方在做 COBOL;我们仍然进行大量大型机开发,并且绝大多数金融应用程序仍然使用与 CICS 交互的 COBOL 编写。
此外,您仍然可以获得适用于 Windows 平台的 COBOL 编译器(例如,Fujitsu)。
我认为更常见的场景是互操作性,例如,Windows 和 ASP.NET 应用程序与 COBOL/CICS 应用程序通信,反之亦然。
几年前,我曾为我国的一家大型银行参与过这样的项目,我可以想象这对于任何拥有超过 40 年 IT 经验的银行来说都是相当普遍的。
COBOL 是一个利基市场。一个不错的、舒适的、有利可图的利基市场。这可能(迟早)会变得不存在,但现在它仍然存在。就在这里,几家主要的银行组织都在 COBOL 中开发了他们的核心系统。这不仅是维护,更是开发!
It has been around for 50 years or so. Every 10 years someone announcing it dead, but it still hangs on.
Wikipedia 上的一篇文章让我大吃一惊:
COBOL 程序在全球范围内用于政府和军事机构、商业企业以及 IBM 的 z/OS、Microsoft 的 Windows 和 POSIX 系列(Unix/Linux 等)等操作系统。1997 年,Gartner Group 报告称,全球 80% 的业务在 COBOL 上运行,现有代码超过 2000 亿行,估计每年有 50 亿行新代码。
http://en.wikipedia.org/wiki/COBOL
我认为COBOL是“木材”。这不是真的。顺便说一下,Fujitsu NetCOBOL for .NET和Micro Focus Net Express® with .NET是相当全面的实现。也许我们应该学习这门语言,然后找到一份高薪的好工作?:)
I know of Raincode, Fujitsu, and Microfocus.
Microfocus attempts ASP.NET using COBOL Codebehind.
Fujitsu I'm not sure if they are still offering their own web solution or attempting to fit into ASP.NET.
Raincode offers a standard COBOL compiler targetting .NET without any attempt to harness ASP.NET