Czy nauka języka COBOL nadal ma sens?
Czy nauka języka COBOL nadal ma sens?
Odpowiedzi:
Nie sądzę, chyba że jesteś już na niszowym rynku, na którym COBOL jest nadal utrzymywany.
Nie, oczywiście że nie. W końcu COBOL to martwy język. Albo to jest?
Problem z tym widokiem polega na tym, że programiści w witrynach takich jak ten zwykle pracują z zaawansowanymi technologicznie, szybko działającymi (i równie szybko wypalającymi się) firmami. Dla nich COBOL to martwy język - nigdzie go nie widać. Od jakiegoś czasu nie było - to prawda.
Ale COBOL nie był dla nich przeznaczony. W branży oprogramowania jest coś więcej. Komputery nie zostały wymyślone dla osób z pewną irracjonalną potrzebą ciągłego ulepszania i zastępowania starego nowym. Zostały wykonane w celach biznesowych.
Chcesz zobaczyć COBOL? Idź do firmy, która przetwarza listy płac, zajmuje się przewozem towarów lub wysyłką (jak na statkach) lub obsługuje twoje konto bankowe. Istnieje ogromny, niewidoczny system kodu, który jest praktycznie niewidoczny dla użytkowników, a większość z nich nigdy o tym nie myśli, chociaż napotyka go w ten czy inny sposób na co dzień (bankomaty?)
Nie, nie jest martwy. Ale na pewno jest to „dziedzictwo”… czy tak?
Znowu zależy to, jak na to spojrzysz. W dzisiejszych czasach wiele osób będzie używać Java, C lub czegokolwiek innego zamiast COBOL, przepisując od zera ... naturalnie wprowadzając nowe błędy. To nie znaczy, że COBOL nie ma błędów i dziwactw. Robi tak samo, jak następny język. Oczywiście, że tak. Ale w „czasach COBOL” firmy, które traktowały błędy poważniej niż zwykle (ubezpieczenia, banki), zwykle wytwarzały kod o wyższej jakości za pomocą specjalnych grup usług; dzisiaj są terminy, w których czas i budżet zawsze wygrywają z jakością. Ponadto systemy te były pierwotnie opracowywane przez dłuższy czas w porównaniu do ich odpowiedników.
Jeśli jakieś oprogramowanie działa od ponad 30 lat, gdzie jest motywacja do zmiany? Całe firmy przestały działać, ponieważ zignorowały stare powiedzenie „jeśli nie jest zepsute, nie naprawiaj go”. Wielu próbowało przepisać tę rzecz ... wtedy pierwsze przepisanie kosztowało dużo, potem drugie jeszcze więcej ... i żadna z tych nowych i ulepszonych nie zdołała go zastąpić. Jak powiedziałem, przemysł ten szybko się pali, a także szybko zapominał.
W latach 70. COBOL wkrótce umarł lub wkrótce umrze, C / C ++ będzie rządził. Z drugiej strony na początku lat 80. Pascal przejął władzę. Potem w latach 90. była to Java jako język ...
Pomyśl o Unisys Mapper, dBase, Clipper, Cold Fusion ... czy ludzie to pamiętają? Każdy z nich miał być grabarzem dla COBOL.
Biorąc to pod uwagę oraz fakt, że doskonale nadaje się do przetwarzania dużych ilości transakcji, przetwarzania wsadowego lub przetwarzania zorientowanego na rejestrowanie / transakcje oraz że można skompilować (bez błędów) podprogram napisany 30 lat jako zarządzany kod COBOL i wywoływanie z zarządzanego COBOL.NET, jeśli ktoś chce korzystać z Windows i .NET, mam problem ze znalezieniem odpowiedniego zamiennika. (Mam również problemy ze znalezieniem technologii Microsoft, która przetrwałaby ponad dekadę).
Tak, dzisiaj powstaje nowy kod COBOL. Trzeba tylko wiedzieć, gdzie szukać.
Dla tych, którzy śmieją się z COBOL, IMHO, to jest jak śmiać się z egipskich piramid, są tam od 5000 lat i nadal będą tam w ciągu następnych 5000 lat, podczas gdy dzisiejsze „cześć światu” mieszkania wymagające 24 elementów sterujących zostaną usunięte, zastąpiony, zapomniany w przyszłym miesiącu.
Gdzie więc są ci wszyscy programiści COBOL?
Ach, bo tu jest otarcie. Chodzi o to, że wiele z nich nie ma żadnego doświadczenia w informatyce. Wielu z nich nie jest profesjonalnymi programistami (jak w przypadku absolwentów szkół wyższych z programu CS / SE). W przeważającej części są to ludzie w późnych latach 30-tych, 50-tych, ze wszystkich dziedzin specjalizacji, przeszkoleni w całości przez firmę specjalnie do tego zadania. Nie są więc „programistami COBOL” - szkolenie, które odbyli, jest specyficzne dla firmy, która tak mocno promuje od wewnątrz. A to czyni je prawie niewidocznymi.
Jeśli widzisz siebie jako programistę COBOL, to idź do niego. W języku COBOL wciąż są miliardy linii, które wymagają konserwacji.
W rzeczywistości nie ma czegoś takiego jak niepotrzebna wiedza, więc poszerz wiedzę i poszerz możliwości, które będziesz miał.
Czy uczenie się ma sens?
Cóż, jest to nisza i jest mnóstwo działającego, starszego kodu, który należy utrzymać i nie można go po prostu przepisać. Tak więc, chociaż tak naprawdę nie jest to opcja dla ogromnej rzeszy wszystkich programistów, jest to perspektywa stałego dochodu dla osób fizycznych.
Jeśli jednak chcesz tworzyć nowe rozwiązania, zamiast powoli ulepszać te, które istnieją od dziesięcioleci, COBOL prawdopodobnie nie jest właściwym językiem.
Wiele europejskich firm nadal polega w dużej mierze na komputerach mainframe działających jak programy z / vse i cobol. Istnieje zapotrzebowanie na wykwalifikowanych programistów cobol, których nikt nie sądzi, że rynek się zapełni, co bardzo podnosi pensję.
Pytanie powinno brzmieć: „Czy kiedykolwiek opracuję coś nowego za pomocą kobolu?” ponieważ prawie wszystko polega na konserwacji lub odmianach istniejących rzeczy o kluczowym znaczeniu.
Pracowałem dla IBM, gdzie codziennie pisano kod COBOL i PL / I. Również od dużych firm polegających na komputerach mainframe IBM, takich jak wiele banków, które wymagają tysięcy transakcji na sekundę, te języki są nadal bardzo popularne.
Jeśli nie chcesz pracować w takim miejscu (dlatego właśnie pracowałem tam przez 6 miesięcy), to nawet nie myśl o nauce tych języków.
Codziennie piszemy nowy kod Cobola i stale poszukujemy nowych programistów. Podaż jest tutaj zbyt mała.
Jeśli chcesz mieć pracę jako programista COBOL, to pewnie, śmiało i naucz się tego.
Z jakiegokolwiek innego powodu, takiego jak próba nauczenia się czegoś przydatnego, co może pomóc w nowoczesnych technikach programowania, nie, nie przejmuj się.
W 2000 roku przeczytałem statystyki, że napisano więcej wierszy języka COBOL niż wszystkie inne języki łącznie.
Dodaj do tego gwarancję IBM, że dowolna talia TEXT (kod obiektowy) skompilowana w dowolnym systemie MVS jest wykonywalna na wszystkich swoich systemach MVS i masz gwarancję, że programowanie w języku COBOL będzie trwało tak długo, jak świeci słońce.
Mogę powiedzieć, jak się tego nauczyłem:
byłem zatrudniony do pracy z nim, nie mając pojęcia, o co chodzi, i nie miałem trudności z nauką tego z dnia na dzień.
Jeśli potrzebujesz, możesz się tego nauczyć. Nie musisz przeciążać się bezużyteczną wiedzą. Nie ma w tym nic ciekawego ani jego zaangażowania, chyba że naprawdę tego potrzebujesz.
Ogólna odpowiedź: poznaj zasady kodowania, a nie ich konkretne implementacje (takie jak języki itp.)
Nie spędzałbym nad tym czasu.
W każdym razie COBOL jest elementem składowym wielu starszych aplikacji, które mają kluczowe znaczenie dla kilku dużych firm, które powstały 20-30 lat temu.
Jeśli więc jesteś zatrudniony w firmie, która ma część swojej podstawowej działalności w COBOL, istnieje szansa, że musisz zacząć ją uczyć.
Naucz się tego, jeśli mimo wszystko lubisz wiedzieć, jak rzeczy działają (lub przywykły do pracy), nie może być złą rzeczą.
Odradzam jednak nadmierne podkreślanie swoich umiejętności COBOL w swoim CV.
W niektórych miejscach (na przykład w Dolinie Krzemowej, w której mieszkam) posiadanie COBOL w twoim CV będzie zobowiązaniem. Jasne, możesz znaleźć miejsce tu i tam, które potrzebuje twojej wiedzy, w takim przypadku śmiało i reklamuj ją w tych miejscach . Ale ogólnie wyświadcz sobie przysługę i zapomnij wspomnieć, że znasz COBOL.
Więc tak, naucz się tego, jeśli jesteś ciekawy, po prostu nikomu nie mów.
Może nie jest to warte z punktu widzenia rynku pracy, ale możesz rzucić okiem na to, aby poczuć, jak wszystko zostało zrobione „w dobrym dniu”. ^^
Z osobistego punktu widzenia powiedziałbym, że najpierw są lepsze rzeczy do nauczenia się. Jednak wiele dużych firm ma bardzo duże inwestycje w bazę kodu COBOL, których prawdopodobnie nigdy nie będą w stanie zostawić za sobą, tworząc dla programistów COBOL branżę do utrzymywania bazy kodu i pisania nowego kodu. Firma, dla której pracuję, jest dużą firmą finansową, a nasz podział technologiczny dla programistów wynosi około 30% COBOL, 40% Java i 30% C #.
Właśnie szukałem słowa „cobol” na największej stronie pracy w Australii. Zwróciło 87 wyników i (po szybkim przejrzeniu) najczęściej wydają się być starszymi pozycjami utrzymaniowymi w bankach i instytucjach finansowych. Wyraźnie lepiej płatne niż bardziej „nowoczesne” prace oparte na języku - prawdopodobnie ze względu na rzadkie doświadczenie Cobol.
Więc tak, wygląda na to, że Cobol byłby warty nauki, jeśli 1) nie masz nic przeciwko robieniu starszej konserwacji i 2) chcesz dostać się do niszy, która jest dobrze płatna i prawdopodobnie mało konkurencyjna, ponieważ jest to coś, czego mało się uczy.
(Zakładam, że rynek Cobol byłby podobny w większości gospodarek Pierwszego Świata, ale może się mylić?)
Pomyśl o rodzajach domen problemowych, w których chcesz pracować. Zazwyczaj domeny te mają zestaw języków, które są zwykle używane do tego celu. Jeśli COBOL pasuje do tego, to śmiało.
Nie ma sposobu, bym dotknął kobola lub domen problemowych, które używają go mocno za pomocą 10-metrowego słupa. Wolałbym przerzucać burgery.
Zastanów się także, czy język oferuje pewne ulepszenia / umiejętności programowania. Nie mogę wymyślić niczego, co COBOL może zrobić / wdrożyć / funkcje, które nie zostałyby wykonane lepiej lub mogą być lepiej zademonstrowane w innym języku.
Ty i inni możecie czuć się inaczej.
Wciąż istnieje wiele starszych systemów napisanych w języku COBOL. Niezależnie od tego, czy chcesz je zachować, czy przenieść na inne języki programowania, nadal warto nauczyć się języka COBOL.
Niezależnie od tego, co to jest, pewna znajomość wielu języków programowania będzie dodatkowym atutem, ponieważ posiadana wiedza pozwala wybrać język programowania lub podejście do różnych potrzeb projektu. Możesz wykorzystać swoją wiedzę w językach programowania, aby tworzyć lepsze, czystsze i wydajniejsze kody oraz unikać pułapek.