Współczesny świat zbudowany jest na starożytnym kodzie. To jest problem

starożytne języki kodowania
Genevieve Poblano/Trendy cyfrowe

„Jak do cholery dotarliśmy tutaj, że dosłownie potrzebujemy programistów COBOL?” – zapytał gubernator New Jersey Phil Murphy na niedawnej konferencji prasowej.

Zawartość

  • Fortran
  • Ada
  • Pascal
  • PODSTAWOWY / Visual Basic
  • COBOL

W obliczu niespotykanej dotąd liczby bezrobocie wniosków, państwo musiało natychmiast rozbudować istniejącą od 40 lat platformę wniosków o zasiłek dla bezrobotnych – co stanowiło generalny remont co natychmiast zapoczątkowało gorączkowe poszukiwania programistów znających język kodowania sprzed kilkudziesięciu lat COBOL.

Polecane filmy

Jednak nie tylko New Jersey ma ten problem. Wiele światowych systemów bankowych, obronnych i sztucznej inteligencji korzysta z języków programowania, które były modne, gdy Apple zabrakło garażu.

Branża technologiczna ma słabość do rzeczy nowych i nowatorskich, ale gdyby nie starożytne języki kodowania, takie jak COBOL, Ada, Pascal i Fortran, branża kredytowa, organizacje badawcze i liczne systemy obronne znalazłyby się w sytuacji krytycznej. postój. Innymi słowy, bez całego tego starego kodu mielibyśmy przerąbane.

Pięćdziesięcioletnie języki programowania wciąż obliczają miliony transakcji i statystyki oraz służą jako szkielet systemów, na których opiera się współczesny świat. Na przykład według badania z 2017 r. ponad 95 procent bankomatów i 40 procent banków używa kodu COBOL. Raport Reutera.

Kilka z tych starożytnych tabulatorów nadal bardzo dobrze spełnia określone funkcje. Jest także wielu dyrektorów przedsiębiorstw, którzy nie chcą rozbierać sprawdzonego oprogramowania, które jest niezbędne do biznes swojej firmy, więc zamiast remontować i modernizować, po prostu łatają stary kod i mają nadzieję na poprawę to, co najlepsze.

Zmaganie się ze starożytną technologią nie jest zjawiskiem nowym. Na przykład, Kalifornia przepuścił setki milionów dolarów, próbując zaktualizować swoją technologię DMV i płac. Jednak obecna pandemia i wynikająca z niej fala bezrobocia pokazały, jak duża część amerykańskiej infrastruktury oprogramowania rozpada się, podobnie jak jej infrastruktura fizyczna.

Oto pięć „starych” języków, od których nasz świat zależy w większym stopniu, niż zdajesz sobie sprawę, i dlaczego może Cię to trochę denerwować.

Fortran

okładka ręczna fortranu

Gdyby nie Fortran, wiele superkomputerów i modeli, których używamy do prognozowania pogody, astrofizyki i analiz statystycznych wysokiego poziomu, po prostu nie działałoby.

Zbudowany przez IBM w latach pięćdziesiątych XX wieku Fortran (skrót od Formula Translation) był jednym z pierwszych języków wysokiego poziomu, który użył słów zamiast liczb i umożliwił programistom pisanie programów o 500% szybciej niż przy użyciu maszyny kod. Obecnie niewiele programistów uczy się tego języka.

„Cały czas używam Fortranu i po prostu nigdy o tym nie myślę” – mówi James Howard, analityk danych w Johns Hopkins Applied Physics Laboratory. Chociaż Howard nie programował w tym języku od lat, jego aplikacje regularnie uzyskują dostęp do podstawowych bibliotek Fortran. Zbudowane na początku lat 70. są dobrze utrzymane i „oślepiająco szybkie”.

Ostatni raz Howard musiał pisać program w języku Fortran około 10 lat temu. Pracował w Rezerwie Federalnej i musiał przenosić dane między dwiema aplikacjami; jeden napisany w języku C, a drugi w Fortranie. Programy przestały się komunikować, ponieważ dostawca przestał udostępniać bibliotekę Fortran.

40-letni programista przypomniał sobie coś, co czytał jako dziecko, że struktura wywoływania danych w języku programowania C jest odwrotna niż w Fortranie. Napisał prosty scenariusz odwracający kolejność i voila, Rezerwa Federalna wróciła do działania.

fortran poncz

Ada

Programiści rządowi polegają na stosunkowo mało znanej bazie kodu Ada podczas opracowywania systemów wymagających niezawodności, takich jak systemy obronne i bezpieczeństwa. Co dokładnie jest w nim zaprogramowane? Cóż, to trochę tajemnica rządowa, ale zarówno NASA, jak i Boeing wykorzystały w ostatnich latach kod oparty na Adzie do programowania satelitów i samolotów.

Departament Obrony (DOD) nadzorował rozwój Ady w latach 70. XX wieku, aby zmniejszyć liczbę języków programowania używanych przez wojsko, która wówczas wynosiła ponad 400. Ada została zbudowana tak, aby była niewątpliwie niezawodna w sytuacjach życia lub śmierci i była zabezpieczona przed błędami programisty. Chociaż język ten został wprowadzony w 1980 r., Kongres nakazał jego używanie we wszystkich systemach rządowych dopiero w 1995 r. Dwa lata później Departament Obrony zrezygnował z tego mandatu, uznając, że tańsze i bardziej elastyczne będzie korzystanie z szeroko dostępnych, aktualnych systemów. Ale nadal jest w użyciu.

Pascal

plakat Pascala
Na początku lat 80. w całym biurze firmy można było znaleźć plakat Apple Pascal, dający programistom wgląd w sposób korzystania z kodu.

Wielu programistów uważa Pascal za prawie martwy język programowania, ale żyje on nadal na kilka sposobów. „Wierz lub nie, ale w wielu częściach świata jest to nadal bardzo popularny język, ale w USA równie dobrze mógłbyś dobrze mówić po łacinie” – mówi Dave Hatter, który spędził trzy lata w dużej firmie ubezpieczeniowej, pomagając w aktualizacji a milionów linii kodu, które oszacowały, ile polis kosztują i ile zapłacą.

Wiele z tych starszych programów zostało napisanych na długo przed dzisiejszymi obawami dotyczącymi naruszeń bezpieczeństwa i zawiera poufne, zastrzeżone informacje. Hatter, który obecnie pracuje jako specjalista ds. cyberbezpieczeństwa, uważa, że ​​programy mogą być stosunkowo bezpieczne właśnie ze względu na „bezpieczeństwo przez zaciemnienie” – młodzi programiści nie wiedzą, co zrobić z kodem sprzed kilkudziesięciu lat. „15-letni haker nie będzie miał pojęcia, jak pracować z jakimś komputerem mainframe IBM 390 w języku COBOL” – mówi. „Teraz nie twierdzę, że nie mogliby się uczyć. Ale oni się nie dowiedzą.

Pascal był podstawą wczesnego systemu operacyjnego Apple, a potomek tego języka, Delphi, nadal ma zdecydowanych zwolenników. W rzeczywistości Skype — jedna z pierwszych aplikacji do rozmów wideo, która zyskała szeroką popularność i zastosowanie — został pierwotnie napisany w Delphi.

PODSTAWOWY / Visual Basic

BASIC nie znajduje się dokładnie na szczycie listy, jeśli chodzi o języki, których ludzie używają w 2020 roku, ale wiele nowoczesnych aplikacji, na których polegamy, po prostu nie istniałoby bez niego. Na przykład, jeśli kiedykolwiek programowałeś makro w Excelu, korzystałeś z wersji BASIC.

BASIC, skrót od Uniwersalnego Kodu Instruktażu Symbolicznego dla Początkujących, został wprowadzony na rynek w 1963 roku w Dartmouth College jako sposób nauczania ogółu odbiorców teorie i możliwości programowania — zanurzenie się w wodzie przed przejściem do bardziej zaawansowanych języków, takich jak Fortran. Popularność języka BASIC wzrosła wraz z pojawieniem się komputera osobistego — komputery Apple, IBM i Atari miały swoje wersje.

W połowie lat osiemdziesiątych samoucy maniacy komputerowi byli mniej zafascynowani językiem BASIC, a bardziej zainteresowani programami innych firm. Następnie w 1991 roku Microsoft wypuścił Visual Basic, który nie był dokładnie aktualizacją BASIC-a, ale używał tych samych poleceń i struktury oraz miał lepszy interfejs graficzny. Następnie język ten został wykorzystany przez wiele firm do pisania dużych i małych programów. Chociaż Microsoft oświadczył, że zaprzestał obsługi Visual Basic 6 (najnowsza wersja) w 2008 roku, język ten nadal ma wielu użytkowników. Sprawdź Indeks Tiobe (zestawiając najpopularniejsze języki programowania): VB wciąż znajduje się w pierwszej dziesiątce!

COBOL

plakat z kobolem
Plakat z 1969 r. promujący zajęcia MIT COBOL.

„Powiedziałbym, że ponad 90% osób, które widzimy, używa języka COBOL jako głównej części tego, co piszą” – szacuje Brandon Edenfield, który aktualizuje i przenosi starsze aplikacje dla Nowoczesne systemy i pomógł zmienić kod giełd w Nowym Jorku i Singapurze. „Każda większa firma, o której myślisz, prawdopodobnie ma niezdrową ilość tych rzeczy”.

COBOL, akronim od Common Business-Oriented Language, został wprowadzony na rynek w 1959 roku i był ukierunkowany na zadania związane z przetwarzaniem danych, takie jak śledzenie budżetu, transakcje bankowe i księgowanie płac. Departament Obrony (DOD) pierwotnie zaprojektował ten język jako projekt tymczasowy. Następnie Departament Obrony zażądał od producentów komputerów umieszczenia języka COBOL na sprzedawanych przez siebie maszynach, a język szybko rozprzestrzenił się w ciągu następnych kilku dekad. Według badania z 2017 r. ponad 95% bankomatów i 40% banków nadal korzysta z kodu COBOL. Raport Reutera.

Duża część tego oprogramowania została wdrożona na komputerach typu mainframe, a nowoczesne systemy zostały przeniesione do chmury. Jak pokazała trudna sytuacja New Jersey, programiści, którzy wiedzieli, jak obsługiwać kod COBOL, odchodzą z rynku pracy lub już przeszli na emeryturę.

Firmy modernizujące te programy zazwyczaj robią to na kilka różnych sposobów.

„Duży integrator systemów rzuci w kod mnóstwo ludzi; usiądą, obejrzą i napiszą od nowa” – mówi Edenfield. Takie podejście jest często najbardziej ryzykowne, czasochłonne i kosztowne. Ręcznie kodowane, duże zadania polegające na zmianie platformy mogą zająć średnio od 3 do 10 lat i kosztować setki milionów dolarów.

Edenfield zaleca rozwiązania zautomatyzowane i twierdzi, że pierwszym logicznym krokiem może być po prostu przeniesienie kodu przestarzałej wersji języka COBOL na obecną, co umożliwiłoby przejście wielu systemów na nowoczesne serwery. Porównuje aktualizację maszyny do tłumaczenia francuskiego na angielski: „Podstawa tego, co się mówi, jest doskonale przetłumaczona. Musisz tylko poprawić składnię sposobu sformułowania. Takie podejście może również skrócić czas i koszt aktualizacji – twierdzi – od sześciu do 24 miesięcy.

Czy będzie tanio? No cóż, będzie taniej. Ceny projektów Modern Systems zazwyczaj wahają się od 200 000 do 10 milionów dolarów. Duża część projektu, wyjaśnia Edenfield, nie polega na tłumaczeniu kodu, ale na testowaniu, aby upewnić się, że wszystko działa poprawnie.

Powód, dla którego te aktualizacje się nie zdarzają?

„Nikt wcześniej o tym nie słyszał, ponieważ nie jest to seksowny temat, a ludzie zazwyczaj nie próbują rozmawiać o brudach, które mają” – wyjaśnia. Kierownicy działów IT mają również zwyczaj wyrzucania puszek po drodze.

„Założę się, że stan New Jersey zwróci teraz uwagę na tę kwestię, ale założę się też, że połowa ich kolegów pomyśli, że ich to nie dotyczy: „Nie mnie”.