COBOL仍然值得学习吗?[关闭]


23

学习COBOL仍然有意义吗?


9
大约是9990,不确定您是否能活那么久。
Toon Krijthe

4
@Gamecat ---只有在此之前非懒惰的公司或个人不能解决Y10K问题,对吗?
Mark C

2
请记住,仅COBOL并不能帮助您。您需要学习要使用的操作系统的堆栈。例如,在IBM机器上,除了COBOL外,还需要VSAM,MVS或Z,CICS,ISPF,可能是IMS和ISPF,Panvalet / Easytrieve,JCL。
2011年

2
cobol.com看起来真的像Web 2.0一样他们赠送了咖啡机!如果那不是现代而实用的,并插入流行词,那我不知道是什么。
拉斐尔R.11年

如果您擅长并找到一家COBOL商店,则可以获得稳定的收入。

Answers:


26

我不这么认为,除非您已经进入仍然保留COBOL的利基市场。


13
现有基础架构的70%使用COBOL运行。从在ATM上刷借记卡到进行在线飞机预订,甚至路由手机呼叫。所有这些都在COBOL上运行(或很大程度上依赖它)。这几乎不是利基市场或旧环境。这些系统中的大多数已经几乎不间断地运行了数十年(比我们在Java和.NET上的记录要好得多),并且COBOL程序员的数量正在减少。想赚很多钱吗?做好准备,准备在大约十年内发生巨大的COBOL短缺。
luis.espinal

14
@ luis.espinal:不,这是一个普遍的神话,而且70%的百分比不再适用。COBOL的使用正在稳步下降,最终我们将摆脱它。还有... COBOL是否参与电话路由?我不这么认为。也许是在电话帐单中,但如今却不太可能。
Wizard79

6
@Lorenzo-70%的神话?不参与电信吗?您可以备份这些索赔吗?我们甚至不算它在运输方面的投入(每年数十万个集装箱),也不在医疗保健行业。我不知道您的工作环境如何,但是在北美(和许多其他地方),COBOL大量存在,并且运作良好。为什么会在重新写东西的人造成危险的作品,这是关键任务?我想幻想我会用Java或C ++重写所有内容,但是有幻想,有软件工程和软件经济学。
luis.espinal 2010年

9
@ luis.espinal:正如我在电信行业工作过的那样,我确实确定电话交换设备不会使用COBOL ...它们基于专用的硬件和固件。一些公司仍然使用COBOL进行计费和记帐,但是新公司(例如移动运营商)甚至依赖于不同的技术。切换正在进行中。
Wizard79

8
@ luis.espinal:我的婆婆在一家大型电信公司工作,为新交换机编写软件。我绝对肯定地向您保证他不会使用COBOL!
鲍勃·贾维斯

36

不,当然不是。毕竟,COBOL是一门废话。还是?

这种观点的问题在于,像这样的站点中的程序员通常与高科技,快速运行(并且同样快速枯竭)的公司合作。对他们来说,COBOL是一门死话-无处可寻。现在已经有一段时间了,没错。

但是COBOL并不适合他们。对于软件行业而言,不仅如此。并非为那些非理性需要的人们发明了计算机,他们一直都在升级和替换旧计算机。它们是为商业目的而制造的。

您想看COBOL吗?转到处理工资单,处理货物运输或运输(如在船上)或处理您的银行帐户的公司。那里有一个巨大的看不见的代码系统,几乎对用户是不可见的,尽管他们每天以一种或另一种方式(ATM机)遇到它们,但大多数人从未考虑过它。

不,它还没死。但这肯定是“遗产”……还是?

同样,取决于您如何看待它。如今,许多人将使用Java,C或其他任何方式代替COBOL,从头开始重写...自然地引入新的错误。这并不是说COBOL没有错误和怪癖。它和下一种语言一样多。当然可以。但是在“ COBOL时代”,比一般人更重视错误的公司(保险公司,银行)往往会通过特殊质量的服务团队来产生更高质量的代码;今天,在最后期限之前,时间和预算总能赢得质量。而且,与现在的同类系统相比,这些系统最初的开发时间更长。

如果某些软件已经使用了30多年,那么转换的动机是什么?整个公司都倒闭了,因为他们忽略了“如果不破产,就不要解决”这句老话许多人试图重写该东西……然后第一次重写就花费了很多,然后第二次重写甚至花费了更多……而那些新的和改进的东西都没有设法取代它。就像我说的那样,这个行业正在快速发展,并且也往往会很快忘记。

在70年代,COBOL死了或快死了,C / C ++将成为统治者。然后在80年代初,帕斯卡再次接任。然后在90年代,Java是The Language ...

想想Unisys Mapper,dBase,Clipper和Cold Fusion ...人们甚至还记得那些吗?他们每个人都将成为COBOL的掘墓机。

考虑到这一点,并且它非常适合处理大量事务,批处理或面向记录/事务的处理,并且可以编译(无错误)写成30年前作为托管COBOL代码的子例程并调用如果希望使用Windows和.NET,可以从托管的COBOL.NET中下载它,但我很难找到合适的替代品。(我也很难找到持续十年以上的微软技术。)

是的,今天正在编写新的COBOL代码。一个人只需要知道在哪里看。

对于嘲笑COBOL,恕我直言的人来说,就像嘲笑埃及金字塔一样,它们已经存在了5000年,并且在接下来的5000年里还会存在,而今天需要24个控件才能工作的“ hello world”房屋将被删除,更换,下个月忘记了。

那么那些COBOL程序员在哪里?

啊,因为这里有摩擦。问题是,其中许多人没有任何计算机科学背景。他们中的许多人都不是专业的程序员(例如从CS / SE计划毕业的大学)。在大多数情况下,他们都是30年代至50年代末各个专业领域的人员,完全由公司专门为该职位培训。因此,他们不是“ COBOL程序员”,他们所接受的培训是针对公司的,而公司是从内部大力推广的。这使得它们几乎不可见。


9
拥有iPhone /台式机/ Web 2.0的心态是忘记计算世界广阔的好方法。
保罗·内森

8
那么那些COBOL程序员在哪里?驾驶出租车。
约翰·约翰逊

1
@johnc-您从哪里得到的?现有基础架构中有70%在COBOL上运行,并且缺少COBOL程序员。如果您只在网络时代回想起COBOL(我们现在谈论十年了),那么可能很难找到一份工作。但现在???伙计,由于这些系统的重要性以及知道(或足够聪明地抓住机会)与COBOL合作的软件开发人员的短缺,在大约十年中,COBOL的需求将很高。
luis.espinal 2010年

2
@ luis.espinal我完全(并且很痛苦地)意识到缺乏COBOL程序员所面临的问题,但是我的发言是从经验中说出来的,我有些轻描淡写。在澳大利亚,至少在过去十年中,我遇到的每位出租车司机中,几乎没有谁是新移民(可能还有一些移民),以前是COBOL程序员。也许巧合,我说这对出租车司机,移民或COBOL开发人员没有任何个人判断。这仅仅是一个观察。
约翰·约翰逊

2
@johnc-我毫不怀疑你的话,但是我发现这种观察极其难以置信。
Rook

16

如果您可以将自己视为COBOL程序员,那就去吧。仍然有数十亿行用COBOL编写的行需要维护。

实际上,没有多余的知识之类的东西,因此要拓宽知识并扩大您(将)拥有的机会。


1
鉴于没有不必要的知识,我提名Intercal作为您学习的下一门语言!
蒂洪·耶维斯

@TikhonJelvis:太容易了,太容易了。Malbolge是您想要的。
Magus 2014年

15

科宝

学习有意义吗?
好吧,这是一个利基市场,需要维护大量的工作旧代码,而不仅仅是重写它们。因此,尽管这不是所有程序员的真正选择,但它是个人获得稳定收入的一种视角。

但是,如果您有兴趣创建新的解决方案,而不是慢慢地改进几十年来的解决方案,那么COBOL可能不是正确的语言。


8

许多欧洲公司仍然严重依赖大型机运行,例如z / vse和cobol程序。对熟练的cobol程序员的需求没有人认为市场会充满,这极大地提高了薪水。

问题应该是,“我会使用cobol开发新的东西吗?” 因为几乎所有内容都是维护或现有关键任务的变更。


5

我曾经在IBM工作,每天都编写COBOL和PL / I代码。同样来自像许多银行一样依赖IBM大型机的大公司,这些语言每秒仍然需要数千笔交易,而这些语言仍在大量使用。

如果您不想在这样的地方工作(这就是为什么我在那儿工作了6个月),那么甚至不要考虑学习那些语言。


在经济的基础上工作,处理这种类型的流量,许多人肯定会将其视为良好的工程和商机。
luis.espinal

5

我们每天都在编写新的Cobol代码,并且一直在寻找新的程序员。这里附近的供应太少。


5
这确实很可怕,但很有趣。我从没见过真正的现场cobol程序员(而且我不是弹簧鸡)
Tim

3
为什么吓人?您可能也从未遇到过Lisp程序员...

@Tim有一个来自MicroFocus的家伙,他在Code Project上写文章-全部用COBOL ... for .NET!看到COBOL更新了更多现代技术真的很奇怪。
MetalMikester,2010年

2
@Thorbjorn-我曾经用Lisp编程并认识Lisp程序员。也许我只是一个无知和有偏见的人,但是我对cobol的了解并没有使我对使用该语言编写更多代码抱有高度的评价。
蒂姆(Tim)2010年

1
Lisp用于有趣的项目,它本身就是一种有趣的语言。C ++,Ruby on Rails,Smalltalk和Haskell也是如此。Cobol用于乏味的业务应用程序,仅对必须为其创建编译器和工具的人感兴趣。从根本上说,很酷的孩子们不使用Cobol,而我却很宽松地使用“酷”,以至于包括我在内。您必须去其他地方,例如商学院,才能找到Cobol员工。
David Thornley,2010年

4

如果您想从事COBOL程序员的工作,那么一定要继续学习。

出于任何其他原因,例如尝试学习一些有用的东西,这些东西可能会帮助您使用现代编程技术,请不要打扰。


IMO,现代编程技术与编程语言关系不大,而与软件方法学则息息相关。有些开发人员在继承人的生活中除了OO语言外什么都没有看到,但却无法描述好的OO设计是什么样的。良好的编程和软件工程原理超越了编程语言。我可以想象,一个年轻的具有良好技能的开发人员将比使用Java编写的另一层过程外壳(我是Java开发人员)
luis.espinal

3

在2000年,我读到一个统计数据,COBOL的行数比所有其他语言的总和还多。
另外,IBM保证在任何MVS系统上编译的任何TEXT平台(目标代码)在其所有MVS系统上都是可执行的,并且您保证只要阳光照耀,就会有COBOL编程。


6
如果您考虑到COBOL多么冗长的事实,也就不足为奇了;-)。
奥利弗·韦勒

3

我可以告诉你
我是如何“学习”它的:我受雇使用它,不知道它是什么,也没有困难在一夜之间学习它。

因此,如果您需要它,您可以学习它。无需给自己增加无用的知识。除非您真的有实际需要,否则它或其约定没有任何有趣的内容。

通用答案:学习编码原则,而不是其特定实现(例如语言等)


2

我不会花时间在上面。
无论如何,COBOL是许多遗留应用程序的构建块,这些应用程序对于20到30年前成立的几家大公司来说都是至关重要的。
因此,如果您被聘用为COBOL核心业务一部分的公司,那么您就有机会开始学习它。


喜欢?(15个字符)
TheLQ'9

@TheLQ银行或保险公司成立于20 \ 30年前,其软件基础是COBOL。
systempuntoout 2010年

2

毕竟,如果您愿意学习它,那么知道事物的工作方式(或曾经工作的方式)并不是一件坏事。

但是,我建议您不要在简历中过分强调您的COBOL技能。

在某些地方(例如,我居住的硅谷),简历中包含COBOL将会成为一种责任。哦,可以肯定,您可能会在这里和那里找到需要您专业知识的地方,在这种情况下,请继续仅在这些地方做广告。但是总的来说,请帮个忙,忘记提及您知道COBOL。

所以是的,如果您好奇,请学习它,只是不要告诉任何人。


1

从工作市场的角度看可能不值得,但是您可能想看看它只是为了了解“在美好的一天”中工作是如何完成的。^^


(我认为)唯一一次对COBOL不利的市场是在带有电子炒作和所有内容的网络广告末日期间。
luis.espinal 2010年

1

从个人的角度来看,我要说的是首先要学习更好的东西。但是,许多大公司在他们的COBOL代码库上投入了巨资,而他们可能永远无法真正落伍,这为COBOL程序员创造了一个维护代码库和编写新代码的行业。我工作的公司是一家大型金融公司,我们为开发人员分配的技术大约是30%COBOL,40%Java和30%C#。


2
能,是的,但是为什么-工作代码就是工作代码。

0

我刚刚在澳大利亚最大的工作网站上搜索了“ cobol”。它返回了87个结果,(快速浏览)它们似乎主要是银行和金融机构的传统维护职位。通常,与基于“现代”语言的工作相比,薪水要好得多-大概是由于Cobol经验很少。

所以,是的,如果您1)不介意进行旧式维护,以及2)您想进入一个高薪且可能没有很强竞争力的利基市场,因为很少有人在学习,那么Cobol似乎值得学习。

(我假设在大多数第一世界经济体中,Cobol市场将是相似的,但可能是错误的吗?)


即使银行/保险/ PA正在慢慢演变为更多的现代技术。因此,现在进入这个利基市场可能很好,但是当最终所有旧代码及其利基市场消失时会发生什么呢?
精灵79

@Lorenzo:嗯,这可以说是我们领域的任何专业(甚至是所有领域)。重新训练。例如。蒸汽机车驾驶员不得不重新培训,并成为柴油机或电力机车驾驶员等:)
Bobby Tables

但是COBOL已经是一个小众市场了……这个想法是,如果您现在拥抱COBOL,您可能需要比其他技术更快地进行重新培训。
Wizard79 2010年

1
@Lorenzo-不,不是真的。它们不是CS Univ主流的事实并不能自动使其成为利基市场。这只是意味着您不会在遇到它们的地方盘旋。您知道有多少从事汽车生产线工作的工人?海军建筑师?飞机飞行员?您是否也认为自己是利基市场?(而且,对于这两个示例类别,您都很难找到招聘广告)。必须知道在哪里看。
Rook

1
@Lorenzo-您实际上是否相信最终会重写所有COBOL和FORTRAN代码以及知识库?我的意思是,认真。我从未见过任何行业和学术界的人,他们相信这样的事情是可能的,远没有那么可取。尽管COBOL看起来很丑陋(一个主观反应),但这些系统运行良好,比自网络泡沫时代以来我们一直在构建的电子废话要好得多。这证明了工业质量。这是更好的工程和经济学维持,而不是将它们重写这些系统(假设零风险和无限的经济资源。)
luis.espinal

0

考虑一下您要处理的问题域的类型。通常,这些域具有一组通常用于此目的的语言。如果COBOL匹配,则继续。

我根本无法触及cobol或在10英尺长的杆上大量使用它的问题域。我宁愿倒汉堡。

还应考虑该语言是否对您的编程能力/概念有所帮助/改进。我想不出COBOL所做的任何事情/实现/功能没有做得更好或者可以用另一种语言更好地演示。

您和其他人可能会有不同的感觉。


0

仍然有很多用COBOL编写的遗留系统。无论您是要维护它们还是将它们移植到其他编程语言,仍然值得学习COBOL。

无论是什么,都需要具有多种编程语言的知识,因为您所拥有的知识使您可以选择编程语言或方法来满足不同的项目需求。您可以使用编程语言中的知识来构造更好,更简洁和更有效的代码,并避免陷阱。


在2004年到2005年之间,我参与了一个海军现代化项目,该项目将大约200KSLOC的Ada83移植到Ada95,将大约25KSLOC的COBOL68和COBOL74移植到Ada95。我于1987年学习了COBOL,绝对值得花时间和精力来学习COBOL。我无法想象我是否不了解COBOL。
Adrian Hoe
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.