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.