Czy COBOL nadal jest wart nauki? [Zamknięte]


23

Czy nauka języka COBOL nadal ma sens?


9
Będzie to około 9990, nie jestem pewien, czy żyjesz tak długo.
Toon Krijthe,

4
@Gamecat --- Tylko wtedy, gdy problem Y10K nie zostanie rozwiązany przez nie-leniwe firmy lub osoby, prawda ?!
Mark C,

2
Pamiętaj, że sam COBOL nie zaprowadzi cię daleko. Musisz nauczyć się stosu systemu operacyjnego, z którym chcesz pracować. Na przykład na komputerach IBM, oprócz COBOL, potrzebujesz VSAM, MVS lub Z, CICS, ISPF, mogą to być IMS i ISPF, Panvalet / Easytrieve, JCL.
NoChance

2
cobol.com wygląda naprawdę jak Web 2.0 i oddaje ekspres do kawy! Jeśli to nie jest nowoczesne i pragmatyczne i wstawisz modne hasło , to nie wiem co.
Raphael R.

Możesz uzyskać stały dochód, jeśli dobrze sobie z nim poradzisz i znajdziesz sklep COBOL.

Odpowiedzi:


26

Nie sądzę, chyba że jesteś już na niszowym rynku, na którym COBOL jest nadal utrzymywany.


13
70% istniejącej infrastruktury działa w języku COBOL. Od przesuwania karty debetowej w bankomacie, przez rezerwację samolotu online, a nawet kierowanie rozmowy telefonicznej. Wszystkie działają na COBOL (lub w znacznym stopniu od niego zależą). Nie jest to niszowa ani starsza wersja środowiska. Większość tych systemów działa prawie nieprzerwanie i dobrze przez dziesięciolecia (znacznie lepsze wyniki niż w przypadku Javy i .NET), a liczba programistów COBOL spada. Chcesz zrobić dużo $$$? Ustaw się na ogromny niedobór COBOL, który ma wystąpić za około dekadę.
luis.espinal

14
@ luis.espinal: nie, to powszechny mit, a 70% procent nie jest już prawdą. Wykorzystanie COBOL-u stale maleje i ostatecznie się go pozbędziemy. I ... COBOL bierze udział w routingu połączeń telefonicznych? Nie wydaje mi się Być może w rozliczeniach połączeń telefonicznych, ale nawet tam jest mało prawdopodobne w dzisiejszych czasach.
Wizard79

6
@Lorenzo - 70% mit? Nie jesteś zaangażowany w telekomunikację? Czy możesz poprzeć te roszczenia? Nie liczymy nawet jego zaangażowania w wysyłkę (dziesiątki K kontenerów / rok), ani w branży opieki zdrowotnej. Nie wiem, jak tam pracujesz, ale tutaj, w Ameryce Północnej (i wielu innych miejscach), COBOL istnieje w dużych ilościach i działa dobrze . Dlaczego ktoś miałby ryzykować przy przepisywaniu czegoś, co działa i które ma kluczowe znaczenie dla misji ? Chciałbym fantazjować, że przepiszę wszystko w Javie lub C ++, ale jest fantazja, inżynieria oprogramowania i ekonomia oprogramowania.
luis.espinal

9
@ luis.espinal: ponieważ pracowałem w branży telekomunikacyjnej, wiem na pewno, że urządzenia centrali telefonicznej nie używają COBOL ... są oparte na dedykowanym sprzęcie i oprogramowaniu układowym. Niektóre firmy nadal używają COBOL do rozliczeń i księgowości, ale nowe (np. Operatorzy komórkowi) polegają nawet na różnych technologiach. Przełączanie trwa.
Wizard79

8
@ luis.espinal: mój szwagier pracuje dla dużej firmy telekomunikacyjnej, pisząc oprogramowanie dla nowych przełączników. Absolutnie pozytywnie gwarantuję, że NIE używa COBOL!
Bob Jarvis - Przywróć Monikę

36

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.


9
Posiadanie sposobu myślenia iPhone / Desktop / Web 2.0 to dobry sposób na zapomnienie o ogromie świata komputerów.
Paul Nathan

8
Gdzie więc są ci wszyscy programiści COBOL? Prowadzenie taksówek.
johnc

1
@johnc - skąd to masz? 70% istniejącej infrastruktury działa w języku COBOL, a programistów COBOL brakuje. Trudno byłoby znaleźć pracę, gdybyś znał COBOL już w czasach dot-com (rozmawiamy już dekadę). Ale teraz??? Człowieku, COBOL będzie bardzo poszukiwany za około dekadę ze względu na krytyczność tych systemów i brak programistów, którzy wiedzą (lub są wystarczająco inteligentni, aby zaryzykować) współpracę z COBOL.
luis.espinal

2
@ luis.espinal Jestem całkowicie (i boleśnie) świadomy problemów, przed którymi stoimy z powodu braku programistów COBOL, jednak mój komentarz został wypowiedzony, nieco niepoważnie, z doświadczenia. Przynajmniej w Australii prawie każdy taksówkarz, którego spotkałem w ostatnim dziesięcioleciu, który nie był nowym imigrantem (a być może niektórzy z nich), byłym programistą COBOL. Być może zbieg okoliczności i mówię, że to nie czyni osobistej oceny kierowców taksówek, imigrantów lub deweloperów COBOL. To po prostu obserwacja.
johnc

2
@ johnc - Nie wątpię w twoje słowo, ale uważam, że obserwacja ta jest wyjątkowo trudna do uwierzenia.
Wież

16

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ł.


1
Biorąc pod uwagę, że nie ma czegoś takiego jak niepotrzebna wiedza, wyznaczam Intercal na kolejny język, którego się uczysz!
Tikhon Jelvis

@TikhonJelvis: Zbyt łatwe, zdecydowanie zbyt łatwe. Malbolge jest tym, czego szukasz.
Mag

15

COBOL

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.


8

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.


5

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.


Praca nad kręgosłupem gospodarki, obsługa tego rodzaju ruchu, z pewnością dla wielu byłaby postrzegana jako dobre możliwości inżynieryjne i biznesowe.
luis.espinal

5

Codziennie piszemy nowy kod Cobola i stale poszukujemy nowych programistów. Podaż jest tutaj zbyt mała.


5
To jest naprawdę przerażające, ale interesujące. Nigdy nie spotkałem prawdziwego programisty cobol na żywo (i nie jestem wiosennym kurczakiem)
Tim

3
Dlaczego straszny? Prawdopodobnie nigdy nie spotkałeś programisty Lisp ...

@Tim Jest facet z MicroFocus, który pisze artykuły o Code Project - wszystko w COBOL ... dla .NET! To naprawdę dziwne, że COBOL jest aktualizowany o bardziej nowoczesne technologie.
MetalMikester

2
@Thorbjorn - Kiedyś kodowałem w lisp i znam programistów lisp. Być może jestem po prostu ignorantem i stronniczością, ale to, co wiem o kobolu, nie skłania mnie do myślenia o tworzeniu WIĘCEJ kodu w tym języku.
Tim

1
Lisp jest używany do ciekawych projektów i sam w sobie jest interesującym językiem. Podobnie jak C ++, Ruby on Rails, Smalltalk i Haskell. Cobol służy do nudnych aplikacji biznesowych i jest interesujący tylko dla osób, które muszą tworzyć do niego kompilatory i narzędzia. Zasadniczo fajne dzieci nie używają Cobola, a ja używam „fajnego” tak luźno, że mnie obejmuje. Musisz udać się do różnych miejsc, takich jak szkoła biznesu, aby znaleźć ludzi Cobol.
David Thornley,

4

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ę.


IMO, nowoczesne techniki programowania mają niewiele wspólnego z językami programowania, a więcej z metodologią oprogramowania. Są programiści, którzy nie widzieli niczego poza językami OO w życiu spadkobierców, a jednak nie potrafią opisać, jak wygląda dobry projekt OO. Dobre zasady programowania i inżynierii oprogramowania wykraczają poza języki programowania. Wyobrażam sobie, że młody programista z przyzwoitymi umiejętnościami będzie miał lepsze doświadczenie w nauce inżynierii oprogramowania, radząc sobie z brakującym kluczowym dziedzictwem „proceduralnym” niż kolejna warstwa skorupy proceduralnej napisanej w Javie (jestem programistą Java btw.)
luis.espinal

3

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.


6
Jeśli pomyślisz o tym, jak pełen jest COBOL, nic dziwnego ;-).
Oliver Weiler

3

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.)


2

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ć.


Lubić? (15 znaków)
TheLQ

@ Banki lub firmy ubezpieczeniowe TheLQ rozpoczęły 20-30 lat temu swoje podstawy oprogramowania w języku COBOL.
systempuntoout

2

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.


1

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”. ^^


Myślę, że jedynym czasem, gdy rynek był niekorzystny dla COBOL, była apokalipsa dot-com z e-hype i wszystkim.
luis.espinal

1

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 #.


2
w stanie, tak, ale dlaczego - działający kod to działający kod.

0

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ć?)


Nawet bankowość / ubezpieczenia / PA powoli ewoluują w kierunku bardziej nowoczesnych technologii. Zatem wejście do tej niszy może być dobre, ale co się stanie, gdy w końcu zniknie cały starszy kod i rynek niszowy?
Wizard79

@Lorenzo: Cóż, można to powiedzieć o każdej specjalizacji w naszej dziedzinie (nawet wszystkich dziedzinach w ogóle). Ponowne szkolenie. na przykład. Kierowcy lokomotyw parowych musieli przekwalifikować się i zostać kierowcami lokomotyw spalinowych lub elektrycznych itp. :)
Tabele Bobby

Ale COBOL jest już niszą ... Chodzi o to, że jeśli teraz przyjmiesz COBOL, prawdopodobnie będziesz musiał ponownie trenować wcześniej niż inne technologie.
Wizard79

1
@Lorenzo - Nie, nie bardzo. Fakt, że nie są głównym nurtem w cs univ., Nie czyni ich automatycznie niszowymi. Oznacza to po prostu, że nie poruszasz się w kręgach, w których je spotkasz. Ilu pracowników, którzy pracują przy produkcji linii samochodowych, znasz? Architekci marynarki wojennej? Piloci samolotów? Myślisz, że one też są niszowe? (a także w obu tych przykładowych kategoriach będziesz mieć problemy ze znalezieniem ofert pracy). Trzeba wiedzieć, gdzie szukać.
Rook

1
@Lorenzo - czy naprawdę wierzysz, że cały kod COBOL i FORTRAN i baza wiedzy zostaną ostatecznie przepisane? To znaczy poważnie. Nigdy nie spotkałem nikogo w branży i środowisku akademickim, który uważa, że ​​coś takiego jest możliwe, a tym bardziej pożądane . Choć brzydko wygląda COBOL (reakcja subiektywna), systemy te działają dobrze, znacznie lepiej niż e-bzdury, które budowaliśmy od czasów dot-com. To świadectwo jakości przemysłowej. Lepszą inżynierią i ekonomią jest utrzymywanie tych systemów niż ich przepisywanie (przy założeniu zerowego ryzyka i nieskończonych zasobów ekonomicznych.)
luis.spinal

0

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.


0

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.


W latach 2004–2005 uczestniczyłem w projekcie modernizacji marynarki wojennej w moim kraju, przenosząc około 200KSLOC Ada83 na Ada95 i około 25KSLOC COBOL68 i COBOL74 na Ada95. Nauczyłem się języka COBOL w 1987 roku i zdecydowanie warto poświęcić czas i wysiłek na naukę języka COBOL. Nie mogłem sobie wyobrazić, gdybym nie miał wcześniejszej wiedzy o języku COBOL.
Adrian Hoe
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.