Oracle 宣布GraalVM 支持COBOL 编程语言

GraalVM引入了对COBOL的支持,扩大了支持范围,一个运行时可以支持多种可互操作的语言。这就把可以在多个平台上运行的Java(语言)的范围扩展到了可以在多个平台上运行多种语言的Java(虚拟机)。

这项工作是Christoph Schobesberger在10月份通过他在JKU Linz大学的研究工作介绍的。该技术的工作原理是通过GraalVM与LLVM位码的集成。通过LLVM的路径不同于HotSpot实现对替代语言如Nashorn(Java 8中的JavaScript,后来被废弃)和JRuby(一个活跃的外部项目)的支持方式。HotSpot实现的目标是Java字节码和JSR-292(动态语言)及其后续的JIT优化,而像TruffleRuby这样的GraalVM语言则在LLVM层面追求优化,以实现原生超前编译。GraalVM除了原生编译外,还提供了HotSpot模式。

多语言(polyglot)编程的作用是GraalVM的一个目的,开发者可以创建可互操作的软件,这些软件是原生编译的,连接到另一种语言的库,这些库提供了好处,但作者可能不理解。以COBOL为例,用GnuCobol编译的应用程序可以让懂Java的开发者参与。这种桥梁可以帮助弥补维护可能用COBOL编写但难以维护的旧软件系统的差距。IBM系统媒体表示,每年约有10%的COBOL工程师退休,平均年龄为58岁,可以改变系统与Java的互操作性。IBM还被指在各种年龄歧视诉讼中鼓励员工强制退休。

除了COBOL集成之外,GraalVM还维护着一个活跃的多语言列表,其中有运行程序的指令。这个列表包括其他语言。JavaScript/Node、Python、R、Ruby和WebAssembly。这项工作大部分源于Thomas Wurthinger等人的研究,他们在2015年的ACM论文 "High-performance cross-language interoperability in a multi-language runtime "中描述了这些研究。管理跨语言执行的一个关键能力是能够看到并可视化这些语言的执行情况,以发现编译器层面的缺陷。这种可视化是通过Ideal Graph Visualizer实现的。

虽然GraalVM及其多语言模型的吸引力可以吸引开发者,但AOT编译的主要好处并不总是能达到降低资源和成本的预期效果。Payara的一篇博客文章分析了无服务器或容器化执行模型上不同工作负载的执行成本。虽然一些应用可能会获得成本收益,但在某些情况下,基于内存需求和应用使用模式,成本收益可能会反向作用。作为一系列的小功能,大多数无服务器系统使用单一的语言,而不是多语言能力。

 

COBOL 语言, 是一门古老 的编程语言, 记得网上媒体报道,说美国的退休军人薪酬系统,就是用的COBOL, 另外很多银行系统,也用的是COBOL.

一段尘封36年的COBOL代码重现天日,还是在施瓦辛格的经典之作《终结者》。

终结者也用COBOL?

电影《终结者》中的一个场景,竟然使用了COBOL代码!

 

所以甲骨文这次干了个大事. 特别是在圣诞节期间公布这个, 真的太可以了.

你以为2020年就这样过去了, 但人们总能得到惊喜

分类: 编程语言 标签: Oracle GraalVM COBOL 发布于: 2020-12-26 19:52:32, 点击数: