it-swarm.dev

Warum interessieren sich junge Programmierer nicht für Mainframes?

Ein Hauptproblem bei Mainframes ist, dass die Anzahl der unterstützenden Programmierer abnimmt. Während dies normalerweise kein Problem wäre, da ein sinkendes Angebot an Programmierern durch ein zunehmendes Gehalt ausgeglichen würde, das über das Gesetz von Angebot und Nachfrage ein steigendes Angebot an Programmierern verursacht, bin ich mir nicht sicher, ob dies wirklich geschieht Mainframes.

Obwohl sie für viele Unternehmen immer noch eine kritische Infrastruktur bilden, ist die einfache Tatsache, dass nicht genügend junge Programmierer hinzukommen, um die Unterstützungsbevölkerung zu bevölkern.

Warum ist das? Was macht Mainframes für junge Programmierer unattraktiv?

51
temptar

Ich bin ein alter Programmierer und ich interessiere mich nicht für Mainframes. Meine Gründe werden wahrscheinlich den von jungen Programmierern angegebenen Gründen ähneln, allerdings ohne die Unkenntnis der Technologie, die in vielen dieser Antworten so offensichtlich ist.

Lassen Sie uns zunächst die Unwissenheit aus dem Weg räumen:

  • Die verschiedenen Behauptungen der Unfähigkeit, Mainframes auszuprobieren, sind falsch. Hercules ist seit 1999 verfügbar - wahrscheinlich länger als viele der antwortenden Personen programmiert haben - und trotz der Bedenken von IBM ist die Wahrscheinlichkeit, dass es bald verschwindet, vernachlässigbar (insbesondere angesichts der Tatsache, dass es sich um Open Source handelt) ). Zwar können Sie die teure Software (legal) nicht (legal) ausführen, es steht jedoch eine Vielzahl von Software zur Verfügung, die Sie darauf ausführen können , einschließlich Software, die tatsächlich noch ziemlich häufig verwendet wird.
  • Auch hier gibt es entgegen der öffentlichen Meinung mehr zu Mainframes als COBOL, CICS und RPG2. In der Tat können Sie fast (aber nicht ganz) alles, was Sie auf Ihrem PC unter Linux ausführen können, auf einem Mainframe ausführen. <irony> Ich bin mir nicht sicher warum. </ irony>

Warum habe ich Mainframes mein ganzes Leben lang gemieden, nachdem ich sie in der Schule getroffen habe? Gut:

  • Es stimmt zwar, dass Sie können Mehr als COBOL, CICS, RPG2 usw. in Mainframes verwenden, aber die Chancen stehen sehr hoch, dass Sie, wenn Sie mit ihnen arbeiten, dies tun müssen . Schlimmer noch, obwohl COBOL in den letzten zwei Jahrzehnten massiv "modernisiert" wurde (erschreckende Zitate, weil ich immer noch nicht denke, dass es eine sehr moderne Sprache ist), wird der größte Teil der Codierung, die Sie in COBOL ausführen, immer noch alt sein -Stil-Code, weil ...
  • In Mainframes gibt es nur sehr wenige aktuelle Neuentwicklungen. Wenn Sie einen Job bei IBM bekommen, der für die Forschungs- und Entwicklungsabteilung des Großrechners arbeitet, haben Sie möglicherweise die Möglichkeit, neue Entwicklungen durchzuführen (und in diesem Fall können Sie Ihren Job sogar wirklich genießen!). In Wirklichkeit aber seien Sie ehrlich: Sie werden dort nicht arbeiten. Sie arbeiten im Hinterzimmer eines Finanzinstituts oder eines anderen, das den 50 Jahre alten COBOL-Code verwaltet, der von jemandem geschrieben wurde, der immer noch der Meinung ist, dass 64 KB ein gewaltiger Haufen PAM'O'RAM sind. (Dieser Typ wird wahrscheinlich Ihr Chef sein.)
  • Es ist zwar richtig, dass Sie Linux auf Mainframes ausführen können und somit Zugriff auf so ziemlich jede Programmiersprache oder -umgebung haben, die Sie möchten, wie bei der Arbeit für IBMs Mainframe-Forschung und -Entwicklung, aber Sie werden diesen Job nicht bekommen. Es geht wieder darum, den 50 Jahre alten COBOL zu pflegen.
  • Corporate Programming ist sehr effizient darin, Ihnen die Seele aus dem Leib zu ziehen (und denken Sie daran, es ist Corporate Programming, das Sie als Mainframe-Programmierer ausführen werden, es sei denn, Sie haben SEHR Glück).
  • Es ist ein Ghetto und ein immer kleiner werdendes. (Es ist wie MUMPS auf diese Weise.) Wenn Sie zu sehr in die Geschichte des Mainframes vertieft sind, werden Sie weiter von allem entfernt, was kein Mainframe ist. Sie können versuchen mitzuhalten, aber Sie werden nicht. Ich weiß, dass jemand darauf hingewiesen hat, dass der Umsatz von Mainframes gestiegen ist, während andere Serversektoren etwas geschrumpft sind, aber die Serverprogrammierung ist heutzutage die Minderheit. Höllen-PCs verlieren im Allgemeinen an Bedeutung. Die Welt des Programmierens ist sehr breit und sehr vielfältig, und es ist bedeutungslos, wenn ein winziger Teil davon im Vergleich zu einem anderen winzigen Teil wächst, verglichen mit dem plötzlichen, explosiven Wachstum des Programmierens in etwas so Trivialem wie dem iPhone (das selbst ist) eine Minderheitsplattform - bei weitem). Nein, fangen Sie an, in Mainframes zu arbeiten, und Sie haben nur andere Mainframer, mit denen Sie Ihre Gedanken, Ihre Freuden und Ihre Wut teilen können - und sie sind eine aussterbende Rasse. Dies führt zu einer negativen Rückkopplungsschleife, die die Herde noch weiter und schneller schrumpfen lässt.

Ich bin sicher, es gibt viele Gründe, warum ein Mainframe-Programmierer angeben könnte, warum die Karriere lohnend und voller Freuden und interessanter Herausforderungen ist. In der Tat habe ich viele von ihnen von Leuten gehört, die versucht haben, mich auf dem Feld zu rekrutieren. Am Ende blieb ich jedoch nicht überzeugt, hauptsächlich wegen des Ghetto-Problems. Wenn ich reinkomme und feststelle, dass es mir nicht gefällt, wie komme ich dann raus?

Ich bin 27 Jahre alt und seit mehr als 4 Jahren ein professioneller Entwickler (also hoffe ich, dass ich noch jung bin). Ich arbeite auch als Integrationsspezialist, damit ich viel Kontakt mit der Mainframe-Entwicklungswelt habe.

  1. Es scheint wenig oder keine Innovation in der Community zu geben.
    Ich weiß, dass dies nicht genau der Fall ist, aber für den zufälligen Beobachter scheint es so. Niemand möchte sich in einem Bereich engagieren, in dem es schwierig ist, „Spuren zu hinterlassen“.
  2. Wie viel Neuentwicklung oder neue Projekte finden statt?
    Soweit ich das beurteilen kann, keine. Wenn Sie in diesen Bereich gehen, verurteilen Sie sich selbst, für immer ein Wartungsprogrammierer zu sein.
  3. Es ist für den Gelegenheitsschüler nicht zugänglich.
    Die meisten Leute lernten zu Hause, wie man zu Hause auf ihrem PC programmiert. Auch hier wechseln die meisten Menschen nicht gerne von dem, was sie wissen. Der Übergang von einem zum anderen erfordert also Zeit und Motivation. Aus den beiden anderen Gründen gibt es nicht viele Abnehmer.
59
aceinthehole

Ich werde im September 40 Jahre alt, daher weiß ich nicht mehr, ob mich das als junger Mensch qualifiziert, aber ich weiß aus erster Hand, warum jemand möglicherweise kein Mainframe-Programmierer sein möchte.

Die letzten 10 Jahre meines Berufslebens waren der Mainframe-Programmierung gewidmet. Ich habe alles über Batch, Jcl, Cobol, Assembler, Easytrieve, CICS und Web Services gelernt und es hat mir sehr gut gefallen und ich würde es immer noch tun, wenn ich keinen Trend bemerken würde. An meinem letzten Arbeitsplatz arbeitete ich Seite an Seite mit Webentwicklern (JSP, Javascript, Spring und Hibernate), und ich bemerkte, dass das Unternehmen Webentwickler mit vergleichbarer langjähriger Erfahrung für viel mehr Geld einbrachte. Ganz zu schweigen von der Tatsache, dass die Position der Webentwickler viel weniger stressig war.

Nachdem ich diesen Trend satt hatte, entschloss ich mich, aus dem Mainframe-Geschäft auszusteigen. Jetzt bin ich in der Lage, Webdienste mit Java und Front-End-Benutzeroberfläche mit Javascript) zu entwickeln. Diese Art der Programmierung ist nicht schwieriger als die auf dem Mainframe, aber jetzt verdiene ich mehr Geld Ich habe nicht mehr den Anruf um 2:00 Uhr morgens, dass etwas abgebrochen ist und die Kernsystemprozesse auf mich warten, um meine Probleme zu beheben. Geben Sie mir also einen guten Grund, warum ich als Mainframe-Programmierer bleiben würde, wenn Ich kann mehr Geld verdienen und habe weniger Stress in meinem Leben als Programmierer für verteilte Systeme?

Ich bin mir sicher, dass es Umstände gibt, unter denen Unternehmen sowohl Mainframer als auch Leute mit verteilten Systemen bezahlen, aber ich persönlich habe sie nicht gefunden. Außerdem begann ich mit der Jobsuche aus beiden Perspektiven und stellte fest, dass die Joblisten für verteilte Systeme mindestens 10 zu 1 höher waren als die Joblisten für Mainframes. Dies zeigt mir, dass der Mainframe derzeit nicht der richtige Ort für mich ist, um bessere Jobmöglichkeiten zu haben Sein.

25
Jeff

Nach dem, was ich bisher gesehen habe und im Vergleich zu Linux und Windows, besteht das Grundproblem bei Mainframes und Midframes darin, dass Sie MÜSSEN bezahlen im Voraus, um sie zu verwenden. Und viel bezahlen. Jährlich. Für alles.

Dies ist einfach nicht der Weg, um Schüler für etwas zu interessieren, weil sie es sich nicht leisten können. Wenn es sie nicht interessiert, werden sie wahrscheinlich nicht freiwillig Karriere machen.

Leider erlaubt das Geschäftsmodell von IBM nicht, die Maschinen den Studenten billig zur Verfügung zu stellen, oder sie haben möglicherweise die Möglichkeit, dies zu ändern.

19
user1249

Ich bin jung (Mitte 30) und arbeite derzeit im Mainframe-Support. RPG, COBOL, Propietary 4GL Mist. Die Entwicklung ist langsam und wird nach Möglichkeit mit moderneren Sprachen auf modernere Hardware migriert.

Die Entwicklung von Mainframes ist im Vergleich zu modernen Systemen so umständlich, dass der Mainframe selbst tendenziell in das Back-End verbannt wird, während modernere Sprachen für die Art von Berichten und Datentransformationen verwendet werden, die früher auf dem Mainframe selbst durchgeführt wurden. Zu diesem Zeitpunkt haben wir sogar den größten Teil der Dateneingabe in einen stapelgesteuerten Prozess umgewandelt, sodass die einzigen Dinge, die auf dem Server verbleiben, die Abrechnung betreffen.

Es scheint zwar eine gute Nische zu sein, in die man springen kann, aber ich denke, dass viele Unternehmen zu der Erkenntnis kommen, dass sie diese Systeme nicht mehr wirklich brauchen. In der Finanzwelt vollzieht sich der Wandel langsam, aber er geschieht.

9
Satanicpuppy

Persönlich verstehe ich nicht, was der marktfähige Vorteil von Mainframes ist.

Schnelle Zahlen- und Datenverarbeitung? Warum kann ich das nicht zur Verarbeitung auf eine Farm verteilen oder einen bulligen "normalen" Server kaufen?.

Hohe Redundanz und Skalierbarkeit? Ich hätte lieber eine Linux-Serverfarm oder eine Reihe von virtuellen Servern.

Virtualisierung und mehrere Betriebssysteme? Vielleicht gibt es einen beträchtlichen Leistungsunterschied, wenn Sie diese Strategie anstelle einer "Cloud" -Strategie verwenden?

Obwohl ich all diese Dinge gerne genauer verstehen würde, ist das Fehlen nützlicher Erklärungen, was einen Mainframe auszeichnet, der Hauptgrund dafür, warum ich nicht für diese Systeme programmiere.

9
Jordan

Ich bin 25 Jahre alt und arbeite derzeit an einem MSCS-Programm (mein Hintergrund ist nicht CS). Ich interessiere mich definitiv für Mainframes. Das Problem ist, ich bin mir nicht sicher, wo ich überhaupt anfangen soll. Ich habe mir COBOL angesehen und weiß nicht, wo ich einen anständigen Compiler bekommen kann (nicht einmal sicher, was ein anständiger Compiler für COBOL ist, ich weiß, dass es einen Open-Source-Compiler gibt, aber nicht sicher, welche Qualität er hat). Ich sehe einfach nicht viele Informationen dafür und um ehrlich zu sein, ist die Zeit, die ich damit verbracht habe, danach zu suchen, Zeit, in der ich aktiv an einem Projekt in .Net oder Java (ich bevorzuge) arbeiten könnte .Net, aber die Schularbeit ist in Java). Wie bei @Joshua Smith mache ich mir Sorgen, dass es mein Leben wäre, wenn ich in Mainframes einsteigen würde, aber ich finde sie auch interessanter als Web-Apps und den ganzen Web 2.0-Wahn (Anruf) Ich bin verrückt). Für mich wäre es jedoch viel einfacher zu lernen Java und mich dann an SAP zu binden, da ich weiß, dass das auch viele Jobs bekommen kann.

Fazit ist:

(1) Für mich stehen keine Informationen zur Verfügung, um zu lernen, was ich zum Erlernen der Mainframe-Programmierung benötigen würde
(2) An diesem Punkt meines Lebens möchte ich nur in der Lage sein, meinen Lebensunterhalt zu verdienen und .Net und Java ermöglicht es mir, in der Schule auf dieses Ziel hinzuarbeiten weil es viele Ressourcen gibt, an die ich mich wenden und lernen kann, was ich brauche, um am Ende meiner akademischen Karriere ein Portfolio zu erstellen
(3) Es fällt mir schwer, etwas zu tun, das mir nicht gefällt, und die Möglichkeit, nur Mainframes für eine Karriere zu machen, macht mir Angst (obwohl ich das weiß Es gibt Möglichkeiten, dies zu umgehen, z. B. neue Dinge in meiner Freizeit aufzufrischen und zu Open Source beizutragen.

8
Jetti

Zwei Gründe für einen Beitritt zur Mainframe-Belegschaft:

  1. Es zahlt sich gut aus
  2. Es gibt Tonnen von Öffnungen

Die grau werdende Belegschaft im Mainframe-Feld ist und wird große Anzahl von Öffnungen im Feld schaffen.

Ich arbeite für ein großes Finanzunternehmen und in den nächsten 5 Jahren werden wir etwa 30% unserer Belegschaft durch den Ruhestand verlieren. Diese Zahl wird in 10-15 Jahren exponentiell ansteigen.

Weitere Gründe:

  • Ich bin seit mehr als 25 Jahren auf dem Feld und habe mich nie gelangweilt.
  • Weniger Wettbewerb um Arbeitsplätze.
  • Hör auf, dich über die Technologie zu beschweren (siehe einige Beiträge oben) ... sie mag alt sein, aber in vielerlei Hinsicht ist sie offenen Systemen Lichtjahre voraus. HTML - gib mir eine Pause. Es ist so ähnlich wie Basic, das ich vor 30 Jahren am College gemacht habe. Wir sind weit darüber hinaus.
  • Der Mainframe ist schnell und zuverlässig, bewährt.
  • Probieren Sie die Systemprogrammierung aus, wenn Sie sehr intelligent sind und Fehlerbehebung lieben.
  • Als Teamleiter wünschte ich mir, ich könnte junge, ausgebildete Techniker finden, um offene Stellen zu füllen.
  • Habe ich schon erwähnt, dass es sich auszahlt?
  • Neben der Softwareentwicklung gibt es noch weitere Karrieremöglichkeiten für Mainframes - Hardware-Ingenieure, Speichertechniker, Netzwerke und mehr.
  • Es macht Spaß, ist aufregend, herausfordernd und es gibt ein großartiges Karrierewachstum.
  • Hören Sie auf, Mainframe als alte Technologie zu betrachten - probieren Sie es aus und überprüfen Sie alles, was ich gesagt habe.

Schauen Sie sich auch die IBM System z Academic Initiative an.

6
Sarah T

Ich habe mit der Arbeit an Mainframes begonnen, als ich vor 10 Jahren in die Belegschaft eingetreten bin. Ich hatte noch nie einen Mainframe berührt.

Es gab einige Aspekte, die mir nicht gefallen haben, so dass ich die Mainframe-Arbeit so schnell wie möglich eingestellt habe:

  1. Das Bearbeiten von Code war sehr primitiv. Sie haben im Grunde nur in einem Texteditor gearbeitet, der auf ALLE GROSSBUCHSTABEN und 80 Zeichenzeilen festgelegt war. Keine Code-Vervollständigung oder Syntaxprüfung.
  2. Die Kompilierung erfolgte durch Starten eines Batch-Jobs, der dann geplant und irgendwann ausgeführt wurde, normalerweise in den nächsten 5 Minuten, wenn Sie Glück hatten. Wenn Sie einen Tippfehler hatten und der Code nicht kompiliert wurde, wiederholen Sie dies mehrmals.
  3. Es gab keinerlei Debugger. Das Debuggen wurde durchgeführt, indem variable Werte ausgedruckt und dieser lange Kompilierungsschritt wiederholt wurden.
  4. Die Änderungen, die wir vorgenommen haben, waren immer unglaublich konservativ. Wir bauten auf 20 Jahren altem Code auf, bei dem die einzige Dokumentation irgendwo in einem Aktenschrank auf Papier handgeschrieben war. Darüber hinaus war dies ein Finanzkodex, sodass keine Fehlertoleranz bestand. Der eigentliche Codierungsschritt war also im Vergleich zu den zuvor erforderlichen Untersuchungen minimal.

(OTOH, sie hatten für den Zeitraum eine sehr fortgeschrittene Versionskontrolle und Code-Promotion.)

6
Scott McIntyre

Dies ist nur meine persönliche Perspektive als junger Programmierer. Ich habe noch nie an einem Mainframe gearbeitet, daher kann ich nicht aus erster Hand über einen sprechen. Aber das ist die Sache, ich habe noch nie an einem gearbeitet und sehe nicht voraus, dass es bald passieren wird. Ich bin mir nicht sicher, wo Sie die Grenze zwischen Mainframe und einem einfachen Server ziehen möchten, aber wenn ich an Mainframe denke, stelle ich mir eine riesige IBM-Maschine wie die Z-Serie 900 vor, die nur Strom für 35 US-Dollar pro Tag verbraucht. Ich werde in naher Zukunft keine davon in meinem Keller haben, an denen ich basteln kann. Besonders wenn ich mir einen alten Computer schnappen, einen Ubuntu-Server darauf werfen und alles hosten kann, worauf ich Lust habe. Wenn ich ein Problem habe, ist die Linux-Community riesig und es besteht die Möglichkeit, dass jemand anderes auf mein Problem gestoßen ist und online eine Lösung veröffentlicht hat. Ich vermute nur, aber ich würde nicht erwarten, dass diese Informationen für Mainframe-Probleme online verfügbar sind.

6
Matt Molnar

Schau, ich bin 42 und ich interessiere mich nicht für Mainframes. Nun, lassen Sie uns das qualifizieren. Ich interessiere mich für die Geschichte des Rechnens. Ich habe mich bis zu einem gewissen Grad mit Mainframe-Architekturen befasst und verstehe, wie beispielsweise IBM-Mainframes Mikroprozessorarchitekturen wie das Motorola 68000 oder 80386 beeinflussten Erinnerungen. Für Menschen, die an diese Umgebungen gewöhnt waren, waren frühe Mikroprozessoren in vielerlei Hinsicht enttäuschend, und es dauerte eine Weile, bis mikroprozessorbasierte Architekturen ähnliche Fähigkeiten und Leistungen einholten.

Aber diese Architekturen haben es geschafft, und Mainframes haben längst aufgehört, "hip" zu sein. Es passierte, als Hacker Minicomputer auf ihre Bänke bringen konnten und bald darauf Workstations mit Unix.

Mainframes sind jungen Programmierern seit Anfang 1980 fremd - so etwas. Dies könnte eine hervorragende Zeit für Mainframe-Unternehmen gewesen sein, sich genau Ihre Frage zu stellen.

Heute ist die Antwort generationenübergreifend rekursiv: Junge Programmierer interessieren sich nicht für Mainframes, denn selbst wenn sie Eltern oder Lehrer haben, die sich für Computer interessieren, waren diese Eltern und Lehrer (über 40 Geezer wie ich) bereits kein Viertel daran interessiert, etwas mit Mainframes zu tun Vor einem Jahrhundert.

Jedenfalls kann ein Handy heute die Aufgaben bewältigen, für die Mainframes vor 30 Jahren verwendet wurden! Farmen mit preiswerten Serverboxen sind der neue Mainframe. In gewisser Weise gibt es heutzutage neue Mainframe-Programmierer. Nur ihre Spezialität besteht darin, vernetzte Maschinen zusammenzubauen, um Clouds zu erstellen. Kurz gesagt, wir könnten sagen, dass Mark Zuckerberg und seine Bande eine neue Art von Mainframe-Programmierung machten, als sie Facebook produzierten, in dem Sinne, dass es nicht nur eine kleine Anwendung ist, die nur auf einem einfachen Mikroprozessor mit einer Festplatte läuft.

Eine der letzten Besonderheiten des Mainframes war übrigens die Virtualisierung. Aber das ist jetzt auf Desktop-/Server-Computern allgegenwärtig. Die Leute fingen anfangs schlecht an, Software-Techniken anzuwenden. VMs waren so nützlich, dass die Benutzer den Leistungseinbruch nicht störten. Dann schauten Unternehmen wie Intel erneut auf den Mainframe und lernten ein paar weitere Lektionen, indem sie die Virtualisierung in Hardware unterstützten, um sie schnell zu machen.

5
Kaz

Ich bin noch ein junger Programmierer (ich bin 29) und ich bin definitiv nicht daran interessiert zu lernen, wie man sich für den Mainframe entwickelt. Ich arbeite für eine Versicherungsgesellschaft in einem .NET-Team, aber wir arbeiten auch mit einem großen Team von Mainframe-Programmierern der alten Schule zusammen.

Es gibt einige Dinge, die die Mainframe-Welt für mich unattraktiv machen. Erstens gibt es COBOL. Ich verstehe, dass ein Großteil der Welt mit COBOL läuft, aber das macht die Sprache für meine Augen nicht weniger hässlich.

Als nächstes kommt das Konzept des "Zyklus". Ich weiß nicht, ob dies bei Mainframes üblich ist oder nur so, wie wir es tun, aber unser Mainframe muss einen Nachtzyklus ausführen, bevor wir aktuelle Daten daraus abrufen können. Die .NET-Seite unseres Shops ist stark am Senden von Daten an den Mainframe und am Umgang mit Daten vom Mainframe beteiligt (insbesondere beim Anzeigen einer Menge Daten auf einer internen LOB-Website für Agenten). Das Unternehmen möchte, dass die den Agenten angezeigten Daten minutengenau sind. Der Mainframe funktioniert jedoch nicht innerhalb meines (eingeschränkten) Echtzeitkonzepts. Wir haben einige verrückte Problemumgehungen eingerichtet, um auf der Website zu simulieren, was wir als tatsächliche Ausgabe vom Mainframe am nächsten Tag erwarten.

Schließlich bin ich fest davon überzeugt, dass wenn ich an diesem Punkt in Richtung Mainframe-Entwicklung gehen würde, dies meine Karriere dominieren würde. Ich denke, meine Fähigkeiten als moderner Entwickler würden immer weiter zurückfallen und schließlich den Punkt erreichen, an dem die COBOL-Wartung meine einzige Option wäre. Ich weiß, dass es jetzt und vor allem in zehn Jahren gutes Geld zu verdienen gibt, aber Geld steht auf meiner Prioritätenliste für meine Karriere an vierter oder fünfter Stelle. Ich würde lieber mein anständiges Gehalt weiter verdienen, wenn es bedeutet, an neuen und interessanten Dingen zu arbeiten.

5
Joshua Smith

Ich arbeite hauptsächlich mit Java, aber wir verwenden Mainframes für unser Backend, was bedeutet, dass ich mich viel mit ihnen beschäftigen muss (RPG). Das größte Problem, das ich habe, ist der Mangel an öffentlich zugänglicher Dokumentation. Sie finden eine SQL-Dokumentation für DB2, die hauptsächlich in iSeries DB2 übersetzt wird, aber publib.boulder ist im Vergleich zu den Sun-Javadocs schrecklich.

Eine andere Sache, die ich nicht mag, ist die schwer lesbare Syntax der wichtigsten Mainframe-Sprachen. RPG hat nicht das Konzept des lokalen Bereichs, was bedeutet, dass Sie große Variablendeklarationsblöcke benötigen. Ich denke, Cobol leidet unter dem gleichen Problem. Es führt auch zu bedeutungslosen Variablennamen und versteckten Bedeutungen. Es hat auch viele, viele verschiedene eingebaute Funktionen, die ich nur schwer herausfinden kann (siehe oben). Es erinnert mich daran, warum ich BASIC nicht mehr für ernsthafte Programmierung verwende. Zum Glück versucht IBM, alle auf Java umzustellen, aber diese Legacy-Sprachen werden nicht so schnell verschwinden.

Es fällt mir schwer, mich darauf zu freuen, in einer solchen Umgebung das Programmieren zu lernen.

5
Michael K

Das Erlernen der Web-, Handy- oder PC-Entwicklung ist recht billig und einfach.

Die Hardwarekosten für selbst einen verprügelten alten Mainframe sind furchtbar hoch, und IBM ist häufig verärgert über das Hercules-Emulatorprojekt (mit dem Sie System/370, ESA/390 und die zSeries emulieren können). Ohne Hercules sind die Einstiegskosten für das Erlernen der Mainframe-Architektur und der Anwendungsentwicklung für alle außer den wohlhabendsten Hobbyisten unerreichbar.

Kein College, das ich seit den 80er Jahren besucht habe, hat einen Mainframe für Studenten zur Verfügung. Ich denke, IBM und der Rest der Geister der Mainframe-Industrie haben sich in den Fuß geschossen und sie für das Lernen weniger zugänglich gemacht.

3
Tangurena

Beginnen wir mit einigen Fakten zu IBM Mainframes und speziell zu zSeries.

Die Hardware ist brandneu glänzend und neu. Es enthält einige der fortschrittlichsten verfügbaren Elektronik- und Chipdesigns und ist schnell.

Während z/OS seine Wurzeln in den 1960er Jahren hat, wurde es kontinuierlich weiterentwickelt und mindestens zwei Mal komplett neu geschrieben. Abgesehen von den Macken, die sich aus IBMs Fetisch für Abwärtskompatibilität ergeben, ist es wahrscheinlich eines der neueren Betriebssysteme, die allgemein verwendet werden.

Die wichtigsten Verkaufsargumente sind:

  • Die oben erwähnte Abwärtskompatibilität, wenn ein Programm 1976 auf einem MVS/MVT-Computer ausgeführt wurde, besteht die Möglichkeit, dass es auf der neuesten zSeries ausgeführt wird, ohne neu kompiliert zu werden und genau die gleichen Ergebnisse zu erzielen.
  • Durch die Bandbreite kann der Zugriff verschoben und große Datenmengen gespeichert werden, mit großer Geschwindigkeit und auf einem sehr feinkörnigen Niveau.
  • Verfügbarkeit. SYSPLEX, das seit etwa 15 Jahren verfügbar ist, bietet nahtloses Clustering über mehrere Standorte hinweg, einschließlich Lastausgleich, automatischem Failover usw. Ein Großteil davon ist in Hardware implementiert. Dadurch sehen die meisten * nix-Cluster primitiv aus.
  • Konvergenz. Dieser klingt ein bisschen komisch, aber mit voller POSIX-Unterstützung und einer superschnellen JVM ist ein moderner Mainframe praktisch nicht von jeder anderen * NIX-Box zu unterscheiden, wenn Sie ihn so verwenden möchten.

Bisher hat der Mainframe fast alles überlebt, was die Experten sagten, um ihn zu ersetzen.

Es gibt eine Reihe von Nachteilen: -

  • Abwärtskompatibilität bedeutet, dass in vielen Geschäften zwanzig, dreißig und in einigen Fällen vierzig Jahre alte Systeme ausgeführt werden. Während sie gut arbeiten und ihre Geschäftsfunktionen gut ausführen (oder sie würden nicht noch laufen!), Reflektieren sie die Codierungsstile und Obsessionen eines vergangenen Zeitalters.
  • rückständige Kultur. Programmierer, die in einem Ghetto alter COBOL-Systeme arbeiten, scheinen nicht bemerkt zu haben, dass sich die Welt weiterentwickelt hat, oder wenn sie dies tun, lässt ein versteinertes Management dies nicht zu.
  • Mangelnde Verfügbarkeit. Wenn Sie nicht tatsächlich dafür bezahlt werden, an einem dieser Monster zu arbeiten, erhalten Sie keinen Zugang zu einem. Es kann sogar einen geben, in dem Sie arbeiten, aber wenn Ihre unmittelbare Stellenbeschreibung keine Arbeit enthält, erhalten Sie kein Login. In anderen Beiträgen wurde viel über die Emulationssoftware "herecules" gesagt, und sie ist zwar ausgezeichnet, aber nur für Experten geeignet. Sie verwendet eine alte Version des Betriebssystems, es fehlen die meisten Standardkomponenten wie CICS, COBOL und DB2, das das Framework der meisten laufenden Mainframe-Anwendungen bildet.
3
James Anderson

Ich bin 28 Jahre alt und seit 10 Jahren ein professioneller Entwickler. Ich habe 3 Jahre an einem Mainframe gearbeitet.

Die Umgebung war esoterisch, abgestanden, stagnierend, verwirrend (JCL und ISPF jemand?). Trotzdem hatte ich einen enormen Respekt vor dem System, wie alles funktionierte, wie groß es war. Das System hatte so etwas wie 150M SLOC, unterstützte eine Midrange-Farm von UNIX-Servern über SOA) und betrieb buchstäblich einen Großteil des Landes.

Warum sind junge Programmierer nicht interessiert? Hier ist meine Einstellung als "junger" Programmierer (ich habe mit 23 Jahren mit diesem System angefangen). Bedenken Sie jedoch, dass dies meine Perspektive aus dem System ist, an dem ich gearbeitet habe, und aus der Forschung, die ich durchgeführt habe:

  • Es gibt wenig neue Mainframe-Entwicklung. Vieles davon ist Vermächtnis.
  • Es gibt große Eintrittsbarrieren
  • Die geleistete Arbeit ist für Finanzen, Großunternehmen und Regierung. Nichts davon blutet Edge.
  • Die Entwicklungswerkzeuge sind alt und weitgehend veraltet. Debugging ist nichts wie VS.

Mainframes werden immer einen Platz in der Wirtschaft haben. Aufgrund ihrer enormen Kosten- und Supportanforderungen fahren sie einfach keine frühen Unternehmen.

1
Sam

Lustig solltest du das fragen. Wir haben gerade an der Universität einen Vortrag über Mainframes geführt und IBM ist unzufrieden mit der Ebene der Mainframe-Entwickler, so dass sie ein Mainframe-Modul an unserer Universität implementieren, uns die Mainframe-Programmierung beibringen und remote auf einen ihrer Mainframes zugreifen können.

Ich nehme dieses Modul tatsächlich im September, es wird vielleicht nicht etwas sein, das ich noch einmal machen werde, aber es wird mir die Möglichkeit geben, an etwas "anderem" zu arbeiten und meine Augen für neue Paradigmen zu öffnen.

1
Darren Young

Diese Antwort ist, dass es keine Zukunft gibt. Ich habe zweiundzwanzig Jahre Erfahrung als Mainframe-Programmierer und bin seit fünf Jahren arbeitslos. Ich gehe zurück zur Schule, um meinen Bachelor in Webentwicklung zu machen. Warum sollte jemand, der bei klarem Verstand ist, ein Mainframe-COBOL-Programmierer sein wollen?

Ken

0
Ken Dawson

Während ich denke, dass es wahrscheinlich sehr interessante Arbeiten in Mainframes gibt, hätte ich Angst, meine Karriere tatsächlich in diese Richtung zu bewegen. Es besteht eine viel zu große Chance, dass meine Erfahrung 10 Jahre später nutzlos geworden ist und für einen Mainframe-Programmierer keine Arbeit mehr verfügbar ist. Ich möchte mich nicht überholen, indem ich viel Zeit in einer stagnierenden Technologie mit einer schrumpfenden Installationsbasis verbringe.

0
MattBelanger