Java正成为COBOL的一部分-它将成为COBOL的一部分吗?

任何从大学,技术学校或社区学院毕业的计算机科学专业都接受过培训。 每个身材高大的公司都使用该语言,并拥有一批具备此能力的程序员。 通用语言可以推动业务发展。

1985年是COBOL。今天是Java。 尽管存在差异,但这两种语言在行为轨迹上都具有足够的相似性,从幼稚到顶峰,有人将Java称为“新的COBOL”,为当今人数不多但不断增长的愤慨的Java程序员提供了一种新的工具,以表达他们的不满。 Java的最大问题 。

很容易对那些认为这种颠覆性比较是侮辱的人表示同情。 谁想看到他们的主要编程语言的公众形象被“传统”前辈的包based所贬低,而它们的代码构成却完全不同?

Java已经获得了持续的普及和进步,正如许多人认为的那样,Java是当今的标准编程语言。 同时,主流IT专家贬低并贬低了COBOL及其主要平台大型机,直至被排斥。

但是,这种比较的核心是一个预兆,Java社区应该明智地承认并积极地做好准备:随着更新的,据说是更好的语言的到来,Java作为“标准”的值得称赞的地位很容易落入“无关紧要”的不受欢迎等级。就像COBOL一样。

但是,状态的变化并不一定要定义Java的真实价值,就像面对不断的逆境并没有定义或降低Java在过去的几十年中的价值一样,尽管有许多假设。 我们认为,在Java计划其未来时,它可以并且应该了解持久性,适应性和现代化作为一种​​语言的重要性,并且可以从开始这一切的面向商业的通用语言中学到任何东西。

COBOL,永久失败者

逆境从一开始就困扰着COBOL。 即使在最初针对美国国防部专门设计的语言进行最初的开发和发展时,COBOL仍必须与FACT,COMTRAN和FORTRAN等更成熟的代码争夺其作为事实上的标准业务编程语言的地位。

同时,已故的让·萨姆特(Jean Sammet)在她的当代文章中经常说她是当代的格蕾丝·霍珀(Grace Hopper),可以说是真正的“ COBOL之母”,而COBOL的主要支持者IBM“对如何使用COBOL具有内在的共鸣”。计算机协会。

参与COBOL项目的一些人主张放弃设计工作并重新开始。 其他人则批评COBOL的“语义冗长,语法冗余以及整体缺乏语言优雅”,库尔特·拜尔(Kurt Beyer)在他的2009年著作《 格雷斯·霍珀Grace Hopper)和信息时代的发明》(Invention of the Information Age)中写道。 最无礼的批评家认为,COBOL之所以失败,仅仅是因为女性在创立之初就扮演了重要角色。

他们都错了。

最终,COBOL摆脱了pre可危的劣势地位,发展成为标准的业务编程语言。 在最初的十年中,它在全球的使用率超过了任何其他编程语言,并且它的使用寿命已经超过了预期的失效日期,在70年代和80年代,作为一种领先技术,它作为核心技术被广泛传授给新程序员到了90年代,计算机为世界迎接2000年作了准备,并且作为当今世界上最大,最复杂和最重要的应用程序的基础,今天仍然至关重要。

但是,尽管COBOL在商业世界中很受欢迎并且有其必要性,但它最终未能引起人们的注意。 随着其他语言(如Java)的到来,它不再在学校教授。 它不再受到保持最新状态所需要的照顾和关注,结果变得深奥而利基。

但是,尽管现实是任何编程语言都可以完成任何任务,但有些语言最适合特定任务。 COBOL是尽快处理大量数据的理想选择。

从财富500强公司到政府机构,越来越多的组织开始意识到COBOL对他们的工作至关重要,以及试图窃取,重写和替换这些应用程序是多么昂贵,费时,有风险并最终徒劳。 但是,使COBOL重新投入雷达所花费的时间和精力是一项持续的工作,这是Java社区应该避免的事情。

Java,毫无疑问的最爱

令Java世界感到困扰的是,它们的语言也可能会失传,而不是由于缺乏必要性或功能不断发展而引起的—开源JDK是创新如何发生的一个很好的例子—而是仅仅因为失去了其在应用程序方面的才华。更新,更现代的语言的阴影以更快的速度到达并被用于更新的技术。

Java没有像COBOL那样具有挑战性的开始,也没有具有存在性的挑战。 这可能解释了为什么许多Java倡导者拒绝相信该语言可能会遇到COBOL所面临的同样的逆境,也许也可以解释为什么这么多人讨厌Java-COBOL的比较。

Java最初是为交互式电视而设计的,最终成为当今的标准前端业务编程语言。 与COBOL一样,它在短时间内获得了普及-很大程度上是由于其平台独立性使其可以在各种系统上运行,并且得到了广泛的教导。

但是,无论其目前在企业发展中的足迹如何, 分析人士都声称 Java已经实现,而且IT 影响者长期以来一直在质疑 Java是否应继续作为计算机科学课程中教授的标准语言,就像COBOL一样。

这并不是说我们认为Java变得不相关了,正如某些人建议的那样。 它是活的,而且很好 ,从COBOL的历史中我们知道,该语言即将消亡的说法是虚假的。 Java在商业世界中占有一席之地。 它对于银行,零售和大数据仍然是必不可少的,并且已经被现代流程和工具所包围。

但是,它已有20多年的历史了,并且逐渐受到批评 ,因为与Scala,Kotlin和Ceylon之类的语言相比,它是次现代的。 关键是,就像COBOL一样,Java也不是无懈可击的,它可能会被其他东西超越。 将COBOL的历史视为可能的预兆是明智的,但是观看COBOL的现代复兴也将是明智的。

展望COBOL文艺复兴

尽管大学中对COBOL的学术支持仍然很匮乏,但该系统之外正在出现新的计划,重点是教授COBOL技能,并且公司正在采取主动行动并传授即将退休的专家的知识。

IBM愿意再次拥有该语言的所有权并对其进行现代化,这对于恢复COBOL的形象提供了巨大的帮助。 在2018年,将真正实现持续交付COBOL优化 。 常规版本的升级以前所未有的速度进行,例如在大约两年内从COBOL版本5.2升级到版本6.2,并且强烈鼓励大型机组织进行更新。

更值得注意的是,您现在可以像使用Java一样使用COBOL。 刚接触COBOL的程序员仅需要学习其语法,而无需了解其基础特质。 敏捷和DevOps最佳实践与专为自动化,图形可见性和跨平台集成而设计的新工具相结合,正在缓解学习曲线,并提高专家的工作效率。

并认为这一切都是在更广泛的IT社区将COBOL丢掉了将近20年之后发生的。

Java可以做什么

如果Java程序员希望像COBOL一样防止他们的语言陷入黑暗时代,则必须先进行先发制人的复兴,然后才能发展壮大。 这可能是个开始,这是一个好兆头。

例如,过去曾有人批评甲骨文 ,因为它“ Java技术的管理者不遗余力地致力于建立一个参与性和透明性的社区”,原因是甲骨文没有获得更多的所有权。 作为回应,该公司将Java的发布周期延长至六个月,并且他们正在积极地将用户推向新的Java版本。 但是,仍然可能需要采取其他步骤,例如鼓励在学术系统之外进行指导和学习,因为Java可能会在学术系统中被取代。

尽管存在缺陷,但是像COBOL和Java这样的语言将在我们身边存在很长一段时间,尤其是考虑到其中编写的数百万行代码,其中编写的成千上万的程序员,为它们建立的工具和编译器以及广泛的生态系统支持他们。

但是,像COBOL一样,Java将需要进行调整以保持其地位和价值,因为将来会有一天,下一代程序员不了解它,就像今天的下一代程序员不容易理解COBOL一样。 Java程序员应该以COBOL为例,说明如何计划使该语言保持足够的现代性,以便那些在遥远的未来某天从未见过的人可以使用它。

如果COBOL可以做到,那么Java也可以。

这篇文章是由Compuware内容营销商Mike Siemasz和Compuware产品经理Jim Liebert共同撰写的。

翻译自: https://www.javacodegeeks.com/2018/06/java-becoming-cobol.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/346935.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VS2010附加进程调试DLL时断点无法断下的解决方法

系统版本:Win10 x64 1809 VS版本:VS2017 企业版 问题一 在动态链接库(DLL)附加到进程调试时,用VS2017附加后单步调试,结果发现总是在调试过程中卡死,VS2017无响应; 解决办法是:强制结束VS2017…

MATLAB库函数polly2trellis(卷积码生成多项式转网格图描述)的实现过程详解

关注公号【逆向通信猿】更精彩!!! 生成多项式转网格图 在MATLAB中,卷积码的维特比(Viterbi)译码实现通常需要先将生成多项式转换成网格图描述,然后才能利用网格图进行维特比译码 生成多项式转网格图描述的built-in函数为poly2trellis,在MATLAB中,改函数为通信工具箱…

java反射api研究_深入研究Java 8中的可选类API

java反射api研究作为Java程序员,我们所有人都经历了以下情况:我们调用一个方法来获取某个值,然后代替直接对返回值调用某些方法,我们首先必须检查返回值是否不为null,然后在返回值。 这是像Guava这样的外部API试图解决…

【卷积码系列1】(n,k,m)卷积码的编码原理详解及MATLAB实现

关注公号【逆向通信猿】更精彩!!! 原理 编码电路图 ( n , k , m ) (n,k,m) (n,k,

用于SaaS和NoSQL的Jdbi

一个自然的接口,用于与CRM,ERP,会计,营销自动化,NoSQL,平面文件等基于Java的数据集成 Jdbi是Java的SQL便利库,它为JDBC提供更自然的Java数据库接口,该接口易于绑定到域数据类型。 该…

【卷积码系列2】(n,k,m)卷积码的生成多项式矩阵系数转网格图描述(不使用MATLAB库函数)

关注公号【逆向通信猿】更精彩!!! 回顾 之前关于(3,1,3)卷积码的维特比译码仿真写过一篇文章(基于C语言实现): 卷积码Viterbi译码算法基本原理及C语言实现 文中从概率的角度出发,对卷积码的基于硬判决和软判决维特比译码原理进行了阐述,最后以(3,1,3)系统卷积码为例…

【卷积码系列3】(n,k,m)卷积码的维特比译码实现(不使用MATLAB库函数)及性能对比(vitdec函数不使用MATLAB库函数【全部代码需私信另外付费获取】)

理论基础 MATLAB库函数polly2trellis(卷积码生成多项式转网格图描述)的实现过程详解 上面这篇仅作为了解!!! 【卷积码系列1】(n,k,m)卷积码的编码原理详解及MATLAB实现 【卷积码系列2】(n,k,m)卷积码的生成多项式矩阵系数转网格图描述(不使用MATLAB库函数) 维特比译码曲…

【数字信号处理】基于DFT的滤波系列1

一、引言 离散傅立叶变换(DFT)是很多数字信号处理(DSP)层面的核心,因此我们从这块开始。 我们首先快速回顾一下 DFT 的一些要点。 该模块这一部分的完整内容列表是: DFT 回顾 – 实数和复数形式一维(例如时间序列)数据的 DFT 滤波DFT 滤波的非理想行为窗口化二维图像的D…

udt java_Java DB中的Java用户定义类型(UDT)

udt javaJava DB是基于Java编程语言和SQL的关系数据库管理系统。 这是Apache软件基金会的开源Derby项目的Oracle版本。 Java SE 7 SDK中包含Java DB。 用户定义类型(UDT)是Java类,其实例(对象)存储在数据库表列中。 U…

【自适应盲均衡9】基于判决反馈的多径衰落信道的盲均衡与MATLAB仿真(CMA-DFE)

关注公号【逆向通信猿】更精彩!!! 关于基于常模准则的盲均衡(即CMA)的基础知识,首先可参考本人博客 【自适应盲均衡2】多径衰落信道的复数常模算法(CMA)的理论推导与MATLAB仿真 引言——判决反馈均衡器(DFE)的引入 线性FIR均衡器一直作为克服信道失真的主要手段。它对…

Java批处理教程

在当今世界,互联网已经改变了我们的生活方式,其主要原因之一是大多数日常琐事都使用互联网。 这导致可用于处理的大量数据。 其中涉及大量数据的一些示例是处理工资单,银行对帐单,利息计算等。因此,请设想一下&#x…

【自适应盲均衡10】基于判决引导(Decision Directed)的多径衰落信道双模式盲均衡算法与MATLAB仿真(DD-CMA)

关注公号【逆向通信猿】更精彩!!! 引言 判决反馈均衡器(Decision Feedback Equalizer, DFE)虽然能够避免线性FIR均衡器的噪声增强,适用于具有深度谱零点的信道均衡;但是容易产生误收敛情况,针对该问题有人提出了预测判决反馈均衡器(PDFE),这个后续再说。 此次要讨论…

【数字信号处理】基于DFT的滤波系列2(含MATLAB代码)

关注公号【逆向通信猿】更精彩!!! 三、时频域的“数” 在该节的大部分内容中,我们将使用无量纲数字序列的数据。然而,对于现实世界的数据,这些数字将具有基础单位。在本节中,将解释时域和频域之间的联系。 假设有N个采样频率为 f s f_s f

编写junit 测试_使用JUnit和Repeat注​​释编写有效的负载测试

编写junit 测试EasyTest最近推出了一组新的注释,可帮助其用户编写有效的测试用例。 进入EasyTest的两个主要注释是: 重复 持续时间 今天,我们将讨论重复标注。 一种新的方法级别注释 重复已添加到EasyTest Framework。 此批注可用于重复…

【数字信号处理】基于DFT的滤波系列3之插值滤波(含MATLAB代码)

四、基于DFT的(理想)滤波 例2:一个“警告” “理想DFT滤波器”虽然简单、有效,但可能会导致意想不到的问题。在博客 【数字信号处理】基于DFT的滤波系列2(含MATLAB代码) 中,数据本身是理想的,由完美的谐波组成,这些谐波在频域中以单一频率理想地表示(无频谱泄漏),这…

Java 9中的无限集

一套 甲Set是元素的集合&#xff0c;从而在任何给定的元件Set只出现一次。 更正式地说&#xff0c;集合不包含元素e1和e2对&#xff0c;因此e1.equals(e2) 。 我们可以像这样在Java 9中轻松创建Set &#xff1a; final Set<Integer> s Set.of(1, 2, 3); System.out.p…

json文件读取之reader.onload中的定义的变量在其函数外部进行处理

采用FileReader读取json文件时,发现只能在reader.onload函数内部获取文件数据,且无法在函数外部访问其内部定义的变量,在网上查阅资料,发现也有博客提到这个问题,如下: VUE的reader.onload方法怎么把值抛出去 在reader.onload中的定义的变量如何在外部调用 … 网上其他…

【数字信号处理】基于DFT的滤波系列4之加窗(含MATLAB代码)

四、基于DFT的(理想)滤波 加窗以减少频谱泄漏 在上面的例子中,整数次谐波被用来产生理想中的示例。这意味着一个完整的整数周期适合正在使用的样本数。一个明显的问题是,如果使用非整数周期数(以及谐波)会怎样?答案是远没有那么有效。 在现实世界中,从这个意义上说,数…

结构为键值的map_在Java中增加Map值的最有效方法-只需搜索键一次

结构为键值的map这个问题可能被认为太基础了&#xff0c;但是在论坛中经常被问到。 在本文中&#xff0c;我将讨论一种仅在Map ONCE中搜索键的方法。 让我们首先来看一个例子。 假设我正在使用Map创建一个字符串频率列表&#xff0c;其中每个键是一个正在计数的String &#x…

【数字信号处理】基于DFT的滤波系列5之二维DFT滤波(含MATLAB代码)

五、二维DFT滤波 前几节介绍的用于对时间序列滤波的原理也可用于对图像的滤波,采用二维傅里叶变换技术。 下图为一幅图像的二维DFT(2D DFT)变换后的幅度值,该图像仅由一个恒定强度组成,因此它是0Hz分量——背景强度。在可视化 2D DFT 的结果时通常使用fftshift(),因此 DC…