Warum interessieren sich junge Programmierer nicht für Mainframes? [geschlossen]

51

Ein Hauptproblem bei Großrechnern ist, dass die Zahl der unterstützenden Programmierer abnimmt. Normalerweise wäre dies kein Problem, da ein sinkendes Angebot an Programmierern durch eine zunehmende Menge an Gehältern ausgeglichen würde, die ein steigendes Angebot an Programmierern durch das Gesetz von Angebot und Nachfrage verursachen. Ich bin mir jedoch nicht sicher, ob dies wirklich der Fall ist Großrechner.

Obwohl sie für viele Unternehmen immer noch eine wichtige Infrastruktur darstellen, ist die Tatsache schlichtweg, dass nicht genügend junge Programmierer hinzukommen, um die Bevölkerung der Unterstützer zu versorgen.

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

versuchten
quelle
40
1.) Sie sind teuer 2.) Es scheint keinen Simulator oder etwas zu geben, das man in eine VM laden könnte (?) 3.) Man muss unbedingt Krawatten tragen, wenn man an Mainframes arbeitet. :)
Ingo
8
Wenn ich tagsüber ein Webentwickler bin, kann ich an einem Wochenende ein paar zusätzliche Dollars für jemand anderen verdienen. Nicht so bei Großrechnern. Außerdem kann ein Mainframe-Entwickler die Welt nicht so "erobern" wie Facebook, Twitter und Angry Birds. Hilft mir diese Arbeit bei meiner nächsten?
Job
86
Ich bin ein junger Programmierer. Ich habe noch nie einen Mainframe gesehen, hatte noch nie eine Sandbox / einen virtuellen Mainframe zum Spielen, war noch nie ein Freund zu mir gekommen und hatte gesagt: "Das ist wirklich cool, probier es aus!". Ich sehe das Web jeden Tag, es gibt leicht verfügbare - und kostenlose - Lernwerkzeuge für Webapp-Entwickler, und alle meine Freunde machen ordentliche Sachen darin. Welches soll ich wählen? (Obwohl, wenn ich Zugang zu einem hätte, wäre ich sicher, es zu überprüfen, nur weil es interessant sein könnte ... (Kommentar, weil dies im Wesentlichen ein +1 für die unten genannten Dinge ist ...)
Beekguk
5
Wenn Sie noch keinen virtuellen Mainframe zum Spielen hatten, Beekguk, dann weil Sie noch keinen gesucht haben .
NUR MEINE STELLUNGNAHME
48
Ich programmiere seit ungefähr 35 Jahren und weiß nicht, was Sie mit "Mainframe" meinen. Wenn auf einem Computer mit 128 Prozessoren Unix ausgeführt wird, handelt es sich um einen Mainframe? Oder meinen Sie Maschinen, auf denen veraltete Betriebssysteme mit Anwendungen in veralteten Sprachen ausgeführt werden?
Kevin Cline

Antworten:

98

Ich bin ein alter Programmierer und interessiere mich nicht für Mainframes. Meine Gründe werden wahrscheinlich den von jungen Programmierern angeführten ähnlich sein, wenn auch ohne die Unkenntnis der Technologie, die in vielen dieser Antworten so offensichtlich ist.

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

  • Die verschiedenen Behauptungen der Unfähigkeit, Mainframes auszuprobieren, sind falsch. Hercules ist seit 1999 erhältlich - wahrscheinlich länger, als viele der Befragten programmiert haben - und obwohl IBM darüber nachgedacht hat, ist die Wahrscheinlichkeit, dass es in Kürze verschwindet, vernachlässigbar (insbesondere angesichts der Tatsache, dass es Open Source ist). Es stimmt zwar, dass Sie die teure Software (legal) nicht dafür ausführen können, es ist jedoch eine Menge Software verfügbar, die Sie darauf ausführen können, einschließlich der Software, die derzeit noch recht 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. <ironie> Ich weiß nicht warum. </ ironie>

Warum habe ich Großrechner mein ganzes Leben lang gemieden, nachdem ich ihnen in der Schule begegnet bin? Gut:

  • Während es wahr ist , dass Sie können mehr als COBOL, CICS, RPG2 usw. in Großrechnern verwenden, stehen die Chancen sehr hoch , dass , wenn Sie mit ihnen arbeiten , das ist , was Sie zu tun verbannt werde. Schlimmer noch, obwohl COBOL in den letzten zwei Jahrzehnten oder so massiv "modernisiert" wurde (erschreckende Zitate, weil ich es immer noch nicht für eine sehr moderne Sprache halte), werden die meisten Codierungen, die Sie in COBOL machen, immer noch in der alten sein Code, weil ...
  • In den Mainframes gibt es nur sehr wenige aktuelle Neuentwicklungen. Wenn Sie einen Job bei IBM bekommen, der für die Forschungs- und Entwicklungsabteilung von IBM 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 werden Sie dort jedoch nicht arbeiten. Sie werden im Hinterzimmer eines Finanzinstituts oder eines anderen Unternehmens arbeiten, das den 50 Jahre alten COBOL-Code verwaltet, der von jemandem geschrieben wurde, der immer noch denkt, dass 64 KB ein gewaltiger Haufen RAM ist. (Der gleiche Typ wird wahrscheinlich dein Boss 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, aber Sie werden diesen Job nicht bekommen, wenn Sie für IBMs Mainframe-Forschung und -E arbeiten. Es geht wieder darum, den 50-jährigen COBOL zu pflegen.
  • Corporate Programming ist sehr effizient darin, Ihnen die Seele aus dem Leib zu reißen (und denken Sie daran, es ist Corporate Programming, das Sie als Mainframe-Programmierer ausführen werden, wenn Sie nicht sehr viel Glück haben).
  • Es ist ein Ghetto und ein immer kleiner werdendes. (Es ist wie MUMPS auf diese Weise.) Wenn Sie zu sehr in Mainframe-Überlieferungen vertieft sind, werden Sie weiter von allem entfernt, das kein Mainframe ist. Sie können es versuchenmithalten, aber du wirst nicht. Ich weiß, dass jemand darauf hingewiesen hat, dass die Verkäufe von Großrechnern gestiegen sind, während andere Server-Sektoren ein wenig geschrumpft sind, aber Server-Programmierung ist heutzutage die Minderheit. Höllen-PCs verlieren im Allgemeinen an Bedeutung. Die Welt des Programmierens ist sehr weit und sehr vielfältig, und es ist bedeutungslos, einen winzigen Teil davon im Vergleich zu einem anderen winzigen Teil wachsen zu lassen, 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 Großrechnern zu arbeiten, und Sie werden nur andere Großrechner haben, 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, wodurch die Herde noch weiter und schneller schrumpft.

Ich bin sicher, es gibt viele Gründe, die ein Mainframe-Programmierer nennen könnte, warum die Karriere sich lohnt und voller Freude und interessanter Herausforderungen steckt. In der Tat habe ich viele von ihnen von Leuten gehört, die mich auf dem Feld rekrutieren wollten. Am Ende blieb ich jedoch nicht überzeugt, hauptsächlich wegen des Ghetto-Problems. Wenn ich eingestiegen bin und festgestellt habe, dass es mir nicht gefallen hat, wie komme ich dann raus?

NUR MEINE STELLUNGNAHME
quelle
11
"Wenn ich reingekommen bin und festgestellt habe, dass es mir nicht gefallen hat, wie komme ich dann raus?" --- verlassen?
Aaronaught
36
Ab nach wo? Meine Fähigkeiten, das 50-jährige COBOL zu pflegen, lassen sich nicht auf das Schreiben von sexy Web-Apps oder iPhone / Android-Apps oder was auch immer übertragen.
NUR MEINE STELLUNGNAHME
24
Wenn Sie die Ins und Outs eines ganzen Bereich der Arbeit in zwei Monaten herausfinden können , sind Sie ein viel heller Mann als ich
NUR MEINE MEINUNG korrekte
11
@Aaronaught In einer wettbewerbsintensiven IT-Welt, in der Sie einige Jahre gebraucht haben, um tatsächlich die Anfänge einer angemessenen Geschwindigkeit in Großrechnern zu erreichen, würden Sie Ihre bisherigen Fähigkeiten nicht verlieren, aber automatisch weniger attraktiv sein, wenn Sie nach anderen Ausschau halten Arbeit, genau wie wenn Sie zwei Jahre lang Forstwirtschaft betrieben oder einen Starbucks gemanagt hätten: Wenn Sie den Eindruck haben, dass Sie nicht auf dem Laufenden sind, schadet es Ihnen auch nur ein bisschen, wenn Sie mit jemandem verglichen werden, der nicht so aussieht.
Matthew Frederick
5
@Aaronaught Ich bin damit einverstanden, dass Sie raus können und dass es Ihre Karriere nicht für immer ruinieren wird, nichts, was hyperbolisch ist. Ich behaupte, das würde Sie weniger wettbewerbsfähig machen und für die meisten modernen Arbeitgeber würde es Ihrer Karriere nicht viel mehr helfen als für andere denkende Jobs. Ich habe nicht "Landschaftsgestaltung" als Beispiel genommen, sondern Jobs, die Denken erfordern .
Matthew Frederick
59

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

  1. In der Community scheint es wenig oder gar keine Innovationen zu geben.
    Ich weiß, dass dies nicht genau der Fall ist, aber für den zufälligen Betrachter 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 sind im Gange?
    Keine, soweit ich das beurteilen kann. 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 Menschen lernten zu Hause, wie man auf ihrem PC programmiert. Wiederum wechseln die meisten Menschen nicht gern von dem, was sie wissen. Der Übergang von einem zum anderen erfordert Zeit und Motivation. Angesichts der beiden anderen Gründe gibt es nicht viele Abnehmer.
aceinthehole
quelle
20
+1: Dies stimmt mit meiner Erfahrung überein. Der absolut letzte Ausweg besteht darin, alten Systemen neuen Code zuzuweisen, und viele der ehrwürdigen Zeilen werden nicht mehr unterstützt, sodass die alte "Zuverlässigkeits" -Linie allmählich durcheinander gerät. Eine Sache, die Sie nicht erwähnen, ist, dass die Mainframe-Wartung sehr spezifisch und proprietär ist. Sie stecken Jahre Ihres Lebens in einen toten oder sterbenden Zweig der Technik. Es wird Ihnen nicht helfen, einen Job zu bekommen, außer einen Job, der auf der gleichen Art von System arbeitet, und es gibt immer weniger davon.
Satanicpuppy
Selbst in einer allgemein schwierigen Wirtschaftslage wächst der Umsatz von IBM mit Großrechnern . Es ist kein wirklich schnelles Wachstum, aber es ist mehr als die Konkurrenz (sie haben gerade HP überholt, um den ersten Platz im Serververkauf zu belegen).
Jerry Coffin
Ich neige dazu, über das nachzudenken, was in der Community als "Innovation" gilt. Was ich festgestellt habe, ist, dass es sich um eine vergleichsweise geschlossene Community handelt, die zu einem Mangel an umfassendem Wissen darüber führt, was in der Welt des Mainframes geschieht. ~ Ich bin damit einverstanden, dass es für den Gelegenheitsschüler nicht zugänglich ist. In Bezug auf IBM halte ich es für interessant, den Zugang zu Universitäten zu regeln, aber ich denke, dass dies in einer vernünftig vernetzten Welt wirklich besonders angegangen werden muss.
Versuchung
25

Ich werde im September 40 Jahre alt und weiß nicht, ob mich das als jungen Menschen qualifiziert, aber ich weiß aus erster Hand, warum jemand kein Mainframe-Programmierer werden möchte.

In den letzten 10 Jahren meines Berufslebens habe ich mich 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. Bei meiner letzten Anstellung arbeitete ich Seite an Seite mit Webentwicklern (jsp, javascript, spring und hibernate) und bemerkte, dass das Unternehmen Webentwickler mit vergleichbarer 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, beschloss ich, aus dem Mainframe-Geschäft auszusteigen. Jetzt bin ich in der Lage, Webservices mit Java und Front-End-Benutzeroberfläche mit Javascript zu entwickeln. Dieser Programmierstil ist nicht schwieriger als das, was ich auf dem Mainframe gemacht habe, aber jetzt verdiene ich mehr Geld und habe weniger Kopfschmerzen. Ich bekomme um 2:00 Uhr nicht mehr den Anruf, dass etwas schief gelaufen ist und die zentralen Systemprozesse darauf warten, dass ich meine Probleme behebe. Geben Sie mir einen guten Grund, warum ich als Mainframe-Programmierer bleiben würde, wenn ich mehr Geld verdienen und weniger Stress in meinem Leben als Programmierer für verteilte Systeme haben kann?

Ich bin mir sicher, dass es Umstände gibt, unter denen Unternehmen sowohl Mainframer als auch verteilte Systemanbieter bezahlen, aber ich persönlich habe sie nicht gefunden. Außerdem habe ich mit der Jobsuche aus beiden Perspektiven begonnen und festgestellt, dass die Joblisten für verteilte Systeme mindestens 10 zu 1 überlegen sind. Das zeigt mir, dass der Mainframe im Moment nicht der richtige Ort für mich ist, um bessere Jobmöglichkeiten zu haben Sein.

Jeff
quelle
Interessant, dass du das sagst. Ich bin ein Jahr jünger als du und habe es sehr ähnlich gemerkt. Es ist so ziemlich der Grund, warum ich die Frage gestellt habe.
Versuch
Ich dachte, Mainframe-Leute würden mit LKW-Ladungen
bezahlt
2
Ich denke, wenn Sie als Programmierer eine Million Dollar im Jahr verdienen wollen, dann ist dies der letzte Mann bei BigAmericanBank, der weiß, wie seine Banksysteme funktionieren.
Warren P
Wie kommt es, dass Sie weniger Geld verdienen, wenn Sie kritische Bankensysteme unterhalten? Menschen, die in Alarmbereitschaft sind, dh um 2 Uhr morgens angerufen werden, verdienen in der Regel am meisten.
ALXGTV
19

Nach dem, was ich bisher gesehen habe, und im Vergleich zu Linux und Windows, besteht das Grundproblem bei Mainframes und Midframes darin, dass Sie im Voraus bezahlen müssen, um sie zu verwenden. Und viel bezahlen. Jedes Jahr. Für alles.

Dies ist einfach nicht der Weg, 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 für Studenten billig verfügbar zu machen, oder sie könnten die Chance haben, dies zu ändern.

user1249
quelle
4
+ 1- Nicht nur die Server sind teuer, auch die Lizenzen können übertrieben sein, um jede Art von grundlegendem Interop zu erhalten.
Morgan Herlocker
Ja, obwohl IBM hauptsächlich auf größere Regierungs- und Unternehmensorganisationen abzielt. Sie verkaufen auf Sicht Training und Wartung. Die Lizenz macht nur einen Bruchteil der Gesamtkosten für den Betrieb des Systems und der Personen aus, die Sie benötigen, um es in Bewegung zu halten. Warum berechnet IBM so viel, weil sie spezialisierte Mitarbeiter haben, die sich mit dieser Domäne befassen.
Tschad
NEIN, weil sie sich bewusst sind, dass sie ihre Kunden, die in dieser Angelegenheit keine andere Wahl haben, weiter unter Druck setzen können. Es heißt Lock-In aus einem bestimmten Grund.
Warren P
IT ist eine seltsame Industrie. Sie können nicht mit Großrechnern in Ihrem Keller spielen, so wie Sie es beispielsweise mit Düsentriebwerken in Ihrem Keller nicht können, aber es gibt immer noch Leute, die an diesen Dreamlinern und F-35 arbeiten.
el.pescado
14

Einer meiner ersten Sommerjobs als Programmierer drehte sich hauptsächlich um das Abkratzen von Greenscreens und PRN-Dateien. Damals hätte ich wahrscheinlich nichts dagegen gehabt, mir in COBOL die Hände schmutzig zu machen (das heißt, wenn man mir als Student genug vertraut hätte, um mich in diesen Code einzulassen), aber ich bin mir nicht sicher, ob ich das auch so empfinde gleiche Perspektive heute.

Ich denke nicht, dass das Problem wirklich bei Mainframes an sich liegt. Es ist die (oft begründete) Besessenheit unserer Branche mit dem Neuen und Glänzenden.

Schauen Sie sich C. an. C ist offensichtlich immer noch eine äußerst wichtige Sprache. Fast alle eingebetteten Codes und die meisten Betriebssysteme sind in C geschrieben. Und doch wird es schwieriger, C-Programmierer zu finden. Ein kurzer Blick auf die Stack Overflow-Tag-Seite platziert sie auf 1/6 der Größe von [c#]und 1/4 der Größe von [java]. Erinnert sich jemand, als C im Wesentlichen die dominierende Sprache war, wohl das einzige Spiel in der Stadt?

Programmierer lieben leistungsstarke Werkzeuge. Vielleicht liegt das daran, dass die meisten Programmierer Jungs sind. Sie geben einem Java- oder .NET-Programmierer beispielsweise die Aufgabe, eine Datei zu kopieren, und viele, wenn nicht die meisten, entscheiden sich weiterhin dafür, sie in Java oder C # zu schreiben, anstatt eine DOS-Batchdatei oder ein * nix-Shellskript zu schreiben, das 50-fach wäre schneller zu schreiben und bereitzustellen. Warum mit Rute und Rolle einen Fisch fangen, wenn Sie ein riesiges einziehbares Netz haben, mit dem Sie 500 Fische fangen können?

Ja, COBOL und PL / I sind alt , aber Pascal ist es auch, und es lebt noch und tritt in Form von Delphi auf. Die Abneigung gegen erstere beruht wahrscheinlich auf der Tatsache, dass diese Sprachen im Vergleich zu modernen Werkzeugen unhandlich sind. Objektorientierung ist in der COBOL-Welt noch ein relativ neues Konzept (Schwerpunkt auf relativ ), aber in der C # -Welt haben LINQ und Generika sowie AJAX vor Jahren aufgehört, revolutionär zu sein. Wenn Sie einen Entwickler, der an diese Tools gewöhnt ist, bitten, mit dem Programmieren auf Großrechnern zu beginnen, müssen Sie einen Rockmusiker auffordern, mit dem Spielen auf einem Banjo zu beginnen.

Natürlich gibt es auch das Problem des sich selbst aufrechterhaltenden Stereotyps. Solange jüngere Programmierer glauben, dass sie nichts im Mainframe haben (ob es wahr ist oder nicht), werden junge Programmierer, die sich dafür entscheiden, den größten Teil ihrer Tage mit Menschen verbringen, die viel älter sind. IT ist anfangs kein sozial ansprechender Beruf, aber der zusätzliche Nachteil einer Generationslücke führt dazu, dass die Schmerzgrenze vieler Menschen unterschritten wird. Keine Beleidigung - ich persönlich habe den größten Teil meines Lebens damit verbracht, mit Menschen zu arbeiten, die viel älter sind, aber nicht jeder hat diesen Hintergrund oder diese Fähigkeit.

Schließlich genießen die meisten Programmierer keine Wartungsarbeiten, und fast alle Mainframe-Arbeiten sind Wartungsarbeiten. In PL / I wird nicht viel neue Software geschrieben. Jeder Auftrag, der vollständig oder weitgehend mit dem Wartungscode definiert ist, beginnt automatisch mit einem negativen Ergebnis.

Es gibt positive Ergebnisse auf Legacy - Code ( „Legacy“ umfasst Großrechner und viele andere Dinge) zu arbeiten, die Sie wahrscheinlich spielen benötigen, wenn Sie versuchen , ein jüngeres Publikum zu gewinnen:

  • Die Systeme sind, wie Sie sagen, eine kritische Infrastruktur. Jüngere Entwickler, zumindest in der Geschäftswelt (nicht Google / Microsoft), haben häufig keine Chance, echte Auswirkungen zu erzielen . Es ist entmutigend, an einem System zu arbeiten, von dem Sie wissen, dass es nach ein paar Monaten oder Jahren aufgegeben oder abgelöst wird. Mainframe-Apps, die bereits seit 50 Jahren laufen, werden wahrscheinlich noch viel länger laufen, da es für die Unternehmen keinen Sinn macht, sie neu zu erstellen. Daher ist die Arbeit, die Sie in ihnen leisten, für viele Menschen tatsächlich wichtig .

  • Wenn Sie eines der wenigen Unternehmen, die tatsächlich nicht eine Neigung zu „Upgrade“, dann eine Menge von Programmierern, jung und alt, wird von dieser Möglichkeit angezogen werden, weil dann Doppel Möglichkeiten zur Arbeit auf unternehmenskritischen Code gibt es und um einige dieser C # / Java-Muskeln zu beugen. Natürlich würde kein vernünftiges Unternehmen den Mainframe ausrangieren und von Grund auf neu erstellen, aber ich habe Systeme gesehen, die (zum Beispiel) einen COBOL-Kern haben, der in Java-Komponenten integriert ist.

  • Schließlich gibt es die Unentbehrlichkeit - zumindest, wie wir es als Außenstehende wahrnehmen. Wenn sich Ihr gesamter Code in .NET befindet, besteht immer das Risiko, dass die Eigentümer Sie gegen einen frisch gebackenen Hochschulabsolventen oder gegen ein Offshore-Team eintauschen, um die Kosten zu senken. Ich denke nicht , dass dies in der Mainframe-Welt sehr häufig vorkommt, besonders wenn das, was Sie sagen, wahr ist und das Angebot zu schwinden scheint. Natürlich ist dieser Punkt umstritten, wenn Sie nicht gut genug bezahlen; Gehälter müssen angepasst werden, um das schwindende Angebot widerzuspiegeln, sonst werden die Leute nicht "verkaufen".

Ich bin mir sicher, dass es viele jüngere Entwickler gibt, die ein einigermaßen großzügiges Angebot eines Unternehmens nicht ablehnen würden, das offenbar alles daran setzt, das Arbeitsumfeld für jüngere Mitarbeiter attraktiv zu machen. Aber wenn Sie sie erreichen möchten, sollten Sie Ihre Stärken ausnutzen und vielleicht sogar etwas Marketing betreiben. Wir neigen dazu, Mainframes als eine andere und sehr fremde Welt zu betrachten, und ich bin mir ziemlich sicher, dass ich euch vor 10 Jahren nicht auf der Campus Jobmesse gesehen habe, um diese Wahrnehmung zu ändern.

Um es auf einen einzigen Satz zu bringen: Nichts macht Mainframes unattraktiv , nichts macht sie auch attraktiv , und das benachteiligt sie ernsthaft im Vergleich zu der blutenden Kante, die uns enorme Produktivitätssteigerungen und kostenlose Erfrischungsgetränke bietet.

Aaronaught
quelle
12
Wir hatten vor 6 Jahren über 4 Mainframe-Programmierer in meinem Shop, und jetzt haben wir keine. Denken Sie nicht, dass Erfahrung Sie unverzichtbar macht.
Satanicpuppy
1
@aaronaught: Entlassen, entlassen, aufkaufen, aufhören. Welche neueren Technologien? Es ist eine Mainframe-Umgebung. Es hat sich in 30 Jahren nicht wesentlich verändert. Neue Hardware, aktualisiertes Betriebssystem, dieselben beschissenen Programme. Als sie weg waren, haben wir 95% ihrer Arbeit an externe Systeme ausgelagert und den Rest auf ein Minimum reduziert. Für mein Unternehmen ist das in den letzten 10 Jahren so gelaufen.
Satanicpuppy
3
@aaronaught: Du musst den Prozess verstehen , aber der Code kann normalerweise einen Spaziergang machen. Es wird so viel getan, um die Grenzen des Systems zu umgehen. Wenn ich beispielsweise einen verschlüsselten Kreditkartenstapel an unseren Händleranbieter senden muss, ist dies auf einem modernen Linux-Computer tatsächlich einfacher. Die Berichterstellung ist erheblich einfacher: Wir erstellen tonnenweise Berichte und Projektionen, die zum größten Teil auf historischen Daten basieren. Auf diese Weise können wir Datensätze auslagern und in eine moderne Datenbank stellen und dann mit Crystal Reports (oder was auch immer) auffällige Berichte erstellen.
Satanicpuppy
2
Auf C - vielleicht ist das Problem weniger "wenige Entwickler" und mehr "Sprache ist einfacher und stabiler, wobei weniger Fragen gestellt werden müssen"? Es ist nicht verwunderlich, dass C # viele Fragen aufwirft - der unendliche Strom neuer APIs usw. erinnert mich an joelonsoftware.com/articles/fog0000000339.html
Steve314
3
Die Programmierung hat sich von der Abstraktion auf niedriger Ebene, die C bietet, entfernt, und wir sind umso besser dafür. Wenn Sie kein C-only-Experte sind, dauert das Schreiben in C viel länger. Und unendlich viel mehr Zeit, wenn Sie ein Entwickler von Code-Monkey-Typen sind. Ich ziehe es vor, meine Zeit damit zu verschwenden, interessante Probleme zu lösen, die domänenspezifisch und nicht seltsam / ungerade sprachspezifisch sind.
Zoran Pavlovic
9

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 auf modernere Hardware mit moderneren Sprachen migriert.

Die Entwicklung von Mainframes ist im Vergleich zu modernen Systemen so umständlich, dass der Mainframe selbst in das Back-End verlagert wird, während modernere Sprachen für die Berichterstellung und Datenumwandlung 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 Batch-gesteuerten Prozess umgewandelt, sodass nur noch abrechnungsbezogene Dinge auf dem Server verbleiben.

Auch wenn es eine gute Nische zu sein scheint, denke ich, dass viele Unternehmen feststellen, dass sie diese Systeme nicht mehr wirklich brauchen . In der Finanzwelt vollzieht sich der Wandel nur langsam, aber tatsächlich.

Satanicpuppy
quelle
Ich nehme an, Sie sind sich auf einer gewissen Ebene bewusst, dass auf einem Großrechner JEDE Sprache verwendet werden kann , auch wenn dies nicht der Fall ist. Hier ist ein kleiner Hinweis.
NUR MEINE STELLUNGNAHME
@JUST: Linux ist eine Programmiersprache? Wenn du eine Linux-Site postest, bist du ein bisschen überfordert. Die überwiegende Mehrheit der Mainframes wurde bereitgestellt, bevor Linux irgendeine Art von Reife erreichte. Früher waren Großrechner die Regel und nicht die Ausnahme: Sie waren die Server, und alle Terminals waren dumme Terminals mit grünen Bildschirmen. Wenn man moderne Supercomputer mit diesen einbindet, verfehlt dies den Punkt der ursprünglichen Frage.
Satanicpuppy
Satanicpuppy: Anscheinend wurde Ihren jungen Leuten nicht beigebracht, zwischen den Zeilen zu lesen. Erlauben Sie mir, es für Sie zu formulieren: Wenn Sie Linux auf einem Mainframe ausführen können, können Sie einen Großteil der Linux-Software auf demselben Mainframe ausführen. Das heißt, Sie können die meisten Programmiersprachen ausführen, die ohne maschinenspezifische Blöcke kompiliert werden können. War das klar genug? (Es gibt einen Grund, warum ich es als "Hinweis" und nicht als "Antwort" bezeichnet habe.)
NUR MEINE richtige MEINUNG
5
@just: Mit welchen Konnektoren für die proprietären Datenbanken? Mit welcher Unterstützung für proprietäre numerische Formate (BCD jedermann?) Warum sollte ich auf dieser Maschine herumspielen? Sie zwingen sich lediglich dazu, MEHR Arbeit auf einem Computer zu verrichten, von dem Sie sich entfernen möchten.
Satanicpuppy
1
Sie müssen nicht einmal Linux ausführen. Die aktuelle z / OS-Generation unterstützt C, C ++, Java usw. nativ. Die USS-Umgebung ist zu 100% POSIX-kompatibel (was mehr ist als für Solaris zu sagen).
James Anderson
9

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

Schnelle Zahlen- und Datenverarbeitung? Warum kann ich das nicht für die Verarbeitung auf einer Farm verteilen oder einen kräftigen "normalen" Server kaufen?

Hohe Redundanz und Skalierbarkeit? Ich hätte lieber eine Linux-Serverfarm oder eine Reihe virtueller Server.

Virtualisierung und mehrere Betriebssysteme? Vielleicht gibt es einen beträchtlichen Leistungsunterschied für die Verwendung dieser Strategie anstelle einer "Cloud" -Strategie?

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

Jordan
quelle
Jordan, das meiste von dem, was Sie in * nix haben, gab es jahrelang auf IBM-Mainframes. Die hohe Redundanz und Skalierbarkeit ist sehr attraktiv, und es gibt einige Hinweise darauf, dass ein Mainframe einen geringeren CO 2 -Fußabdruck (und damit geringere Energiekosten) als eine entsprechende Serverfarm aufweist. Ob dies letztendlich langfristig vertriebsfähig ist, hängt davon ab, ob es Leute geben wird, die bereit sind, die Dinge zu leiten. Ich glaube nicht, dass es das geben wird.
Versuch
8

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

Fazit ist dies:

(1) Informationen stehen mir nicht ohne weiteres zur Verfügung, um zu lernen, was ich zum Programmieren von Mainframes lernen müsste.
(2) An diesem Punkt in meinem Leben möchte ich nur in der Lage sein, meinen Lebensunterhalt mit .NET und Java zu programmieren Ich
möchte auf dieses Ziel hinarbeiten, während ich in der Schule bin, weil es viele Ressourcen gibt, an die ich mich wenden kann, um am Ende meiner akademischen Laufbahn zu lernen, was ich brauche, um ein Portfolio zu erstellen Ich mache etwas, das mir nicht gefällt, und die Möglichkeit, nur Mainframes für eine Karriere zu machen, ist etwas, das mir Angst macht (obwohl ich weiß, dass es Möglichkeiten gibt, neue Dinge in meiner Freizeit aufzufrischen und zu verbessern) Beiträge zu Open Source)

Jetti
quelle
Ein kurzer Blick auf Google zeigt freebyte.com/programming/cobol - Ich befürworte nicht, COBOL zu lernen, aber es gibt Compiler, wenn Sie sich dazu entschließen.
Steve314
Assembler ist auch eine Option, wenn Sie nicht zu Cobol gehen möchten, und obwohl ich es nicht verwende, ist es möglich, dass Sie ein Assembler-Tool auf dem Hercules-Emulator finden können.
Versuch
6

Dies ist nur meine persönliche Perspektive als junger Programmierer. Ich habe noch nie an einem Großrechner gearbeitet, daher kann ich nicht aus erster Hand über einen sprechen. Aber das ist die Sache, an der ich noch nie gearbeitet habe. Ich bin mir nicht sicher, wo Sie die Grenze zwischen Mainframe und einem einfachen Server ziehen wollen, aber wenn ich an Mainframe denke, stelle ich mir eine riesige IBM-Maschine wie die Z-Series 900 vor, die nur Strom für 35 US-Dollar pro Tag verbraucht. Ich werde in Kürze keinen in meinem Keller haben, an dem ich in meiner Freizeit basteln könnte. Vor allem, wenn ich mir eine alte Maschine schnappen, Ubuntu-Server drauf werfen und 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 eine Lösung online gestellt hat. Ich rate nur,

XHR
quelle
1
Sie brauchen keine Z-Serie 900 in Ihrem Keller. Sie können Hercules auf Ihrem PC ausführen - auch auf einem alten.
NUR MEINE STELLUNGNAHME
Ich verstehe das Argument "Keller" nicht. In Ihrem Keller können Sie nicht mit Düsentriebwerken spielen, es gibt keine Tutorials zum Herstellen von U-Booten und es gibt keine Open-Source-Software für Kernreaktoren, mit der Sie spielen können. Trotzdem lernen Ingenieure auf der ganzen Welt diese Dinge.
el.pescado
6

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

Es gab einige Aspekte, die mir nicht gefielen, so dass ich die Mainframe-Arbeit abbrach, sobald ich konnte:

  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. Zum Kompilieren wurde ein Stapeljob gestartet, der dann geplant und 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 den Vorgang mehrmals.
  3. Es gab keinen Debugger. Das Debuggen wurde durchgeführt, indem Variablenwerte ausgedruckt und dieser lange Kompilierungsschritt wiederholt wurde.
  4. Die Änderungen, die wir vorgenommen haben, waren immer unglaublich konservativ. Wir haben auf 20 Jahre altem Code aufgebaut, in dem die einzige Dokumentation irgendwo in einem Aktenschrank handgeschrieben war. Darüber hinaus handelte es sich um die Finanzordnung, sodass keine Fehlertoleranz bestand. Der eigentliche Codierungsschritt war also im Vergleich zu den zuvor erforderlichen Untersuchungen minimal.

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

Scott McIntyre
quelle
2
Versuchen Sie "CAPS OFF", um Kleinbuchstaben zu verwenden, "SYNTAX", um Hervorhebungen und Fehlerprüfungen zu erhalten. Ihre Datensätze sind 32 KB lang und können dann problemlos bearbeitet werden. Die interaktive Kompilierung ist seit 1974 verfügbar, aber die meisten Programmierer bevorzugen Hintergrund-Batch-Jobs aus den gleichen Gründen, aus denen Java-Programmierer ANT-Skripte verwenden. Debugger gibt es schon immer.
James Anderson
Ich stelle mir vor, dass es eine Bank geben könnte, in der keiner der Programmierer weiß, wie man den vorhandenen primitiven Kommandozeilen-Debugger aus den 1960er Jahren verwendet, der mit seinem riesigen Dinosaurier eines Betriebssystems geliefert wird.
Warren P
6

Zwei Gründe, sich der Belegschaft des Mainframes anzuschließen:

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

Die grau werdende Belegschaft im Mainframe-Bereich ist und wird eine 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 ungefähr 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 Gebiet und habe mich nie gelangweilt.
  • Weniger Konkurrenz um Arbeitsplätze.
  • Hören Sie auf, sich über die Technologie zu beschweren (siehe einige Beiträge oben) ... sie ist zwar alt, aber in vielerlei Hinsicht Lichtjahre vor offenen Systemen. HTML - gib mir eine Pause. Es ist so ähnlich wie Basic, das ich vor 30 Jahren auf dem College gemacht habe. Wir sind weit darüber hinaus.
  • Der Mainframe ist schnell und zuverlässig, erprobt und wahr.
  • Versuchen Sie Systems Programming, wenn Sie sehr intelligent sind und die Fehlersuche lieben.
  • Als Teamleiter wünschte ich mir, ich könnte junge, ausgebildete Techniker finden, die offene Stellen besetzen.
  • Habe ich schon erwähnt, dass es sich auszahlt?
  • Neben der Softwareentwicklung stehen weitere Karriereoptionen für Mainframes zur Verfügung - Hardware-Ingenieure, Speichertechniker, Networking und mehr.
  • Es macht Spaß, ist aufregend, herausfordernd und es gibt eine großartige Karriereentwicklung.
  • 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.

Sarah T
quelle
5

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 ein paar Dinge, die die Mainframe-Welt für mich unattraktiv machen. Erstens gibt es COBOL. Ich verstehe, dass ein Großteil der Welt auf COBOL läuft, aber das macht die Sprache für meine Augen nicht weniger hässlich.

Als nächstes gibt es das Konzept des "Zyklus". Ich weiß nicht, ob dies bei Großrechnern üblich ist oder nur so, wie wir es tun, aber unser Großrechner muss über Nacht einen Zyklus durchlaufen, bevor wir aktuelle Daten von ihm abrufen können. Die .NET-Seite unseres Shops ist stark mit dem Senden von Daten an den Mainframe und dem Verarbeiten von Daten vom Mainframe beschäftigt (insbesondere dem Anzeigen einer Menge Daten auf einer internen LOB-Website für Agenten). Das Unternehmen möchte, dass die den Agenten angezeigten Daten auf die Minute genau aktuell 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 am nächsten Tag als tatsächliche Ausgabe vom Mainframe erwarten.

Schließlich bin ich der festen Überzeugung, dass es meine Karriere dominieren würde, wenn ich zu diesem Zeitpunkt in Richtung Mainframe-Entwicklung gehen würde. Ich denke, meine Fähigkeiten als moderner Entwickler würden immer weiter zurückbleiben 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 mache lieber weiter mit meinem anständigen Gehalt, wenn es darum geht, an neuen und interessanten Dingen zu arbeiten.

Joshua Smith
quelle
Ihr Zyklus klingt einfach nach einem schlecht konzipierten Prozess. Mainframes können auf einfache Weise Echtzeitdaten oder nahezu Echtzeitdaten liefern. Es ist teuer, aber es kann getan werden.
bot403
4
@ bot403: Ich glaube dir. Schlecht konzipierte Prozesse sind unsere Spezialität.
Joshua Smith
@Joshua, gibt es einen bestimmten Grund, warum es hässlich aussieht? Und warum sehen andere Sprachen für Sie besser aus?
@Joshua Ich bin in einer auffallend ähnlichen Situation (es ist jedoch auf dem Vormarsch). Wie ich gesehen habe, haben viele der Hauptrahmen eine Geschichte der Stapelverarbeitung von Daten. Wann führen Sie eine Charge aus? Um Mitternacht. Die Prozesse dauern jede Nacht 5 Stunden, da sie einen ganzen Tag (oder einen ganzen Monat) auf einmal erledigen. Wie einige von ihnen die ganze "Event Driven Programming" Sache verpasst haben, scheint ein bisschen seltsam, aber Echtzeit war in den 80ern für Mainframes einfach keine große Priorität.
Morgan Herlocker
2
@ Thorbjørn Ravn Andersen: Ich verachte COBOL-Programmierer nicht. Die Sprache wirkt nur unnötig wortreich. Ich kann nicht mit dem Tippen anfangen, MULTIPLY Num1 BY Num2 GIVING Result.wenn ich tippen kannresult = num1 * num2;
Joshua Smith
5

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

Eine andere Sache, die ich nicht mag, ist die schwer lesbare Syntax der wichtigsten Mainframe-Sprachen. In RPG gibt es kein Konzept für den lokalen Geltungsbereich, was bedeutet, dass Sie riesige 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, über die ich nur schwer etwas herausfinden kann (siehe oben). Es erinnert mich daran, warum ich BASIC nicht mehr für ernsthafte Programme benutze. Zum Glück versucht IBM, alle auf Java umzustellen, aber diese alten Sprachen verschwinden nicht so schnell.

Es fällt mir schwer, mich darauf zu freuen, in einem solchen Umfeld Programmieren zu lernen.

Michael K
quelle
3
+1 für bedeutungslose Namen. Ich bin dabei, ein großes ERP-System, das sich in RPG befand, durch .Net zu ersetzen. Der Programmierer, der es geschrieben hat, hatte einen Hintergrund in einer Sprache mit einer Namensbeschränkung von 6 Zeichen. Neben dieser Konvention verwendete er auch weiterhin die Lochkarten-Notation für alle Codedateien, sodass sie jeweils "CardID" haben und in der Reihenfolge der Datei-ID ausgeführt werden müssen. Kombinieren Sie dies mit der Tatsache, dass Sie fast nie eindeutige IDs oder relationale Designs in den Daten verwenden. Das bringt mich dazu, nie einen Mainframe berühren zu wollen.
Morgan Herlocker
"Das größte Problem, das ich habe, ist das Fehlen öffentlich zugänglicher Dokumentation." +1 Auch - möglicherweise aufgrund des Altersprofils vieler Mainframer ist die Internet-Support-Community im Vergleich zu anderen Technologiezweigen stark eingeschränkt.
Versuch
@Morgan - Relationale Datenbanken wurden auf Großrechnern erfunden. Insbesondere die i-Serie verwendet für alles eine relationale Datenbank.
James Anderson
1
Leider können Sie eine Beziehungsdatenbank immer noch wie eine Flatfile verwenden, und einige Benutzer tun dies auch.
Michael K
5

Schau, ich bin 42 und interessiere mich nicht für Mainframes. Lassen Sie uns das näher erläutern. Ich interessiere mich für die Geschichte des Rechnens. Ich habe mich einigermaßen mit Mainframe-Architekturen befasst und verstehe, wie IBM-Mainframes beispielsweise Mikroprozessor-Architekturen wie das Motorola 68000 oder 80386 beeinflussten. In den 1960er-Jahren waren Mainframes bereits mit Geschwindigkeiten von über 30 Mhz erfolgreich und verfügten über fortschrittliche Multitasking-Betriebssysteme mit virtuellen Funktionen Erinnerungen. Frühe Mikroprozessoren waren in vielerlei Hinsicht enttäuschend, und es dauerte eine Weile, bis mikroprozessorbasierte Architekturen ähnliche Fähigkeiten und Leistungen erlangten.

Aber diese Architekturen haben aufgeholt und Mainframes sind längst nicht mehr "hip". Es geschah, als Hacker Minicomputer auf ihre Bänke bekommen konnten und bald darauf auf Workstations, auf denen Unix lief.

Mainframes sind jungen Programmierern seit Anfang 1980 fremd. Für Mainframe-Unternehmen war dies möglicherweise eine hervorragende Gelegenheit, sich selbst 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 Mann wie ich) bereits ein Viertel nicht daran interessiert, etwas mit Mainframes zu tun Vor einem Jahrhundert.

Jedenfalls kann heute ein Handy die Aufgaben erledigen, die vor 30 Jahren auf Großrechnern ausgeführt wurden! Farmen preiswerter Server-Boxen sind der neue Mainframe. In gewisser Weise gibt es heute neue Mainframe-Programmierer, deren Spezialität darin besteht, vernetzte Maschinen zusammenzubauen, um Clouds zu erstellen. Kurz gesagt, Mark Zuckerberg und seine Bande haben eine neue Art von Mainframe-Programmierung durchgeführt, als sie Facebook produzierten, in dem Sinne, dass es sich nicht nur um eine kleine Anwendung handelt, die nur auf einem einfachen Mikroprozessor mit Festplatte läuft.

Eine der letzten Besonderheiten des Mainframes war übrigens die Virtualisierung. Aber das ist jetzt allgegenwärtig in Desktop / Server-Maschinen. Die Leute begannen es zuerst schlecht zu machen, indem sie Softwaretechniken verwendeten. VMs waren so nützlich, dass den Benutzern der Leistungseinbruch nichts ausmachte. Dann schauten sich Unternehmen wie Intel erneut den Mainframe an und lernten ein paar weitere Lektionen, indem sie die Virtualisierung in Hardware unterstützten, um diese zu beschleunigen.

Kaz
quelle
1
+1 für "Mainframes sind jungen Programmierern seit Anfang 1980 fremd. Für Mainframe-Unternehmen wäre dies eine hervorragende Gelegenheit gewesen, sich selbst Ihre Frage zu stellen."
Kyle Hodgson
3

Web-, Handy- oder PC-Entwicklung zu lernen ist ziemlich billig und einfach.

Die Hardwarekosten selbst für einen verprügelten alten Mainframe sind furchtbar hoch, und IBM ärgert sich häufig ü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 nur für die wohlhabendsten Hobby-Experten zugänglich.

Kein College, an dem ich seit den 80er Jahren teilgenommen habe, verfügt über einen Mainframe für Studenten. Ich denke, IBM und der Rest der Geister der Mainframe-Industrie haben sich in den Fuß geschossen, um sie für das Lernen weniger zugänglich zu machen.

Tangurena
quelle
1
Simuliert Hercules auch die verschiedenen teuren Softwareteile, die Sie benötigen (früher waren es Dinge wie IMS und CICS; DB2 hat IMS ersetzt (oder ich hoffe es aufrichtig und zutiefst))?
David Thornley
1
Natürlich simuliert es die Software nicht. Sie müssen diese Software von einer anderen Stelle erwerben (oder Linux / 390 oder ähnliches verwenden und tun, was Sie wollen).
NUR MEINE STELLUNGNAHME
1
@ David, nein, es enthält nicht die (überteuerte) Software. Nur das Betriebssystem.
Tangurena
3

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

Die Hardware ist brandneu und glänzend. Es enthält einige der fortschrittlichsten verfügbaren Elektronik- und Chip-Designs und sie sind schnell.

Obwohl 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 dem Fetisch von IBM hinsichtlich der 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, ist die Wahrscheinlichkeit groß, dass es auf der neuesten zSeries ausgeführt wird, ohne erneut kompiliert zu werden, und exakt dieselben Ergebnisse liefert.
  • Durch die Bandbreite kann der Zugriff verschoben und riesige Datenmengen mit hoher Geschwindigkeit und sehr feinkörniger Qualität gespeichert werden.
  • Verfügbarkeit. SYSPLEX ist seit etwa 15 Jahren verfügbar und ermöglicht nahtloses Clustering über mehrere Standorte hinweg, einschließlich Lastausgleich, automatischem Failover usw. Ein Großteil davon ist in Hardware implementiert. Dadurch wirken die meisten * nix-Cluster primitiv.
  • Konvergenz. Dies 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 als Ersatz für ihn ansahen.

Es gibt eine Reihe von Nachteilen: -

  • Abwärtskompatibilität bedeutet, dass in vielen Shops 20, 30 und in einigen Fällen 40 Jahre alte Systeme ausgeführt werden. Während sie gut arbeiten und ihre Geschäftsfunktionen gut ausführen (oder sie würden nicht mehr ausgeführt werden!), Spiegeln sie die Codierungsstile und -obsessionen einer vergangenen Zeit wider.
  • 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, lassen sie sich von einem versteinerten Management nicht anstecken.
  • Mangel an Verfügbarkeit. Solange du nicht dafür bezahlt wirst, an einem dieser Monster zu arbeiten, bekommst du keinen Zugang zu einem. Es kann sogar einen geben, in dem Sie arbeiten, aber wenn Ihre unmittelbare Stellenbeschreibung keine Bearbeitung enthält, erhalten Sie kein Login. In anderen Beiträgen wurde viel über die Emulationssoftware "herecules" gesagt, und sie ist in der Tat ausgezeichnet, jedoch nur für Experten gedacht. 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.
James Anderson
quelle
Dies ist genau das Gleiche wie Fortran, das glänzend und neu ist, mit einer kürzlich überarbeiteten ISO-Norm und einer Objektorientierung, die den Bediener überlastet. Sie können aktualisiert werden, aber irrelevant.
Kaz
2
Warum stellen sie in Bezug auf die Verfügbarkeit keine kleinen Geräte her, auf denen dieselbe Architektur ausgeführt wird? Woher bekomme ich ein 50-Dollar-Board, auf dem Embedded z / OS auf einem kleinen System auf einem Chip ausgeführt wird? Warum nicht?
Kaz
2
Aus dem gleichen Grund können Sie kein aktuelles Betriebssystem für Hercules erhalten. Es gibt viele Mainframe-Anwendungen, bei denen die Arbeitslast gering ist, deren Austausch jedoch zu teuer ist. Sie könnten problemlos auf der gängigen PC-Hardware ausgeführt werden, aber wenn IBM sie zulässt, würden sie Umsatz und Lizenzerlöse auf dem Mainframe verlieren. Kapitalismus wunderbar!
James Anderson
1
Ich hatte im Sommer Anfang der 90er Jahre an Großrechnern gearbeitet. Die Kultur war eine Abkehr für mich. Viele dieser Mainframe-Programmierer wussten nicht, warum oder wie die Dinge funktionieren, und schienen nicht an solchen Dingen interessiert zu sein. Sie verwendeten COBOL85, das solche Konzepte wie lokale Variablen oder irgendetwas in Bezug auf gutes Software-Engineering nicht unterstützte. Es war schwierig, auf detaillierte technische Informationen zu Großrechnern zuzugreifen, da ein Großteil davon aus teuren Handbüchern stammte, die wie heilige Schätze behandelt wurden, die von allen außer einigen wenigen ausgesperrt waren.
Warteschlange für Auszubildende
1

Komischerweise solltest du das fragen. Wir hatten gerade einen Vortrag an der Universität über Mainframes und IBM ist über das Niveau der Mainframe-Entwickler unzufrieden, sodass sie ein Mainframe-Modul an unserer Universität implementieren, uns die Mainframe-Programmierung beibringen und remote auf einen ihrer Mainframes zugreifen.

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

Darren Young
quelle
Das ist echt cool. Schön, dass Sie das auch ausnutzen. Während (die meisten) Leute auf Großrechnern zu sitzen scheinen, wäre es cool, tatsächlich praktische Erfahrungen mit einem zu sammeln!
Jetti
Es ist cool, ab und zu etwas außerhalb des Feldes zu machen, und auch, weil es ein bestimmtes Element der Technologiewelt gibt, in dem es sich befindet, weil Großrechner in den frühen Tagen im Geschäft verwendet wurden ... Ich hoffe, es gefällt Ihnen. Habe Spaß.
Versuch
1

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

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

Warum interessieren sich junge Programmierer nicht dafür? Hier ist meine Einstellung als "junger" Programmierer (ich habe mit 23 Jahren mit diesem System begonnen). Ganz klar, dies ist meine Sichtweise auf das System, an dem ich gearbeitet habe, und auf die 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 Behörden bestimmt. Nichts davon ist hochaktuell.
  • 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 keine frühen Unternehmen.

Sam
quelle
0

Während ich denke, dass es wahrscheinlich eine sehr interessante Arbeit in Mainframes gibt, hätte ich Angst, meine Karriere in diese Richtung zu lenken. Es ist viel zu groß, dass meine Erfahrung nach 10 Jahren unbrauchbar geworden ist und für einen Mainframe-Programmierer keine Arbeit mehr verfügbar ist. Ich möchte mich nicht selbst überflüssig machen, indem ich viel Zeit in einer stagnierenden Technologie mit schrumpfender Installationsbasis verbringe.

MattBelanger
quelle
0

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

Ken Dawson
quelle