我们找到COBOL语言“传承人”讨论:过时语言值得拯救吗?

      最后更新:2020-05-14 11:46:56 手机定位技术交流文章

      大数据摘要

      作者:刘俊环

      首先想象这样一幅画。60年后,最热门的编程语言Python会是什么样子?

      完全消除了吗?到那时,今天这批熟练的Python工人将完全退休,那么谁来维护Python目前编写的基础结构呢?

      在流行期间,COBOL,一种古老的编程语言,面临着这样一个“复活”问题。这种流行病导致美国申请失业救济的人数急剧增加,州政府服务器崩溃。该州的许多主机系统都是基于COBOL的,但是这些系统在过去几年甚至几十年里都没有更新过。

      4月4日,新泽西州州长菲尔·墨菲在新闻发布会上明确表示,急需COBOL程序员。

      从4月初开始,新泽西开始重新招聘COBOL人才,大量程序员开始重新学习COBOL。相关的学习课程达到了GitHub热门名单的顶端。这种寿命超过60年的古老语言突然又回到了公众的视线。

      一个月后,作为一种“过时”的语言,COBOL的受欢迎程度已经逐渐消失,但正如网民指出的,像所有的编程语言一样,COBOL现在有两种选择,要么被优化,要么接受被逐渐取代的命运。

      当一种语言站在这样一个岔口,你如何权衡选择的利弊?COBOL是其他语言最终将面临的未来吗?

      考虑到这些问题,《文摘》特别联系了GitHub的COBOL学习程序的开发者之一约翰·默蒂奇,并和他讨论了这个问题。

      约翰·默蒂奇目前是Linux基金会的项目管理主任。自从2015年加入Linux基金会以来,他一直在努力寻找优秀的编程人才,包括COBOL。这一次,他和几个社区开发者共同编写了一个COBOL学习课程。目前,该课程已经引导了一大批年轻的自学程序员,对美国COBOL系统问题的解决起到了相当大的促进作用。

      约翰从专业COBOL程序员的角度指出,对于COBOL人才来说,他们总是充满活力和竞争力,公众关注他们永远不会太迟。同样,对于企业来说,确保人才与业务直接相关是确保业务持续发展的关键。

      谈到COBOL语言本身,约翰也相当乐观。在他看来,一旦一种语言出现,它的生命力就会永远延续下去。此外,人们对编程的热情现在并没有减弱,这也是一个非常重要的前提和基础。

      成为一名COBOL程序员意味着什么?

      在COBOL重新着火之前,在许多人眼里,COBOL程序员可以说是“大老板”的代名词,因为他们经常出没于银行和保险公司,但相关行业的COBOL程序员说,事实上他们只能在这些领域进行选择。

      例如,智虎的网友@ Ribos分享了他作为COBOL程序员的工作经历:

      在日本从事cobol外包一年。

      说点我知道的,零基础训练可以在两个月内跟随老pg做一些常规项目。工作内容不是很难。繁琐的是不同的用户对提交的工作有清晰的理解(包括程序的编写习惯和文档内容的详细程度)。它会让你感觉“我的工作不是多次编程,而是满足不同se的一些不必要的需求”(当然,一些更强大的se是不计算在内的。他们对整个项目有一个清晰的了解,所以他们知道所有的路都通向同一个结论。

      被称为“弹性工作制”的工作时间相对自由,享有一般福利。他们开始时很好,在学生中高于平均水平。在后期,增长是相对固定的,他们知道什么是最差的,最适合混合——不是更差,也不是更好。也许它不同于地区和公司。

      说出你的一些感受,平静一下,整个公司的气氛都是懒洋洋的,每个人都开玩笑说“适合老年”。当然,有些团体充满活力和忙碌。但是,工资基本不变,导致pg在基层的不定期调动,团队领导的基本位置保持不变。成为冠军并不难。你必须用心去做,简单而粗略地说——郑根生(所谓的学生),一点能力(当然,越多越好),还有时间。

      https://www.zhihu.com/question/19747089/answer/57567186

      如今,COBOL程序员正以肉眼可见的速度减少。COBOL学习材料基本上是在企业内部分发的,系统本身也逐渐落后于时代。大多数银行也有更换COBOL系统的想法,但是COBOL在业务支持方面仍然优于JAVA、C或C++系统。

      约翰·默蒂奇对COBOL的复杂情况相当乐观。他说,无论哪种编程语言,COBOL、Java、Ruby、PHP,精通编程语言的顶尖人才一直是业界的热点,这是不变的。

      事实上,许多基于COBOL的系统也处于任务关键或重要的生产部署中,拥有支持和开发这些系统的人才也是非常重要的。因此,任何有助于确保人才与需求直接相关的东西都是好事。

      约翰说现在每个人对COBOL的关注都是暂时的。在媒体报道的影响下,许多公司习惯性地认为“很难找到COBOL人才”,但事实上,“招聘COBOL程序员”的话题已经受到社会的极大关注,许多公司已经在招聘COBOL人才。

      当然,这与COBOL本身的优势是分不开的。除了业务支持之外,系统的简单性、代码的可读性和可靠性以及处理大量数据的能力使COBOL在业务环境中脱颖而出。

      约翰说,在与最近学习过COBOL的人或教COBOL的人交谈后,发现前两点往往使学习者认为学习COBOL是一个快速而容易掌握的过程。

      他指出COBOL绝对令人生畏。它的简单性和可读性使得学习曲线非常短,这是他们开设COBOL编程课程的原因和优势。也正因为学习曲线变短,网络学习在流行时代可以取得更大的成功。

      到目前为止,约翰团队发布的COBOL在线学习项目在GitHub上拥有1.4千颗星星。

      GitHub链接:

      https://github . com/openmainframeproject/cobol-编程-课程

      与此同时,在媒体上,一位名叫杰里米·摩根的博主分享了他参加COBOL课程后的经历。在他的博客文章中,他更清楚地指出,COBOL的不足之处在于知道它的人太少,而不是语言本身的结构问题。

      杰里米在文章中还写道,只有经过进一步研究,他才意识到COBOL的坏名声主要是由于年龄问题和“千年虫”问题。虽然COBOL有它的缺点,但是它不能否认它的稳定性,没有人能质疑它已经运行了几十年的系统的持久性。

      在这篇文章中,杰里米还总结了COBOL和其他现代语言的七个区别:

      主机。如果你想认真开发COBOL,大型机是必不可少的。虽然一些模拟器,比如GnuCOBOL,可以在互联网上找到,但是真实的数据存在于主机上,并且访问是真实的COBOL开发所必需的。程序的可读性。一切都是可读的,代码是用大写字母表示的,所以它非常醒目,语句被称为“句子”,标有句点,并且句点非常小,所以很难找到您忘记添加的地方。严格的语法。COBOL以其严格的语法而闻名。每行开头和结尾的空大小写,以及每个空大小写和字符都非常重要,这需要程序员训练敏锐的眼睛。强制性约束。COBOL有一个空的约束,这在现代语言中是不存在的,它追求向后兼容。COBOL的代码总是每行80个字符,报告宽度是132个字符,因为它是基于穿孔卡片和老式穿孔打印机。内部资源保护。我们可以看到设计师如何围绕节约资源来设计语言。内存、硬盘空和CPU周期很少,所以现代开发人员在明智地使用它们时很容易忘记这一点。必须清楚。COBOL中没有太多的“松散”编程,这也是不允许的。一切都必须有意义,看似无情,但也是一件好事。家庭作业。COBOL是以“工作”为模型的。与许多应用程序不同,这些程序并不实时交互,而是被设计为定期执行,代码从上到下运行,这意味着首先读取数据,然后处理数据,最后输出结果。

      应该改进吗?还是你想丢弃它?

      既然COBOL和现代语言的区别如此明显,那么在语言“野蛮发展”的时代,COBOL如何保持如此顽强的生命力呢?

      对此,杰里米说,这可能是因为COBOL的表现非常出色。尽管人们喜欢取笑COBOL,但不要忘记COBOL是一种追求可靠性的语言。当你给它提供大量的数据时,它也会非常高兴。毕竟,COBOL已经经历了处理数百万条数据记录的时代。

      COBOL现在主要应用于金融和政府机构并非不合理,因为这些机构有时间和金钱成本来构建COBOL系统。正如我们现在看到的,随着系统的不断发展和壮大,他们可以在几十年后支持其有效运行。可以说,COBOL在性能和向后兼容性方面领先于其他语言太多。

      因此,对于COBOL来说,如果它没有问题,就永远不要修复它,因为COBOL最大的弱点是很少有人知道它,而不是语言本身的结构。

      约翰认为,一种语言是否最终会被时代淘汰,“一旦一种语言出现,它的生命将无限期地延续下去”。

      近年来,公众对编程越来越感兴趣,这在很大程度上是基于人才的可用性、系统的易用性以及编程语言解决影响开发人员和企业的问题的能力和易用性。

      如果我们考虑直接放弃COBOL而设计一种新的语言,那么除了理解如何分析形态学之外,最大的挑战在于确定语言应该解决什么问题以及如何设计最佳的结构和语法,这与设计应用程序或产品是一样的。

      然而,一切都不是绝对的。所有这些都取决于现有语言生态系统的转换难度。

      约翰认为PHP在这方面做得很好。它成功地解决了许多问题,同时保持了向后兼容性和简单性。然而,一旦某个环节出现问题,或者与语言设计原则相违背,新的语言就会出现。目前的挑战是从基础上建立一个全新的语言生态系统。

      COBOL是如何工作的?

      说了这么多,如果你对COBOL的工作原理没有足够的理解,它似乎只是“纸上谈兵”。接下来,让我们看看杰里米在参加了COBOL课程后对COBOL的看法。

      即使作为一名高级程序员,当他开始深入研究COBOL时,他也会听到许多不熟悉的术语和缩写,但这种情况在非技术人员试图理解新技术时肯定会遇到。

      杰里米感叹道,“这是一个大开眼界的,有这么一个广阔的COBOL世界”。

      在他看来,COBOL程序是一种文本,它分为四个主要部分:

      识别部门:提供识别信息,如程序员的名字和编译日期,现在在注释和包文件中看到类似的东西;环境部:它将告诉我们程序是建立在什么样的系统上,它使用什么编译器,以及其他相关信息。它不是声明性的,但它可以为程序员提供构建其操作环境的总体思路。数据部门:用于定义文件字段。可以输入什么类型的数据?你如何定义它?它可以是内部域(如累加器、标志和计数器)或外部域(如传递给程序的参数);过程部门:控制程序运行的核心要素、实例、方法、计算等。这是COBOL程序的最大部分。

      这种语言结构非常好,几乎在所有现代语言中都可以看到它的影子:输入文本,然后由计算机编译成可执行文本。

      在使用中,COBOL可以读取文件、处理数据、生成报告或存储新数据。因此,COBOL主要适用于处理大规模的交易数据。考虑500万笔交易的数据处理。因此,COBOL能够在财务和管理领域“开花结果”并不奇怪。

      根据调查,全球共有23,943家公司仍在使用COBOL。杰里米还透露,他工作过的公司中有一半以上也在某个地方使用过COBOL。可以说,COBOL无处不在,每天都在悄悄地处理日常事务。

      对于这样一种未知的语言,它的现状足以引起我们的关注,那么COBOL未来应该走向何方呢?

      也许我们正在见证历史。

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/6609.html

          热门文章

          文章分类