.NET中实际上存在COBOL吗?

29

我刚才在查看微软的Visual Studio页面时,在广告侧栏突然看到了一个令人难以置信的广告:

"Net Express是一个COBOL开发环境,可将核心业务流程扩展到.NET Framework和其他分布式平台。"

当然,我按照链接找到了一家可以做到这一点的公司,但还有使用COBOL的地方吗? 有人真的在.NET框架中使用COBOL吗?


我投票关闭此问题,因为这是一个非常老的问题,不适合今天的网站,并且可以通过搜索引擎、联系Micro Focus、注意到他们有新产品发布和其他琐碎的方法来回答。 - Bill Woodger
7个回答

52
Micro Focus推出了一个COBOL开发套件,主要用于维护遗留的大型机应用程序。它支持来自不同平台的20种左右的COBOL方言,并且具有CICS仿真功能。截至2004年,他们建议将其用于替换高达400 MIPS左右的大型机工作负载。需要注意的是,在20世纪90年代初期,仍然可以从Amdahl购买22 MIPS的大型机系统,因此在大型机上运行400 MIPS是相当大的工作负载。

将遗留的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年,并且是一种成熟、被充分理解和可靠的技术,实际上做得非常好。

11

我真正开始编写COBOL代码 - 在Fortran、Pascal和C上学习,但在我的前5年职业生涯中,我大部分时间都在IBM/390上专业编写COBOL代码。然而,15年来都没有碰过它。

COBOL是批量金融处理语言的典范。如果结构合理,它可以做到最好的事情——比任何其他语言更好地处理大量的金融数据。它也是一个非常好的嵌入其他系统的语言——通常作为其他系统之间的粘合剂。

把它想象成一辆火车头:-)。在19世纪,每个人都乘火车旅行,因为那是我们唯一拥有的交通工具,但对于大多数人来说,这已被汽车和飞机所取代。然而,对于大量重型货物的运输,铁路系统仍然是最佳选择。你不经常在日常生活中看到火车头,但它们用煤保持你的发电站运转。

值得注意的是,Lisp在AI编程中仍然有类似的地位。我发现有趣的是,三个60年代/70年代“大”语言中的另外一个成员 - Fortran - 的衰落比其他语言更多,这不是我当时所期望的。然而,我们现在仍然大量使用BASIC,它实际上是Fortran的私生子,因此可以说这三种语言和以前一样活跃。


1
我认为Fortran在科学界仍然被广泛使用。就我所知,我的物理学学位课程(在一所非常有声望的英国大学)包括了一个关于Fortran的模块,而那只是大约5年前的事情。 - Mr. Boy
1
两十年前,类似Fortran的BASIC语言和ZX-Spectrum等设备一起消失了。现代的Visual Basic更接近于C#而不是Fortran。 - Vanya
别说了吧。即使现在,与真正的编程语言相比,VB.net的结构仍然非常糟糕。虽然它可能已经有了相当大的改进,但从根本上来说,它仍然是基础语言,你无法改变它的本质。 - Cruachan
1
@Cruachan:你一定对C#也有很低的评价,因为VB.NET和C#几乎是相同的双胞胎,只有一些微小的语法差异。 - Chad
@ChadD 我明白你的意思,但我不确定那是真的,表面上因为在 .Net 上开发的主要方面是 API 本身,所以它们看起来很相似,但如果你将其与语言本身分开,那么 BASIC 仍然是 BASIC。 - Cruachan
希望我能多次点赞。我喜欢火车头/铁路的比喻,太棒了!我在1994年开始我的开发生涯,使用COBOL语言。在90年代末和00年代初,我使用VB5/6。2002年开始学习JavaScript和C#。直到2010年,我仍在使用COBOL。我仍然热爱它。正如你巧妙地用比喻所描述的那样,它真的是一个大型铁马工作机器。 - Andrew Steitz

9

Rob,尽管不一定是为了 .NET,但仍有许多地方在使用COBOL;我们仍然进行着大量的大型机开发,绝大多数金融应用程序仍然是使用 COBOL 接口与 CICS 编写。

此外,您仍然可以为 Windows 平台获取 COBOL 编译器(例如 Fujitsu)。


1
我一点都不知道,我一直听说 Cobol 是一种恐龙级别的语言,所以我以为 Cobol 已经灭绝了,只有极少数人在使用。现在听到它仍然活跃着,我感到很开心。 - Robert Gould
主机也是一种史前巨兽,但我非常确定IBM的STG(制造z/OS的部门)的投资回报仍然是20比1或更高。 - paxdiablo
1
提到成为恐龙:IBM z800系列的开发代号是Raptor,我觉得这很有趣。你仍然可以购买二手设备......根据这个经销商,价格范围从30万美元到120万美元不等。[http://www.reliablecomputer.com/pricez8.html] - Mark Harrison

6

我认为更常见的情况是互操作性,例如Windows和ASP.NET应用程序与COBOL/CICS应用程序之间的通信以及反过来。

几年前,我参与了一个这样的项目,为我国一家大型银行工作,我可以想象对于任何拥有超过40年IT经验的银行来说,这将是相当普遍的情况。


我原以为这些东西早已被替代,但这说明了我是多么错误,谢谢你的“消息”! - Robert Gould

3

COBOL是一个小众领域。一个美好、舒适、有利可图的小众领域。也许它(迟早)会消失,但现在还存在。在这里,几个主要的银行机构都使用COBOL开发他们的核心系统。这不仅仅是维护,还包括开发!

它已经存在了大约50年左右。每隔10年就会有人宣布它死亡,但它仍然存在。


我最喜欢的笑话之一是“Y10K问题”。http://www.toofaani.com/jokes/computers/year-10000-and-cobol/ - Andrew Steitz
1
11年后,它仍然存在(https://www.tomshardware.com/news/new-jersey-cobol-coders-mainframes-coronavirus)。 - Peter Mortensen

1
一个来自维基百科的文章让我惊讶:
COBOL程序在全球范围内被政府和军事机构、商业企业以及操作系统(如IBM的z/OS、微软的Windows和POSIX系列(Unix/Linux等))使用。1997年,高德纳集团报告称,全球80%的企业都在运行COBOL,存在着超过2000亿行的代码,并估计每年有50亿行的新代码产生。

http://en.wikipedia.org/wiki/COBOL

我曾认为COBOL是“木材”语言,但事实并非如此。 顺便说一下,Fujitsu NetCOBOL for .NETMicro Focus Net Express® with .NET都是相当全面的实现。也许我们应该学习这种语言,然后找到一份高薪工作? :)


0

我知道Raincode、Fujitsu和Microfocus。

  • Microfocus尝试使用COBOL Codebehind来开发ASP.NET。

  • 我不确定Fujitsu是否仍然提供自己的Web解决方案或者尝试适应ASP.NET。

  • Raincode提供一个标准的COBOL编译器,针对.NET平台,没有任何尝试去利用ASP.NET。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接