Co to jest COBOL? Wyjaśnienie programowania w języku COBOL

Niektóre technologie nigdy nie umierają - po prostu wtapiają się w stolarkę. 

Zapytaj przeciętnego programistę o język COBOL (Common Business Oriented Language), a spojrzą na Ciebie tak, jakbyś wspomniał o kalce, benzynie ołowiowej lub rekordu 78 obrotów na minutę. W porównaniu z nowoczesnymi językami, takimi jak Go czy Python - a nawet Pascal czy C! - COBOL wydaje się rozwlekły, niezgrabny, passé.

Ale COBOL przetrwał. COBOL, daleki od przestarzałej technologii, z którą szczęśliwie rozstaliśmy się, stał się instytucją. Ogromne bazy kodów COBOL są nadal używane na całym świecie, a wiele z nich działa prawie tak samo, jak na początku. W hollywoodzkim języku język COBOL ma „nogi”.

Tak więc, tak, COBOL jest nadal aktualny i aktualny - w rzeczywistości boleśnie. W ostatnich miesiącach COBOL powrócił do świadomości społecznej, gdy stany takie jak New Jersey wezwały programistów do pomocy w przeniesieniu ich aplikacji COBOL w XXI wiek.

W tym artykule przyjrzymy się pochodzeniu COBOL-a, temu, jak projekt języka programowania wyróżnia się nawet dzisiaj i co sprawia, że ​​COBOL jest tak trwały i tak trudny do opanowania.

Historia COBOL

COBOL powstał na przełomie lat pięćdziesiątych i sześćdziesiątych XX wieku. Rozwój języka był projektem sponsorowanym przez Departament Obrony Stanów Zjednoczonych (DoD), który obejmował konsorcjum firm komputerowych, w tym IBM, Honeywell, Sperry Rand i Burroughs. Celem było stworzenie języka programowania o następujących atrybutach:

  • Możliwość przenoszenia między systemami komputerowymi, co ułatwia migrację oprogramowania zarówno między generacjami sprzętu, jak i między producentami sprzętu.
  • Bardziej angielska składnia niż inne języki tamtych czasów (np. FORTRAN) jako sposób na zachęcenie do programowania przez szerszą publiczność, nawet kosztem pewnej szybkości działania.
  • Umiejętność dostosowania się do przyszłych zmian języka.

Pierwsza oficjalna specyfikacja COBOL została wydana w 1960 roku. W ciągu następnej dekady i ku konsternacji krytyków, COBOL stał się domyślnym wyborem do pisania aplikacji biznesowych. Jednym z powodów jego szybkiego rozprzestrzeniania się były efekty sieciowe: IBM, jeden z pierwszych współpracowników języka, stał się agresywnym wczesnym użytkownikiem, a dominująca obecność IBM w świecie komputerów pomogła w przyjęciu COBOL-a.

Ze względu na swoje zalety konstrukcyjne i wsparcie przemysłu ciężkiego, COBOL utknął, przeżywając oryginalne systemy, do których został zaprojektowany, z dużym marginesem. Według różnych szacunków do 1970 roku język COBOL był najczęściej używanym językiem programowania na świecie. Uważano, że do 1997 roku COBOL uruchamiał około 80 procent aplikacji biznesowych.

Język COBOL

Projektanci COBOL-a zerwali wówczas ze zwięzłą składnią innych języków programowania (znowu, takich jak FORTRAN). Pomysł polegał na stworzeniu języka programowania, który byłby czytelny i zrozumiały dla osób niebędących programistami, w szczególności księgowości, finansów, ubezpieczeń i innych profesjonalistów biznesowych.

Rozważmy program „witaj świecie” napisany we wczesnym dialekcie języka COBOL:

DZIAŁ IDENTYFIKACJI.

ID PROGRAMU. WITAJ ŚWIECIE.

PODZIAŁ PROCEDURY.

WYŚWIETLACZ „Hello World!”.

WYŚWIETLACZ KOŃCOWY.

STOP RUN.

Dla współczesnych programistów opierających się na lapidarności języków, takich jak Python, ten kod jest rozwlekły. Ale gadatliwość języka COBOL (jeśli nie jego wykonanie) wypływa z tej samej zarozumiałości, która dotyczy współczesnych języków, takich jak Python - ten kod jest czytany znacznie więcej razy niż jest napisany, więc powinien być napisany, aby był czytelny.

Podobny program w nowszej wersji COBOL może wyglądać mniej więcej tak:

id programu. dzień dobry.

podział procedur.

display "Hello world!".

przestań biegać.

Chociaż ten przykład jest bardziej zwięzły, obowiązują te same podstawowe zasady: kod stara się jasno określać, co dzieje się na każdym kroku.

W języku COBOL obowiązują ścisłe zasady dotyczące składni i wewnętrznej organizacji programów. Program w języku COBOL jest wyraźnie podzielony na sekcje lub działy , które ułatwiają zlokalizowanie i zrozumienie jego komponentów na pierwszy rzut oka:

  • Podział identyfikacyjny: zasadniczo sekcja metadanych, zawierająca szczegółowe informacje o programie, jego autorze i tak dalej.
  • Podział środowiska: zawiera szczegółowe informacje o środowisku wykonawczym, na przykład aliasy urządzeń zewnętrznych, które mogą wymagać edycji podczas uruchamiania programu na innym sprzęcie. To pomogło w przenoszeniu programu między systemami, gdzie na przykład operacje wejścia / wyjścia mogą być zupełnie inne.
  • Podział danych: Zawiera  sekcje plików i pamięci roboczej , podział danych opisuje pliki i zmienne (odpowiednio) używane w programie.
  • Podział procedury: Tutaj znajduje się rzeczywisty kod programu, podzielony na jednostki logiczne zwane sekcjami, akapitami, zdaniami i instrukcjami . Kuszące jest analogizowanie tych struktur do modułów lub funkcji, ponieważ pełnią one z grubsza te same funkcje (dzielenie kodu na bloki, z ograniczonymi wejściami i wyjściami), ale są one znacznie mniej elastyczne.

COBOL ma również bardzo rygorystyczne zasady formatowania kodu, aż do liczby spacji poprzedzających polecenie. (Użytkownicy Pythona uznają to za znajome!) Niektóre z tych ograniczeń są produktem ubocznym dorastania COBOL-a w erze komputerów mainframe w latach 60. XX wieku, kiedy programy były kodowane na kartach perforowanych, a dokładne formatowanie 80-kolumnowych linii miało znaczenie. . Ale inne ograniczenia formatowania wymuszają czytelność.

Ideą ścisłego przestrzegania programów w języku COBOL jest uczynienie ich jak najbardziej samodokumentującymi. W końcu programy COBOL zwykle utrzymywały się przez lata lub dekady. Intencją (jeśli nie zawsze końcowym rezultatem) było uczynienie z każdego programu COBOL artefaktu zrozumiałego dla każdego programisty COBOL-a nawet po latach bez pomocy programisty, który go stworzył. 

Wyzwania COBOL

Znaczna część ciągłego rozpowszechniania się języka COBOL - i inercji - wynika z faktu, że raz napisane aplikacje COBOL pozostawały na czas nieokreślony, z niewielkimi modyfikacjami. Im większa i bardziej krytyczna aplikacja, tym mniejsze prawdopodobieństwo, że zostanie zakłócona. Komputery mainframe, podobnie jak produkty IBM, odegrały kluczową rolę: zostały zbudowane tak, aby były wysoce kompatybilne wstecz i do uruchamiania starszego oprogramowania - takiego jak aplikacje COBOL - na różnych generacjach sprzętu z minimalnymi modyfikacjami. Rezultat: miliardy wierszy kodu w języku COBOL działających praktycznie bez zmian przez dziesięciolecia.

Z biegiem lat, COBOL został ewoluowały, jeśli wolno. Nawet teraz ma wariant zorientowany obiektowo, OO-COBOL, który obejmuje obsługę nowoczesnych funkcji, takich jak Unicode, ustawienia regionalne i bardziej zaawansowane typy danych poza ciągami i liczbami całkowitymi. Jednak COBOL agresywnie zachowuje wsteczną zgodność, więc nawet te ulepszenia i rozszerzenia są zgodne z wymogiem, że istniejące aplikacje COBOL muszą nadal działać.

Nie wszystkie wybory projektowe języka COBOL były popularne wśród programistów COBOL. Niektóre doprowadziły do ​​zbyt złożonych programów, które okazały się trudne do zrozumienia lub debugowania, zniechęcając do przepisywania lub ulepszania. GO TOPolecenie COBOL-a , podobnie jak jego odpowiednik w C, umożliwiło programistom swobodne przeskakiwanie po programie, a tym samym pisanie bardziej zaawansowanych aplikacji. Jednak niezdyscyplinowane użycie GO TOmoże zmienić program w języku COBOL w szczurze gniazdo trudnych do prześledzenia powiązań.

Programowanie COBOL dzisiaj

COBOL przetrwał do dziś w kilku wcieleniach. IBM aktywnie utrzymuje własne wdrożenia COBOL i obsługuje wiele istniejących aplikacji COBOL, w których są one uruchomione. Micro Focus COBOL to komercyjna edycja COBOL, która działa w systemie Microsoft Windows, kompiluje aplikacje COBOL w językach Java i .NET, a nawet wdraża w środowiskach chmurowych, takich jak Azure. Znajdziesz również implementacje open source języka COBOL, takie jak GnuCOBOL, które są dostępne bezpłatnie i można je kompilować do natywnego kodu maszynowego. Mogą jednak brakować niektórych bardziej zaawansowanych funkcji wdrażania lub debugowania komercyjnych COBOL-ów.

Chociaż COBOL jest nadal w powszechnym użyciu, dogłębna wiedza COBOL jest coraz trudniejsza do zdobycia z każdym mijającym rokiem. W rezultacie wielu byłych programistów COBOL musiało wycofać się z emerytury, aby wprowadzić starsze aplikacje w XXI wiek. Często to nie znajomość programowania w języku COBOL jest najważniejsza, ale dokładne zrozumienie środowisk mainframe, w których działa COBOL. Wiele aplikacji COBOL współpracuje ze starszymi technologiami, takimi jak systemy zarządzania transakcjami i bazami danych IBM IMS i CICS, z których wszystkie wymagają coraz rzadszej wiedzy specjalistycznej.

Tak więc, choć może się wydawać, że COBOL jest oldskulowy, z każdym rokiem rosło zapotrzebowanie na znajomość języka i środowiska programistycznego COBOL. Oferty pracy dla COBOL i związane z nimi doświadczenie są liczne. W marcu 2020 r. New Jersey wysłał wezwanie alarmowe do programistów COBOL, aby pomogli ulepszyć stanowe systemy zasiłków dla bezrobotnych w następstwie kryzysu związanego z COVID-19.

Dowiedz się COBOL

Zasoby edukacyjne dla języka COBOL ponownie się mnożą, biorąc pod uwagę rosnące zapotrzebowanie na język. Współcześni programiści, którzy chcą przyspieszyć pracę z tym najbardziej trwałym językiem, mają kilka opcji:

  • University of Limerick w Irlandii oferuje kompletny kurs programowania w języku COBOL online, dzięki uprzejmości Wydziału Informatyki i Systemów Informacyjnych. Nie jest tak aktualna, jak niektóre inne zasoby, ale biorąc pod uwagę, jak niewiele COBOL zmienia się w czasie, niekoniecznie jest to wada.
  • Open Mainframe Project (część Linux Foundation) oferuje również zasoby COBOL. Jeden z nich to pełny kurs programowania w języku COBOL, współfinansowany przez IBM. Jest nowocześniejszy niż kurs na University of Limerick i dostosowany do implementacji języka COBOL firmy IBM zOS, która jest szeroko rozpowszechnioną wersją języka.

COBOL od dziesięcioleci jest podstawą przetwarzania danych w biznesie, a zapotrzebowanie na utalentowanych programistów COBOL wciąż rośnie. Jeśli interesuje Cię konserwacja lub modernizacja programów w języku COBOL, czas na to wydaje się szybszy niż kiedykolwiek.