Czterdzieści milionów Amerykanów, którzy stracili pracę w pierwszych tygodniach pandemii, szturmem ruszyło po zasiłki na internetowe strony urzędów pracy. Niestety, zamiast widoku właściwego formularza, na ekranach komputerów ukazało im się jedynie obracające się kółko. W wielu stanach nie wytrzymał system internetowy pośredniaków. Winnego wskazano równie łatwo, co lekkomyślnie: COBOL, język programowania wymyślony 60 lat temu, którego dziś prawie nikt nie zna. 

Fakt, jak na informatyczne standardy COBOL (common business-oriented language) pochodzi z epoki kamienia łupanego. Powstał w roku 1959 z inicjatywy Departamentu Obrony USA. Wcześniej każdy producent komputerów używał własnego języka programowania, co wywoływało spory galimatias: aplikacje wykonujące ten sam rodzaj operacji trzeba było programować od zera dla różnych komputerów. COBOL miał stanowić rozwiązanie tego problemu.

Został oparty na wcześniejszym języku FLOW-MATIC, którego autorką była jedna z najsłynniejszych kobiet w historii informatyki, Grace Hopper, od czasów II Wojny Światowej zajmująca się obliczeniami na potrzeby Marynarki Wojennej USA (na emeryturę odchodziła w latach 80. w stopniu kontradmirała). To jej przypisuje się pojęcie bug  w znaczeniu błędu programistycznego, ukute po tym, jak do wnętrza komputera Mark II, obsługiwanego przez jej zespół na Harvardzie, dostała się ćma, co spowodowało zwarcie obwodu. Oczywiście, maszyna została sprawnie „zdebuggowana”. COBOL zyskał niezwykłą popularność. Stał się standardem w informatyce biznesowej w czasach, gdy nikomu nie śnił się komputer osobisty, a tym bardziej internet. Dziś sytuacja się odwróciła: komputera i internetu używają amerykańscy bezrobotni, którzy za to nie mają pojęcia o COBOL-u. Niestety, nie tylko oni. COBOL idzie w zapomnienie. Jego twórcy przenieśli się do krainy wiecznego i szczęśliwego programowania (to jednak musi być piekło), a późniejsi użytkownicy cieszą się emeryturą.

Nie znaczy to jednak, że COBOL wyszedł z użycia. Stał się standardem programowania kolejnych generacji potężnych mainframe’ów, w przypadku których na placu boju pozostał do dziś praktycznie jedynie IBM. I tak w zasadzie należałoby powiedzieć: COBOL wraz z mainframe’em stał się standardem w informatyce biznesowej. Ten duet od lat 60. zapewnia kompatybilność wsteczną aplikacji. To, w połączeniu z monstrualną mocą main-frame’ów, jest przyczyną sukcesu. Wielki biznes nie wyobraża sobie zmiany, bo to po prostu działa. Mainframe’ów z COBOL-em używają nie tylko amerykańskie pośredniaki, ale 96 ze 100 największych banków na świecie i 90 proc. największych ubezpieczycieli. W USA korzysta z nich 71 proc. przedsiębiorstw z listy Fortune 500. Według IBM mainframe’y odpowiadają raptem za 6 proc. wydatków informatycznych, a przetwarzają 68 proc. światowych obciążeń produkcyjnych. 

Krótko mówiąc: świat stoi na main-frame’ach i COBOL-u, a amerykańskie urzędy pracy wyłożyły się na nich jak krowa na wrotkach. O co tutaj chodzi? Po pierwsze jeśli – jak w tym przypadku – program komputerowy nie był przygotowany na lawinowy wzrost obciążeń, to nie jest to raczej problem informatyczny, tylko biznesowy: po prostu żaden urzędnik nie przewidział, że w ciągu tygodnia może napłynąć 7 mln wniosków od ludzi, którzy właśnie stracili robotę. Po drugie urzędnicy zorientowali się, że rzeczywiście od czterdziestu lat używają tego samego systemu, który do tej pory działał, a teraz… patrz punkt pierwszy. I na gwałt zaczęli szukać specjalistów od COBOL-a. Tych brakuje także dlatego, że dziś studentów uczy się Javy i PHP, żeby później mogli zakładać startupy robiące apki do sextingu, a nie zajmować się przetwarzaniem 68 proc. światowych work-loadów produkcyjnych (w przeciwieństwie do sextingu 100 proc. nudy…). Wreszcie po trzecie COBOL i mainframe’y stały się zwykłym kozłem ofiarnym w tej historii. Za wizualizację kręcącego się kółeczka na stronach internetowych pośredniaków odpowiadają aplikacje na front-endzie, zwykle napisane w Javie, a COBOL jest gdzieś pod spodem, wykorzystywany do przetwarzania danych czy obsługi transakcji.

Cała ta historia niesie dwa morały. Pierwszy jest jednocześnie starą dobrą zasadą: nie naprawiaj czegoś, co działa. COBOL i mainframe’y przez lata pokazały, że dają sobie radę, także z krewkimi naprawiaczami tego, co działa. W Polsce do przesiadki z krytycznymi systemami z mainframe’ów na serwery x86 przymierzały się takie instytucje jak mBank czy ZUS, a potem… kupiły nowe mainframe’y. Drugi morał ma wymiar jeszcze bardziej praktyczny. Jeśli masz jakieś pojęcie o programowaniu, to COBOL może być opcją na życie po życiu (zawodowym). Programiści znający COBOL-a w całej karierze nie zarabiali tak dobrze jak teraz, na emeryturze. I nic nie zapowiada, by popyt na ich usługi miał się szybko skończyć.


Deprecated: Creation of dynamic property Timber\Post::$_edit_lock is deprecated in /home/sarotaq/crn/wp-content/plugins/timber-library/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_edit_last is deprecated in /home/sarotaq/crn/wp-content/plugins/timber-library/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_focuskw is deprecated in /home/sarotaq/crn/wp-content/plugins/timber-library/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_linkdex is deprecated in /home/sarotaq/crn/wp-content/plugins/timber-library/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_content_score is deprecated in /home/sarotaq/crn/wp-content/plugins/timber-library/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$obrazek_wyrozniajacy is deprecated in /home/sarotaq/crn/wp-content/plugins/timber-library/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_obrazek_wyrozniajacy is deprecated in /home/sarotaq/crn/wp-content/plugins/timber-library/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_author is deprecated in /home/sarotaq/crn/wp-content/plugins/timber-library/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$galeria is deprecated in /home/sarotaq/crn/wp-content/plugins/timber-library/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_galeria is deprecated in /home/sarotaq/crn/wp-content/plugins/timber-library/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_category is deprecated in /home/sarotaq/crn/wp-content/plugins/timber-library/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_thumbnail_id is deprecated in /home/sarotaq/crn/wp-content/plugins/timber-library/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_views_count is deprecated in /home/sarotaq/crn/wp-content/plugins/timber-library/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_date_gmt is deprecated in /home/sarotaq/crn/wp-content/plugins/timber-library/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$comment_status is deprecated in /home/sarotaq/crn/wp-content/plugins/timber-library/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$ping_status is deprecated in /home/sarotaq/crn/wp-content/plugins/timber-library/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_password is deprecated in /home/sarotaq/crn/wp-content/plugins/timber-library/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_name is deprecated in /home/sarotaq/crn/wp-content/plugins/timber-library/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$to_ping is deprecated in /home/sarotaq/crn/wp-content/plugins/timber-library/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$pinged is deprecated in /home/sarotaq/crn/wp-content/plugins/timber-library/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_modified is deprecated in /home/sarotaq/crn/wp-content/plugins/timber-library/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_modified_gmt is deprecated in /home/sarotaq/crn/wp-content/plugins/timber-library/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_content_filtered is deprecated in /home/sarotaq/crn/wp-content/plugins/timber-library/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$guid is deprecated in /home/sarotaq/crn/wp-content/plugins/timber-library/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$menu_order is deprecated in /home/sarotaq/crn/wp-content/plugins/timber-library/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_mime_type is deprecated in /home/sarotaq/crn/wp-content/plugins/timber-library/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$comment_count is deprecated in /home/sarotaq/crn/wp-content/plugins/timber-library/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$filter is deprecated in /home/sarotaq/crn/wp-content/plugins/timber-library/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$status is deprecated in /home/sarotaq/crn/wp-content/plugins/timber-library/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_edit_lock is deprecated in /home/sarotaq/crn/wp-content/plugins/timber-library/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_edit_last is deprecated in /home/sarotaq/crn/wp-content/plugins/timber-library/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_focuskw is deprecated in /home/sarotaq/crn/wp-content/plugins/timber-library/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_linkdex is deprecated in /home/sarotaq/crn/wp-content/plugins/timber-library/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_content_score is deprecated in /home/sarotaq/crn/wp-content/plugins/timber-library/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$obrazek_wyrozniajacy is deprecated in /home/sarotaq/crn/wp-content/plugins/timber-library/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_obrazek_wyrozniajacy is deprecated in /home/sarotaq/crn/wp-content/plugins/timber-library/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_author is deprecated in /home/sarotaq/crn/wp-content/plugins/timber-library/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$galeria is deprecated in /home/sarotaq/crn/wp-content/plugins/timber-library/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_galeria is deprecated in /home/sarotaq/crn/wp-content/plugins/timber-library/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_category is deprecated in /home/sarotaq/crn/wp-content/plugins/timber-library/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_thumbnail_id is deprecated in /home/sarotaq/crn/wp-content/plugins/timber-library/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_views_count is deprecated in /home/sarotaq/crn/wp-content/plugins/timber-library/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_date_gmt is deprecated in /home/sarotaq/crn/wp-content/plugins/timber-library/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$comment_status is deprecated in /home/sarotaq/crn/wp-content/plugins/timber-library/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$ping_status is deprecated in /home/sarotaq/crn/wp-content/plugins/timber-library/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_password is deprecated in /home/sarotaq/crn/wp-content/plugins/timber-library/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_name is deprecated in /home/sarotaq/crn/wp-content/plugins/timber-library/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$to_ping is deprecated in /home/sarotaq/crn/wp-content/plugins/timber-library/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$pinged is deprecated in /home/sarotaq/crn/wp-content/plugins/timber-library/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_modified is deprecated in /home/sarotaq/crn/wp-content/plugins/timber-library/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_modified_gmt is deprecated in /home/sarotaq/crn/wp-content/plugins/timber-library/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_content_filtered is deprecated in /home/sarotaq/crn/wp-content/plugins/timber-library/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$guid is deprecated in /home/sarotaq/crn/wp-content/plugins/timber-library/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$menu_order is deprecated in /home/sarotaq/crn/wp-content/plugins/timber-library/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_mime_type is deprecated in /home/sarotaq/crn/wp-content/plugins/timber-library/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$comment_count is deprecated in /home/sarotaq/crn/wp-content/plugins/timber-library/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$filter is deprecated in /home/sarotaq/crn/wp-content/plugins/timber-library/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$status is deprecated in /home/sarotaq/crn/wp-content/plugins/timber-library/lib/Core.php on line 71
Tomasz Bitner Tomasz Bitner  

Autor pełni funkcję Programming Directora w polskim oddziale CIONET – międzynarodowej społeczności IT Executives. W latach 2011 –  2020 był redaktorem naczelnym „Computerworld Polska”. We wcześniejszym okresie między innymi kierował redakcją portalu WNP.pl, był także wydawcą „Motoru” i „Auto Moto”.