我参加了COBOL课程,但不是最糟糕的课程

COBOL再次成为新闻。 人山人海   几乎一次都提出失业救济要求,而处理这些要求的系统也出现了故障。 为什么? 他们需要扩展到前所未有的水平,它们是用COBOL编写的,并且… 我们没有足够的COBOL程序员

以下是“ COBOL程序员”搜索量的增长情况:

我参加了COBOL课程,但不是最糟糕的课程_第1张图片

大多数COBOL程序员都已退休。 新的COBOL程序员的流水线几乎不存在。 许多人退休只是为了帮助。

这激起了我的好奇心。 我对COBOL一无所知,除了它很旧之外,仍然使用了很多东西,它是由我的一位英雄Admiral Grace Hopper创建的 我看了看Pluralsight是否有相关的课程,而他们确实有。 这称为Mainframe COBOL入门。

我为什么要参加COBOL课程?

我参加了COBOL课程,但不是最糟糕的课程_第2张图片

因此,在阅读了此问题之后,我再次开始考虑使用COBOL并感到好奇。 我想找到一份COBOL程序员的工作吗? 我要用这个吗? 不。我热爱挽起袖子并在危机中提供帮助,我热爱自己的工作和所处的位置。 我不想成为一名COBOL程序员。 我只是好奇。 我必须知道这种已有数十年历史的语言是如何工作的。

因此,我参加了该课程并找到答案。 这是我学到的。

COBOL程序如何工作

当我开始深入研究时,我立即开始听到我不熟悉的术语和缩写。 非技术人员在尝试了解新技术时必须有这种感觉。 令人大开眼界。 有一个巨大的COBOL世界,但我尚未意识到。 我努力了。

COBOL程序是文本(可以,我可以提及),它们分为四个主要部分:

  • 鉴定科
  • 环境部
  • 数据部
  • 程序科

作为一个经验丰富的开发人员,我可能可以假定其中大部分内容,但是我一直在观察自己会学到什么。 我的第一印象是: 这是组织应用程序的好方法 我们通过许多应用程序以某种形式执行此操作,但是这些组织的硬性快速规则吗? 我喜欢。

我参加了COBOL课程,但不是最糟糕的课程_第3张图片

鉴定科

这提供了标识信息,例如编写该程序的程序的名称以及它们的编译日期。 这些天,我们在注释和打包文件中看到了类似的事情。

环境部

该区域告诉您正在构建哪种系统,正在使用哪种编译器以及类似信息。 它不是声明性的,而是为程序员提供了构建环境的总体思路。

数据部

这用于定义文件字段。 什么样的数据会输入? 如何定义? 这可以是内部字段,例如累加器,标志和计数器,也可以是外部字段,例如传递给程序的参数。

程序科

这就是动作发生的地方。 思考语句(COBOL中的句子),方法,计算以及程序的所有“要素”都位于此处。 这是COBOL程序的最大部门。

这种组织很棒。 这说得通。 我们今天开发的几乎所有语言都具有这种功能。 您打入编译为计算机运行的可执行文件的文本。 那就是相似之处结束的地方。

如何使用COBOL?

我参加了COBOL课程,但不是最糟糕的课程_第4张图片

COBOL读取文件,对数据执行操作,创建报告或存储新数据。 适用于大规模交易处理。 考虑一下诸如计算500万笔交易的销售数量之类的事情。 它主要用于财务和管理系统的大型计算机上。

根据此调查 ,有25,757家公司使用COBOL。 在我的职业生涯中,有超过一半的公司在某处使用过它。 它无处不在,每天安静地处理我们的交易。

为什么它仍然存在?

我参加了COBOL课程,但不是最糟糕的课程_第5张图片

我的猜测是:因为它有效。 人们喜欢开玩笑讲COBOL,但这是一种追求可靠性的语言。 当您输入大量数据时,它很高兴。 如果需要,它可用于处理数百万条记录,并且日复一日地“有效”。

它主要用于财务和政府部门,因为组织投入了大量时间和金钱来构建COBOL系统,而这些应用程序在数十年后仍不断发展壮大,并开始工作。 与众不同,COBOL专注于性能和向后兼容性。

如果没有损坏,请不要修复。 COBOL的最大弱点似乎是知道它的人数,而不是语言本身。

与现代发展的相似之处

我参加了COBOL课程,但不是最糟糕的课程_第6张图片

您将文本代码编写为.SOURCE文件,然后将其编译为.LOADLIB文件。 然后,这些文件由.JCL文件运行。 诸如编译器和链接器之类的东西以及其他似乎熟悉的东西。

现代开发人员将熟悉COBOL的其他一些方面:

用于调试的输出 -COBOL具有错误代码和其他输出。 您可以将它们通过管道传输到SYSOUT或文件。 您可以像其他任何语言一样冗长地查看出于调试目的正在发生的事情。

可重用代码 -COBOL具有对抽象事物至关重要的功能,以及在COBOL中创建可重用代码的方法。 如果那是您的事,那么它甚至是面向对象的。 您可以构建要重用的库。

类型很重要 -类型定义,转换以及所有其他令人头疼的问题都存在于COBOL中。 类型很重要,但是数据格式化甚至更重要。 您确实必须在COBOL中做到这一点。

命名很重要 -在用COBOL命名事物时,您具有很大的自由度,并且您如何做到这一点很重要。 似乎有人在强调“该程序将不断壮大并保持数十年”,这一点在编写Angular应用程序时没有太多考虑。

句号就是您的分号 -在COBOL中,一切(我的意思是一切)都以句号终止。 这就是COBOL中“句子”的概念。 该语言努力使人类可读。

COBOL具有熟悉的控制结构 -毫不奇怪,您可以从当今使用的任何编程语言中识别出许多循环,if语句和其他控制结构。

我发现跳入COBOL,根据我对其他语言的经验,很容易理解如何滚动的基础知识。 您可以大致了解它的工作原理,但这并不完全陌生。 在开始使用代码之前。

与现代发展的差异

我参加了COBOL课程,但不是最糟糕的课程_第7张图片

一旦开始使用COBOL,您会发现此代码与常规JavaScript编码之间存在一些巨大差异。

您需要一个大型机 -要真正开发COBOL,您需要一个大型机。 我在网上找到了一些模拟器,并且GnuCOBOL非常酷,但是真正的交易存在于大型机上,因此您需要访问一个模拟器才能进行真正的COBOL开发。

可读性强 -一切都非常可读,尽管代码大写,所以大吼大叫。 语句称为“句子”,以句点分隔。 该期间很小,因此很难找到忘记添加的位置。

严格的语法 -COBOL在严格的语法方面赢得了声誉。 每行开头和结尾的空格(如书挡)以及每个空格和字符都很重要。 您需要鹰眼才能使用这种语言进行编码。

野性约束 -2020年存在不应该存在的约束,但是COBOL致力于向后兼容。 一行COBOL代码始终为80个字符(除非不是),并且报告的宽度为132个字符。 为什么? 由于打孔卡和老式打孔线打印机。 对真的。

资源内建性是内置的 -您真的可以看到他们如何设计资源节约型语言。 内存,硬盘空间和CPU周期都很稀少,因此请明智地使用它们。 现代开发人员很容易忘记这些东西曾经是多么昂贵和珍贵(我们现在应该这样对待)。

您必须非常明确 -COBOL中没有发生太多的“懒散的鹅”编程,它不允许这样做。 您必须故意做任何事情。 这是非常原谅的,这是一件好事。

工作是语言的重点 -很显然,COBOL是围绕“工作”建模的。 这些程序不是像许多应用程序一样的实时交互式程序,它们被设计为在指定的时间运行,并且代码从上到下运行。 它的意思是读入数据,对数据进行处理,然后将其吐出。

我从这门课程中学到的东西

我参加了COBOL课程,但不是最糟糕的课程_第8张图片

学完本课程后,我对语言有了尊重。 COBOL的说唱不好,主要是因为它的年龄和Y2K错误(这不是COBOL的错),但它仍然存在是有原因的:它从一开始就被设计成坚如磐石。 这并非没有缺陷,但没有人能说出运行数十年的系统的持久性。

我对COBOL很满意,可以对它的工作原理有一个大致的了解。 我不会雇用我作为COBOL程序员,但是我相信,如果我愿意的话,这门课程会让我走上那条路。 作者在解释概念,有趣/不枯燥以及很好地解释最佳实践和陷阱方面做得非常出色。

如果您是2020年的开发人员,则可以从此课程中学到很多东西。 您可以学习一些在COBOL世界中似乎很普遍的原则(我自己决定):

  • 保留资源 -内存,磁盘空间和CPU周期不是空闲的。 利用您的构建尽可能地保护它们。
  • 在所做的每件事中都要明确 -花些时间弄清楚您需要什么,然后声明它。 考虑数组和结构,而不是列表和泛型。 性能来自确切地了解您的需求和时间。
  • 就像将要生存数十年一样编写代码 -对于COBOL程序员而言,这是事实。 提前考虑并采取行动,好像您的代码将持续多年。 您应该如何编写它以便可以进一步维护?
  • 避免更改 -现代开发人员喜欢重新发明轮子。 我们还喜欢引入重大变化,并告诉人们如果他们不喜欢它,则进行升级。 COBOL仅在没有其他选择时才破坏事物。 到2020年,我们还需要更多。

您应该使用Mainframe COBOL入门 您会学到什么会感到惊讶。 如果您愿意,请告诉我您的想法! 我很想聊聊。

From: https://hackernoon.com/i-took-a-cobol-course-and-it-wasnt-the-worst-z1ba3yrp

你可能感兴趣的:(我参加了COBOL课程,但不是最糟糕的课程)