Jedna z moich pierwszych wakacyjnych prac jako programista była w dużej mierze oparta na skrobaniu zielonych ekranów i plików PRN. Wtedy prawdopodobnie nie miałbym nic przeciwko zabrudzeniu rąk w języku COBOL (to znaczy, gdyby zaufali mi wystarczająco jako student, aby wpuścić mnie do tego kodu), ale nie jestem pewien, czy czułbym się tak samo z ta sama perspektywa dzisiaj.
Nie sądzę, aby problem dotyczył komputerów mainframe per se. To obsesja naszej branży (często uzasadniona) obsesją na punkcie tego, co nowe i lśniące.
Spójrz na C. C jest oczywiście niezwykle ważnym językiem. Prawie cały kod osadzony i większość systemów operacyjnych są napisane w języku C. W najbliższym czasie nigdzie się to nie pojawi. A jednak coraz trudniej jest znaleźć programistów C. Szybki podgląd na stronie znacznika Przepełnienie stosu powoduje, że ma on 1/6 rozmiaru [c#]
i 1/4 rozmiaru [java]
. Czy ktoś pamięta, kiedy C był zasadniczo dominującym językiem, prawdopodobnie jedyną grą w mieście?
Programiści uwielbiają potężne narzędzia. Może dlatego, że (ALERT SPECYFIKACJI) większość programistów to ludzie. Dajesz programiście Java lub .NET zadanie, powiedzmy, skopiowania pliku, a wielu, jeśli nie większość, nadal zdecyduje się napisać go w Javie lub C # zamiast pisać plik wsadowy DOS lub skrypt powłoki * nix, który byłby 50 razy szybsze pisanie i wdrażanie. Po co używać wędki i kołowrotka, aby złapać rybę, gdy masz gigantyczną wysuwaną siatkę, która może złapać 500 ryb?
Tak, COBOL i PL / I są stare , ale podobnie jak Pascal, i wciąż żyje i kopie w formie Delphi. Niechęć do tych pierwszych prawdopodobnie wynika z faktu, że te języki są nieporęczne w porównaniu do nowoczesnych narzędzi. Orientacja obiektowa jest wciąż stosunkowo nową koncepcją w świecie COBOL (nacisk na względnie ), ale w świecie C # LINQ i generics a AJAX przestały być rewolucyjne lata temu. Poproszenie programisty przyzwyczajonego do tych narzędzi o rozpoczęcie programowania na komputerach mainframe jest jak poproszenie muzyka rockowego o rozpoczęcie gry na banjo.
Oczywiście istnieje również problem samonapędzającego się stereotypu. Dopóki młodzi programiści uwierzyć , że nie ma nic dla nich w mainframe (czy nie jest prawdą), to każda młoda programiści, którzy nie zdecydowali się pójść w to skończyć spędzać większość swoich dni wśród ludzi wiele starsza. Początkowo IT nie jest zbyt atrakcyjnym społecznie zawodem, ale dodatkowy czynnik zniechęcający do różnic pokoleniowych sprawia, że jest on niższy niż próg bólu wielu ludzi. Bez obrazy - osobiście większość życia spędziłem pracując z ludźmi o wiele starszymi, ale nie wszyscy mają to pochodzenie lub zdolności.
Wreszcie, większość programistów nie lubi prac konserwacyjnych, a prawie wszystkie prace na komputerach mainframe to konserwacja. W PL / I nie ma dużo nowego oprogramowania. Każde zadanie, które jest zdefiniowane w całości lub w dużej mierze wokół kodu konserwacji, automatycznie zaczyna się od wyniku negatywnego.
Tam są pozytywy do pracy na starszych kod ( „Legacy” obejmujących systemy komputerowe i wiele innych rzeczy), co będzie potrzebne do gry, jeśli starasz się przyciągnąć młodszą publiczność:
Systemy są, jak mówisz, infrastrukturą krytyczną. Młodsi programiści, przynajmniej w świecie biznesu (nie Google / Microsoft), często nie mają szans na wywarcie realnego wpływu . Praca w systemie, o którym wiesz, że zostanie porzucona lub zastąpiona po kilku miesiącach lub latach, jest przygnębiająca. Aplikacje na komputery mainframe, które działają już od 50 lat, prawdopodobnie będą działać o wiele dłużej, ponieważ firmy nie mają sensu ich odbudowywać, więc praca, którą w nich wykonujesz, jest tak naprawdę ważna dla wielu ludzi.
Jeśli jesteś jednym z tych nielicznych firm, które faktycznie nie mają skłonność do „upgrade”, wtedy dużo programistów, zarówno młodych i starych, będą przyciągane przez to szansę, bo wtedy są bliźniacze możliwości pracy na znaczeniu krytycznym kodu i aby wygiąć niektóre z mięśni C # / Java. Oczywiście żadna rozsądna firma nie po prostu złomowałaby komputera mainframe i odbudowy od zera, ale widziałem systemy, które (na przykład) mają rdzeń COBOL, który integruje się ze składnikami Java.
Wreszcie, jest niezbędna - przynajmniej tak, jak my postrzegamy to osoby z zewnątrz. Gdy cały Twój kod znajduje się w .NET, zawsze istnieje ryzyko, że właściciele zamienią Cię na świeżego absolwenta college'u lub gorzej, na morski zespół, w nieudanej próbie obniżenia kosztów. Nie sądzę, że zdarza się to często w świecie komputerów mainframe, szczególnie jeśli to, co mówisz, jest prawdą, a podaż wydaje się maleć. Oczywiście ten punkt jest dyskusyjny, jeśli nie płacisz wystarczająco dobrze; wynagrodzenia muszą być dostosowane, aby odzwierciedlić malejącą podaż, w przeciwnym razie ludzie nie będą „sprzedawać”.
Jestem pewien, że jest wielu młodych programistów, którzy nie odrzuciliby rozsądnie hojnej oferty firmy, która wydawała się starać, aby środowisko pracy było atrakcyjne dla młodszych pracowników. Ale jeśli chcesz do nich dotrzeć, rozsądnie byłoby wykorzystać swoje mocne strony, a być może będziesz musiał rozpocząć marketing; mamy tendencję do postrzegania komputerów mainframe jako innego i bardzo obcego świata i jestem prawie pewien, że nie widziałem was na targach pracy w kampusie 10 lat temu, pracujących nad zmianą tego postrzegania.
Sprowadzając się do jednego zdania: nic nie powoduje, że komputery mainframe są nieatrakcyjne , po prostu nic też nie czyni ich atrakcyjnymi , co stawia ich w bardzo niekorzystnej sytuacji w porównaniu z przełomem, który oferuje nam ogromne zwiększenie wydajności i bezpłatne napoje bezalkoholowe.