大型机的关键问题是支持程序员的队伍正在减少。虽然通常这不是问题,因为程序员的供应减少会被薪水的增加所抵消,而工资的增加会通过供求法则导致程序员的供应增加,但我不确定这是否真的会发生大型机。
尽管它们仍然构成许多企业的关键基础架构,但简单的事实是,没有足够的年轻程序员来保持支持人口的增长。
为什么是这样?是什么使大型机对年轻程序员没有吸引力?
大型机的关键问题是支持程序员的队伍正在减少。虽然通常这不是问题,因为程序员的供应减少会被薪水的增加所抵消,而工资的增加会通过供求法则导致程序员的供应增加,但我不确定这是否真的会发生大型机。
尽管它们仍然构成许多企业的关键基础架构,但简单的事实是,没有足够的年轻程序员来保持支持人口的增长。
为什么是这样?是什么使大型机对年轻程序员没有吸引力?
Answers:
我是一个老程序员,对大型机不感兴趣。我的理由可能与年轻程序员给出的理由相似,尽管在许多答案中都没有如此明显的技术无知。
首先,让我们消除无知:
那么,为什么在学校遇到大型主机后我一生都避免使用大型机?好:
我敢肯定,大型机程序员可以给出很多理由来说明为什么这个职业是有意义的,充满欢乐和有趣的挑战。确实,我从试图招募我进入该领域的人们中听到了很多。最后,我仍然不服气,主要是因为贫民窟的问题。如果我发现自己不喜欢它,该如何离开?
我今年27岁,已经成为专业开发人员超过4年了(因此,我希望这使我还年轻)。我还担任集成专家,因此对大型机开发世界有很多了解。
我将在9月份年满40岁,所以我不知道这是否使我不再具有年轻人资格,但我确实对为什么某人可能不想成为大型机程序员有第一手的个人知识。
我工作的最后十年一直致力于大型机编程。了解所有有关批处理,jcl,Cobol,Assembler,Easytrieve,CICS和Web Services的知识,我非常喜欢它,并且即使没有注意到趋势也仍会这样做。我最后的工作地点是让我与Web开发人员(jsp,javascript,spring和hibernate)并肩工作,我注意到该公司正在引进具有多年工作经验的Web开发人员,并获得了更多的收入。更不用说网络开发人员的压力减轻了很多。
厌倦了这种趋势之后,我决定退出大型机业务。现在,我可以使用Java开发Web服务,并使用JavaScript开发前端UI。这种编程风格并不比我在大型机上做的难,但是现在我赚了很多钱,头痛也减轻了。我不再在凌晨2:00接到电话,异常终止,核心系统进程正在等待我解决问题。因此,给我一个很好的理由,为什么当我可以赚更多的钱并且减少作为分布式系统程序员的生活时,我仍会继续担任大型机程序员?
我敢肯定,在某些情况下,公司会向大型机以及分布式系统人员付费,但我个人还没有找到它们。另外,我开始从两种角度进行求职,发现分布式系统的工作清单至少比大型机的工作清单多10个到1个。这告诉我,目前对于我来说,拥有更好的工作机会并不是大型机的地方。是。
到目前为止,与Linux和Windows相比,大型机和中型机的基本问题是必须预先付费才能使用它们。并付出很多。每年。为了一切。
这根本不是使学生对某事感兴趣的方法,因为他们买不起。如果对他们不感兴趣,他们可能不会自愿从事这项事业。
不幸的是,IBM的商业模式不允许将机器廉价地提供给学生,否则他们可能有机会对此进行更改。
我作为程序员的第一份暑假工作主要是基于抓取绿屏和PRN文件。那时,我可能不介意在COBOL上弄脏我的手(也就是说,如果他们作为一个学生对我足够信任,可以让我加入该代码),但是我不确定我是否会对COBOL感到同样的方式。今天的前景一样。
我不认为这个问题实际上与大型机本身有关。这是我们行业(通常有道理)对新事物和新事物的痴迷。
看C。C显然仍然是至关重要的语言。几乎所有嵌入式代码和大多数操作系统都是用C编写的。但是,找到C程序员变得越来越困难。快速浏览Stack Overflow标签页面时,将其大小设为的1/6 [c#]
和1/4的[java]
。有人记得C在本质上是主导语言,可以说是镇上唯一的游戏吗?
程序员喜欢强大的工具。也许是因为(SPECULATION ALERT)大多数程序员都是专家。您给Java或.NET程序员一个复制文件的任务,很多(如果不是大多数的话)仍然会选择用Java或C#编写它,而不是编写DOS批处理文件或* nix shell脚本,而这是50倍。更快地编写和部署。当您拥有一个可捕获500条鱼的巨大可伸缩网时,为什么还要使用鱼竿和渔线轮来钓鱼?
是的,COBOL和PL / I很老,但Pascal也是如此,并且它仍然活跃并且以Delphi的形式出现。对前者的反感可能是由于这些语言与现代工具相比笨拙。面向对象在COBOL世界中仍然是一个相对较新的概念(相对于强调),但是在C#世界中,LINQ和泛型以及AJAX在几年前就不再是革命性的。让习惯于这些工具的开发人员开始在大型机上编程,就像让摇滚音乐家开始在班卓琴上演奏一样。
当然,也存在自我永存的刻板印象的问题。只要年轻的程序员认为这没有什么让他们在大型机(无论它是否是真实的),那么任何年轻的程序员谁不选择进入它最终将花费大部分的日子周围的人老得多。首先,IT并不是一个具有社会吸引力的职业,但是对代沟的进一步抑制使它趋于低于许多人的痛苦门槛。没有冒犯的意思-我个人一生的大部分时间都在与年龄较大的人一起工作,但并不是每个人都有这样的背景或能力。
最后,大多数程序员不喜欢维护工作,并且几乎所有大型机工作都是维护工作。用PL / I编写的新软件并不多。完全或很大程度上围绕维护代码定义的任何工作都会自动以负分数开始。
有是阳性就遗留代码工作(“传统”围绕大型机和许多其他的东西),这你可能需要打上去,如果你想吸引年轻的人群:
正如您所说,这些系统是关键基础架构。至少在商业世界(而非Google / Microsoft)中的年轻开发人员通常没有机会产生任何实际影响。在您知道几个月或几年之后将被废弃或被取代的系统上工作令人沮丧。已经运行了50年的大型机应用程序可能会运行更长的时间,因为对于公司而言,重建它们没有任何意义,因此您在其中进行的工作实际上对很多人来说都很重要。
如果你是那些少数几家公司之一,实际上不具有倾斜度的“升级”,那么很多程序员,无论男女老少,都会被这样的机会所吸引,因为接下来还有对关键任务的代码打交道的双胞胎机会并发挥一些C#/ Java的力量。显然,没有一家理智的公司会报废大型机并从头开始进行重建,但是我看到的系统(例如)具有与Java组件集成的COBOL内核。
最后,这是必不可少的-至少在我们的局外人看来是这样。当您所有的代码都位于.NET中时,总会有所有者将您换成刚从大学毕业或更糟糕的毕业生,离岸团队交易以降低成本的误导。我不认为这种情况在大型机世界中经常发生,特别是如果您所说的是正确的,并且供应似乎在减少。当然,如果您支付的金额不够,这一点是没有意义的。需要调整薪水以反映供应的减少,否则人们将不会“出售”。
我敢肯定,那里有许多年轻的开发人员,他们不会拒绝一家公司的合理慷慨的报价,而该公司似乎正在竭尽全力使工作环境吸引年轻的员工。但是,如果您想吸引他们,那么明智的做法就是发挥自己的优势,甚至可能必须开始做一些营销工作;我们倾向于将大型机视为一个与众不同且非常陌生的世界,而且我敢肯定,十年前在校园招聘会上我没有看到你们在努力改变这种看法。
归结为一句话:没有什么使大型机没有吸引力,仅仅是没有什么使它们具有吸引力,与出血边缘相比,这使它们处于严重的劣势,后者为我们提供了巨大的生产力提高和免费软饮料。
我很年轻(30多岁),目前从事大型机支持工作。RPG,COBOL,专有4GL废话。开发速度很慢,并且在可能的情况下会使用更多现代语言迁移到更现代的硬件。
与现代系统相比,大型机的开发非常繁琐,以至于大型机本身倾向于降级到后端,而使用更现代的语言来执行过去在大型机本身上进行的报告和数据转换。在这一点上,我们甚至已经将大多数数据输入转换为批处理驱动的流程,因此服务器上仅剩下的事情与计费有关。
尽管进入市场似乎是一个不错的利基市场,但我认为许多公司已经意识到他们不再需要这些系统了。在金融世界中,变化发生得很慢,但是确实发生了。
我个人不了解大型机的市场优势。
快速处理数字和数据?为什么我不能在服务器场中分发它进行处理,还是不能购买功能强大的“常规”服务器。
高冗余性和可扩展性?我宁愿拥有一个Linux服务器场或一组虚拟服务器。
虚拟化和多个OS?也许使用这种策略而不是“云”策略会有很大的性能差异?
尽管我想更详细地了解所有这些内容,但是对于为何不为那些系统编程,缺少对大型机与众不同的有用解释是主要原因。
我今年25岁,目前在MSCS程序中工作(我的背景不是CS),并且我对大型机绝对感兴趣。问题是,我不确定从哪里开始。我看过COBOL,但不知道在哪里可以得到像样的编译器(甚至不知道对于COBOL来说像样的编译器是什么,我知道有一个开源编译器,但不确定其质量如何)。我只是没有看到很多信息,并且说实话,寻找时间是我可以积极从事.Net或Java项目的时间(我更喜欢.Net,但学校作业是使用Java的) 。像@Joshua Smith一样,我确实担心,如果我进入大型机,这将是我的生活,但我也发现它们比Web应用程序和整个Web 2.0的狂潮更有趣(叫我疯了)。对我来说
底线是这样的:
(1)我无法随时获得信息以学习进行大型机编程所需的知识
(2)在我这一刻,我只想能够以编程为生,并且.Net和Java允许我在学校时要朝着这个目标努力,因为在我的职业生涯结束时,我有很多资源可以用来学习并学习如何拿出自己的投资组合
(3)我很难被卡住做一些我不喜欢的事情,而只从事大型机工作可能会卡住我,这让我感到有些恐惧(尽管我知道有很多方法可以解决,例如在业余时间刷新东西,为开源做出贡献)
这只是我作为年轻程序员的个人观点。我之前从未在大型机上工作过,所以我无法从第一手经验谈起。但是,事实就是如此,我从来没有做过任何事情,也没有预料到它会很快发生。我不确定您想在大型机和简单服务器之间划清界限,但是当我想到大型机时,我预想了一些庞然大物的IBM机器,例如Z系列900,每天仅需花费35美元。我不会在任何时候很快在地下室里找到其中一个来补充我的业余时间。尤其是当我可以拿起一台旧机器,在其上放置ubuntu服务器并轻松托管任何我喜欢的东西时。如果我有问题,Linux社区很大,其他人也有可能遇到我的问题并在线发布了解决方案。我只是在猜,
10年前,当我进入工作队伍时,我开始从事大型机工作。我以前从未接触过大型机。
有几个方面我不喜欢,所以我尽可能地停止了大型机工作:
(OTOH,在这段时间内,他们确实具有非常先进的版本控制和代码升级。)
大型机领域中的灰色劳动力正在并且将在该领域中创造大量的空缺。
我在一家大型金融公司工作,在未来五年内,我们将失去约30%的员工退休。这个数字将在10-15年内成倍增加。
另请参阅IBM的System z学术计划。
我仍然是一个年轻的程序员(我29岁),我绝对不对学习大型机开发感兴趣。我在.NET团队的一家保险公司工作,但我们也与大型老式大型机程序员团队合作。
有几件事使大型机世界对我没有吸引力。首先,有COBOL。我知道世界上很多地方都使用COBOL,但是这在我看来并没有那么难看。
接下来是“周期”的概念。我不知道这对于大型机是通用的还是只是我们做事的方式,但是我们的大型机必须运行一个通宵的周期才能从中获取最新数据。我们商店的.NET端大量参与向大型机发送数据和处理大型机中的数据(特别是在内部LOB网站上为代理显示大量数据)。业务希望显示给代理商的数据是最新的。但是,大型机不在我的(有限的)实时概念内运行。我们有一些疯狂的解决方法可以在网站上模拟第二天我们期望的大型主机的实际输出。
最后,我坚信,如果我现在要进行大型机开发,它将主导我的职业生涯。我认为我作为现代开发人员的技能将越来越落后,最终达到COBOL维护将是我唯一的选择。我知道,现在,尤其是从现在起的十年里,将会有丰厚的收入,但是在我的职业生涯中,金钱是我的第四或第五。如果宁愿从事新颖有趣的事情,我宁愿继续赚我可观的薪水。
MULTIPLY Num1 BY Num2 GIVING Result.
时,我可以键入result = num1 * num2;
我主要使用Java,但是我们在后端使用大型机,这意味着我必须处理很多(RPG)。我遇到的最大问题是缺乏公开可用的文档。您可以找到用于DB2的SQL文档,这些文档通常会转换为iSeries DB2,但是publib.boulder与Sun javadocs相比非常糟糕。
我不喜欢的另一件事是难以理解主要大型机语言的语法。RPG没有局部作用域的概念,这意味着您需要巨大的变量声明块。我认为科博尔也遇到同样的问题。这也导致无意义的变量名和隐藏的含义。它也具有许多很难找到的内置函数(请参见上文)。它使我想起为什么我不再使用BASIC进行严肃的编程了。值得庆幸的是,IBM正在尝试将所有人都迁移到Java,但是那些传统语言不会很快消失。
我发现很难在这样的环境下学习编程感到兴奋。
看,我今年42岁,对大型机不感兴趣。好吧,让我们证明一下。我对计算的历史很感兴趣。我在某种程度上研究了大型机体系结构,并了解了IBM大型机如何影响诸如Motorola 68000或80386的微处理器体系结构。在1960年代,大型机已经以超过30 Mhz的速度燃烧,并采用了具有虚拟功能的高级多任务操作系统。回忆。对于那些习惯了这些环境的人们来说,早期的微处理器在许多方面都令人失望,并且基于微处理器的体系结构花了相当长的时间才能赶上类似的功能和性能。
但是赶上那些架构,大型机早就不再是“时髦”了。黑客可以在台式机上安装微型计算机,然后在运行Unix的工作站之后不久发生这种情况。
自1980年初以来,大型机对于年轻的程序员一直是陌生的。对于大型机公司来说,这可能是个很好的时机,问自己一个问题。
今天的答案是跨代递归的:年轻的程序员对大型机不感兴趣,因为即使他们有父母或老师对计算感兴趣,那些父母和老师(像我这样的40多名怪胎)对四分之一的大型机已经不感兴趣。一个世纪以前。
无论如何,今天,一部手机可以处理30年前使用大型机的任务!廉价服务器机箱的农场是新的大型机。因此,从某种意义上说,今天有新的大型机程序员,只有他们的专长是将联网的机器组合在一起以构建云。可以这么说,可以说马克·扎克伯格和他的帮派在生产Facebook时正在进行一种新型的大型机编程,从某种意义上说,不仅仅是一个小应用程序可以在带有磁盘的简单微处理器上运行。
顺便说一下,大型机的最后一项特色是虚拟化。但这现在在台式机/服务器计算机中无处不在。人们最初使用软件技术开始做得不好。虚拟机非常有用,用户不会介意性能下降。然后,像英特尔这样的公司再次考察了大型机,并通过在硬件中支持虚拟化以使其快速实现而吸取了更多教训。
学习网络,手机或PC开发相当便宜且容易。
甚至旧旧的大型机的硬件成本也很高,IBM经常对Hercules模拟器项目(让您模拟System / 370,ESA / 390和zSeries)感到不满。没有Hercules,这将使学习主机架构和应用程序开发的入门成本超出最富有的业余爱好者的负担。
自80年代以来,我没有上过大学,没有供学生使用的大型机。我认为IBM和大型机行业的其他鬼魂使自己步履蹒跚,使他们不易学习。
让我们从有关IBM大型机(特别是zSeries)的一些事实开始。
硬件是崭新的品牌。它包含一些可用的最先进的电子和芯片设计,而且速度很快。
尽管z / OS起源于1960年代,但它经过不断的发展,至少进行了两次完整的重写,因此除了IBM对向后兼容性的狂热所产生的怪癖外,它可能是普遍使用的较新的OS之一。
主要卖点是:
到目前为止,大型机的寿命几乎超过了专家们表示要取代它的所有寿命。
有很多缺点:
有趣的是你应该问这个。我们刚刚在大学里就大型机进行了一次演讲,IBM对大型机开发人员的水平感到不满,例如他们正在我们的大学中实施大型机模块,教我们进行大型机编程并可以远程访问其中一个大型机。
我实际上是在9月参加该模块的,可能不会再做,但是它将为我提供一个“不同”的东西的机会,并让我对新的范式敞开心eyes。
我今年28岁,已经成为专业开发人员已有10年了。我花了3年时间在大型机上工作。
环境深奥,陈旧,停滞,混乱(JCL和ISPF有人吗?)。话虽如此,我确实对该系统,它的工作方式以及规模有极大的尊重。该系统具有类似于150M SLOC的功能,通过SOA支持UNIX服务器的中型服务器场,并且实际上在该国的大部分地区运行。
这么说,为什么年轻的程序员不感兴趣?作为“年轻”程序员,这是我的看法(我从23岁开始使用此系统)。从我正在研究的系统以及所做的研究来看,这是我的观点:
大型机将始终在经济中占有一席之地。由于巨大的成本和支持要求,他们只是不推动早期业务。