Czy istnieją inne powody do używania języka COBOL niż w przypadku starszego oprogramowania?

11

COBOL jest nadal (w dużym stopniu?) Wykorzystywany do obliczeń finansowych. Jest to stary język i większość programistów AFAIK nienawidzi, a przynajmniej nie lubi, COBOL. Rodzi to pytanie: czy jest to jedyny powód, dla którego COBOL jest nadal używany, ponieważ korzysta z niego starsze oprogramowanie, czy też ma on jakąkolwiek rzeczywistą przewagę nad innymi językami programowania?

Po prostu ciekawy.

Anto
źródło
3
Stare nie jest samo w sobie powodem.
Nie, ale najprawdopodobniej nie ma z tego powodu nowoczesnych funkcji. Nie jest to jednak tak ważne, jeśli język jest dobrze zaprojektowany.
Anto
Nadal często używany w rządzie, nie tylko w bankowości.
BBlake,
6
„większość programistów nienawidzi języka COBOL” - cóż, jestem prawie pewien, że większość programistów też go nie używała. Byłbym zaskoczony, gdyby ponad 5% tych „hejterów” miało pojęcie o składni lub formie. Po prostu używają go jako przykładu zła starszych systemów, tak naprawdę nie wiedząc, co się dzieje. Podobnie jak często uważa się FORTRAN.
TZHX,
@TZHX: Cały cytat powinien jednak brzmieć: „AFAIK większość programistów nienawidzi, a przynajmniej nie lubi, COBOL”. Nie twierdzę, że tak jest , po prostu zinterpretowałem sytuację. Ale to, co mówisz, może być prawdą, ale nie wiem wystarczająco dobrze, aby cokolwiek powiedzieć, wszystko, czego użyłem, to osobiste obserwacje opinii ludzi (które mogą cierpieć z powodu dokładnie tego, co powiedziałeś).
Anto

Odpowiedzi:

12

Obecnie jest to głównie dziedzictwo. Wiele krytycznych systemów biznesowych jest nadal w języku COBOL tylko dlatego, że są tak duże i zintegrowane, że koszt przepisywania nie wydaje się tego wart. Napisanie nowego systemu w języku COBOL prawdopodobnie nie jest już wykonalne, ponieważ większość programistów w języku COBOL jest tak rzadka, że ​​mogą zdobyć znaczną ilość pieniędzy na specjalistyczną umiejętność (podobnie jak obecnie twórca Foxpro). Istnieje kilka powodów, dla których nie ma żadnej aplikacji COBOL, ale niestety powszechne jest to, że aplikacja COBOL jest już zainstalowana, zaufana i ściśle powiązana z innymi systemami, których zastąpienie jest prawie niemożliwe. Właśnie z tego powodu należy go wymienić, zanim dojdzie do sytuacji, w której jedyny sprzęt, na którym działa aplikacja, musi być zbudowany na zamówienie z części Ebay z lat 80. / 90.

Ryan Hayes
źródło
Co sprawia, że ​​mówisz „Teraz jest to głównie dziedzictwo”? Nie sądzę, żebyś naprawdę wiedział o czym mówisz. Obecnie pracuję nad nowym projektem COBOL o wartości wielu milionów dolarów. Znam także kilka innych bardzo dużych nowych projektów programistycznych, w których głównym językiem implementacyjnym jest COBOL. Myślenie życzeniowe z twojej strony nie urzeczywistnia się.
NealB
1
Nie bierz tego ode mnie. Badania O'Reilley wskazują, że sprzedaż książek Cobola jest prawie nieobecna w porównaniu z każdym innym językiem. Jest to spowodowane brakiem zainteresowania programistami lub zbyt małą liczbą programistów korzystających z niego. Jestem pewien, że możesz znaleźć nowe opracowanie za pomocą COBOL, ale wciąż jest to NAJBARDZIEJ spuścizna (nie cała spuścizna). Jestem pewien, że ktoś taki jak ty, który specjalizuje się w języku COBOL, miałby kontakty z innymi ludźmi, którzy również używają tylko języka COBOL. Tak jak by to było ze mną, tylko posiadanie przyjaciół, którzy używają jednego języka, nie oznacza, że ​​nie jestem mniejszością.
Ryan Hayes
W naszej firmie kopiujemy / wklejamy istniejący kod, dostosowujemy go do naszych potrzeb i mówimy „gotowe”. Na szczęście mam możliwość rozwoju w C # / VB
Wayne Werner
4

COBOL jest nadal (w dużym stopniu?) Wykorzystywany do obliczeń finansowych.

Czy to jest

To zależy od tego, co nazywasz informatyką finansową. Jeśli wywołasz cały kod prowadzony przez instytucje finansowe tak, prawdopodobnie tak jest. Większość z nich ma reguły biznesowe napisane w latach 60. i 70. Ryzyko i koszt aktualizacji takich systemów do nowego środowiska nie jest tego warte. Wątpię, aby ktokolwiek pisał nowy kod COBOL. Istnieją dziś kompilatory COBOL, które integrują się na przykład ze stosem .NET. Często istnieją narzędzia do integracji i wykorzystywania starszych aplikacji w nowoczesnych stosach oprogramowania, ale narzędzia te są często nieznane osobom, które nie muszą ich używać, ponieważ jest to bardzo niszowy rynek.

Teraz, jeśli nazywasz obliczenia finansowe czymś bardziej podobnym do oprogramowania do finansów ilościowych, nigdy nie słyszałem o kimś, kto używa COBOL. C ++ jest znacznie bardziej popularny, podobnie jak niektóre niszowe języki, takie jak k, pochodna APL.

Vitor Py
źródło
ka potomkiem qjest taki ból
Andrey
@Andrey To kwestia gustu. Podoba mi się to.
Vitor Py
jesteś szczęściarzem. Jednym z największych problemów dla mnie jest brak normalnego IDE i niepotrzebnych komunikatów o błędach
Andrey
2
@Andrey Tak, odejście od głównego środowiska programistycznego jest największym problemem podczas korzystania z języków niszowych. Zwykle robiłem szablonowy kod C ++ przed jego użyciem, więc jestem przyzwyczajony do niepotrzebnych komunikatów o błędach :)
Vitor Py
@Andrey, IBM ma narzędzia Cobol oparte na Eclipse.
4

COBOL widzi teraz głównie starsze zastosowania. Baza użytkowników powoli maleje z powodu ścierania, ponieważ żadne nowe aplikacje nie są pisane, a stare powoli, ale z pewnością są wycofywane.

Większość systemów COBOL, które można szybko i tanio wymienić, została już wymieniona. Te, które nie, wciąż stają się coraz droższe w naprawie lub wymianie, ale tańsze i tańsze w utrzymaniu w stosunku do nowszych systemów - działają dobrze na taniej, przestarzałym sprzęcie i po wielu latach eksploatacji nie są już pokazuje nowe błędy. Większość błędów albo została naprawiona, albo ma długie tradycje, które pasują do obejścia. Utrzymanie zwykle ograniczono do jednego lub dwóch wyspecjalizowanych pracowników, którzy po długim czasie pracy nad systemem znają go bardziej szczegółowo, niż można sobie wyobrazić.

Nawet z technicznego punktu widzenia zwykle istnieją uzasadnione powody, aby zachować stare systemy. Są względnie stabilne, zostały w większości naprawione i są dobrze znane / rozumiane przez użytkownika końcowego.

W końcu zobaczysz, że system został zastąpiony. Zazwyczaj ten ruch pochodzi z biznesowej strony rzeczy:

  • Użytkownicy obecnego systemu są zastępowani przez młodszych użytkowników, których nie można przekonać do nauki korzystania z archaicznego interfejsu
  • Firma nie może znaleźć nikogo, kto mógłby zatrudnić do utrzymania systemu za wynagrodzenie, które nie jest oburzające w porównaniu z wynagrodzeniem innych pracowników
  • Ktoś z dużym budżetem wstydzi się, gdy dowiaduje się, że podstawowy system firmy działa na sprzęcie, który można zastąpić maszyną wirtualną na laptopie
  • Pojawia się nowy system towarowy, którego rozpoczęcie użytkowania jest naprawdę bardzo tanie
  • Firma korzystająca ze starszych systemów zostaje przejęta, bankrutuje lub w inny sposób przestaje istnieć
  • Kluczowej części nowej, pilnie wymaganej funkcjonalności, nie można tanio zmusić do interakcji ze starszym systemem
Blueberryfields
źródło
2
Jakie jest twoje tło, by być tak pewnym?
Mogę z całą stanowczością stwierdzić, że Twoja pewność jest niewłaściwa - mamy kilku młodszych (20–30 lat) nowych pracowników piszących nowy kod Cobol (aktualizujących i / lub kopiujących i modyfikujących istniejące systemy) oraz co najmniej 10% z naszych ~ 200 programistów, którzy spędzają ponad 80% swojego czasu rozwoju w Cobolu. Myślę, że przekonasz się, że większość miejsc korzystających z Cobola jest dokładnie przeciwna do tego, co opisujesz.
Wayne Werner
4

zastanawiam się, co rozumiesz przez „większość programistów”. Pracuję w dużym sklepie IT na tym samym piętrze co programiści cobol, programiści Java, programiści .NET (w liczbie pojedynczej), programiści VB w starym stylu. Nie ma nienawiści ani niechęci. cobol jest językiem, jak każdy inny język programowania - ludzie, którzy programują w cobol, robią to, ponieważ jest to dla nich praca, podobnie jak programowanie w Javie lub prowadzenie ciężarówki. W przeciwieństwie do popularnej koncepcji w Stanach Zjednoczonych, wciąż pisze się dużo kobolu, tylko większość z nich znajduje się w Indiach, gdzie każdego dnia rozpoczynają pracę nowi programiści Cobola.

Myślę, że powodem, dla którego nie napisano zbyt wielu nowych systemów sieciowych w Cobolu, jest to, że systemy, dla których Cobol jest odpowiedni (przetwarzanie dużych plików) są już napisane. Obecnie powstaje bardzo niewiele nowych dużych korporacji. A tymi, którzy to robią, mogą być outsourcingowanie takich rzeczy, jak płace i świadczenia dla firm, które prowadzą starsze systemy koboli.


źródło
2

Duża część kodu podstawowego w PeopleSoft jest napisana w języku COBOL.

bit-twiddler
źródło
Z rozmowy z przedstawicielami PeopleSoft na konferencji IT w 2004 r., Zanim Oracle je nabył, rozumiem, że w tym czasie był to tylko jeden moduł produktu w języku COBOL.
Kennah
W jaki sposób daje to przewagę COBOL nad innymi językami?
Matthieu
2

Z 20-letnim doświadczeniem w COBOL, na trzech różnych komputerach mainframe, moim skromnym zdaniem jest niewielu prawdziwych programistów COBOL, a zamiast tego są programiści IBM, programiści Sperry (Unisys 2200), programiści Burroughs (Unisys MCP) i Tandem (HP NonStop) programiści. Wykazując ich szacunek, muszę również wspomnieć o obecności programistów HP 3000, programistów BULL i programistów DEC.

COBOL działa głównie na dużych żelaznych skrzyniach. Być może jedynymi prawdziwymi programistami w języku COBOL, według moich własnych standardów, są ci, którzy piszą w języku UNIX. Wow, zamierzam o tym usłyszeć.

Ponieważ sprzęt jest najważniejszy, większość programistów piszących w języku COBOL identyfikuje się na podstawie sprzętu, na którym działa kod, który piszą. Przez lata, słuchając innych programistów opowiadających mi o zaletach Sperry, Burroughs lub Tandem, często zastanawiałem się, jaki rodzaj wojny miałby miejsce, gdybym ich zaokrąglił i umieścił w pokoju niezdolnym do opuszczenia, dopóki nie uzgodniono jedną platformę sprzętową dla wszystkich COBOL. Nie wspominałem o innych platformach, ponieważ nigdy na nich nie pracowałem.

Spotkałem się i rozmawiałem z wieloma programistami IBM, którzy będą się nazywać programistami COBOL. Jeśli jednak zaangażujemy ich w rozmowę, szybko zaczniemy odnosić się do procedur i narzędzi specyficznych dla IBM. Biorąc pod uwagę skoncentrowany na sprzęcie charakter COBOL, jest to bardzo zrozumiałe dla wszystkich platform sprzętowych.

Ponieważ COBOL jest zwykle związany z bardzo drogim sprzętem, o ile na tym sprzęcie działają skompilowane programy COBOL, nie ma silnej potrzeby migracji z COBOL-a ze względu na migrację. Jednak przy starzejącej się populacji programistów COBOL migracja jest nieunikniona.

Ponieważ wszystkie duże żelazne skrzynki z COBOL-em będą również obsługiwać Javę, Java jest naturalną ścieżką migracji z dala od COBOL. Kod można konwertować, szczególnie teraz w warunkach obniżonej ekonomii, za raczej ekonomiczną cenę. Kiedy nie będzie COBOL, tylko Java na tym dużym, drogim sprzęcie, wtedy ktoś wyżej w organizacji zacznie się zastanawiać, czy można przenieść kod Java na inny, znacznie tańszy sprzęt.

Programiści IBM, Sperry, Burroughs i Tandem wiedzą o tym, więc prawdopodobnie NIGDY nie zaoferują tego pomysłu. Dla niektórych byłoby to świętokradztwo.

Kennah
źródło
+1, naprawdę bardzo drogi. Dodatkowo, wskazując, że Java staje się Nowym Cobolem - co sam widziałem, a ja jestem tylko młodym złotakiem, więc interesujące jest, aby ktoś z doświadczeniem obserwował to samo.
Wayne Werner