Съвременният свят е изграден върху древен код. Това е проблем

древни кодиращи езици
Женевиев Поблано/Дигитални тенденции

„Как, по дяволите, стигнахме до тук, че буквално имаме нужда от COBOL програмисти?“ попита губернаторът на Ню Джърси Фил Мърфи на неотдавнашна пресконференция.

Съдържание

  • Fortran
  • Ада
  • Паскал
  • BASIC / Visual Basic
  • COBOL

Изправени пред безпрецедентен брой безработица приложения, държавата трябваше незабавно да разшири своята 40-годишна платформа за молби за безработица - основен ремонт това незабавно даде началото на трескаво търсене на програмисти, запознати с стария от десетилетия език за кодиране COBOL.

Препоръчани видеоклипове

Не само Ню Джърси има този проблем обаче. Голяма част от световните системи за банкиране, отбрана и изкуствен интелект работят с езици за програмиране, които бяха на мода, когато Apple беше изчерпана от гаража.

Технологичната индустрия има афинитет към неща, които са нови и авангардни, но ако не бяха древните кодиращи езици като COBOL, Ada, Pascal и Fortran, кредитната индустрия, научноизследователските организации и множество отбранителни системи щяха да изкрещят спирам. С други думи, без целия този стар код, щяхме да сме прецакани.

Петдесетгодишни езици за програмиране все още изчисляват милиони транзакции и статистики и служат като гръбнак за системи, на които разчита съвременният свят. Например, над 95 процента от банкоматите и 40 процента от банките използват COBOL код, според проучване от 2017 г. Доклад на Ройтерс.

Няколко от тези древни табулатори все още изпълняват специфични функции много добре. Има и много бизнес ръководители, които не искат да отделят изпитания във времето софтуер, който е жизненоважен за бизнеса на тяхната компания, така че вместо да ремонтират и модернизират, те просто закърпват стар код и се надяват на най-доброто.

Борбата с древните технологии не е ново явление. Например, Калифорния е похарчил стотици милиони долари, опитвайки се да актуализира своята DMV и технология за заплати. И все пак настоящата пандемия и произтичащата от нея вълна от безработица показаха колко голяма част от софтуерната инфраструктура на Америка се разпада като физическата.

Ето пет „стари“ езика, от които нашият свят зависи повече, отколкото предполагате, и защо това може да ви изнерви малко.

Fortran

fortran ръчно покритие

Ако не беше Fortran, много от суперкомпютрите и моделите, които използваме за неща като прогнозиране на времето, астрофизика и статистически анализ на високо ниво, просто нямаше да работят.

Създаден от IBM през 50-те години на миналия век, Fortran (съкращение от Formula Translation) е един от първите езици на високо ниво, които използва думи вместо числа и даде възможност на програмистите да пишат програми 500% по-бързо, отколкото когато използват машина код. Не толкова много разработчици учат езика днес.

„Използвам Fortran през цялото време – просто никога не мисля за това“, казва Джеймс Хауърд, учен по данни в лабораторията за приложна физика на Джон Хопкинс. Докато Хауърд не е програмирал на езика от години, неговите приложения редовно имат достъп до основните библиотеки на Fortran. Построени в началото на 70-те години, те са добре поддържани и „ослепително бързи“.

Последният път, когато Хауърд трябваше да напише програма на Fortran, беше преди около 10 години. Той работеше във Федералния резерв и трябваше да премести данни между две приложения; единият е написан на C, а другият на Fortran. Програмите спряха да комуникират, защото доставчикът спря да предоставя библиотеката Fortran.

40-годишният програмист си спомни нещо, което е чел като дете, че структурата за извикване на данни за езика за програмиране C е противоположна на тази на Fortran. Той написа прост сценарий за обръщане на поръчката и, готово, Федералният резерв отново беше на работа.

fortran punchard

Ада

Правителствените програмисти разчитат на сравнително неясна кодова база на Ada, когато разработват системи, които изискват надеждност, като системи за защита и безопасност. Какво точно е програмирано в него? Е, това е малко правителствена тайна, но НАСА и Боинг са използвали базиран на Ada код през последните години за програмиране на сателити и самолети.

Министерството на отбраната (DOD) ръководи развитието на Ada през 70-те години на миналия век, за да намали броя на програмните езици, използвани от военните, които по това време бяха над 400. Ada е създадена да бъде безспорно надеждна в ситуации на живот или смърт и подсилена срещу програмни грешки. Въпреки че езикът беше въведен през 1980 г., Конгресът не разреши използването му във всички правителствени системи до 1995 г. Две години по-късно DOD изостави мандата, смятайки, че ще бъде по-евтино и по-гъвкаво да се използват широко достъпни, актуални системи. Но все още се използва днес.

Паскал

паскал плакат
В началото на 80-те години плакатът на Apple Pascal можеше да бъде намерен в офиса на компанията, давайки на програмистите представа как да използват кода.

Много програмисти смятат Pascal за почти мъртъв език за програмиране, но той продължава да съществува по няколко начина. „Вярвате или не, той все още е много популярен език в много части на света, но в САЩ може да добре да говориш латински“, казва Дейв Хатър, който прекара три години в голяма застрахователна компания, помагайки за актуализирането на a милиони редове код, които оценяват какви полици струват и колко плащат.

Много от тези по-стари програми са написани много преди днешните опасения за пробиви в сигурността и имат чувствителна частна информация. Хатър, който сега работи като технолог по киберсигурност, смята, че програмите може да са относително безопасни само поради „сигурността чрез неизвестност“ – младите програмисти не знаят какво да правят с код от десетилетия. „Един 15-годишен хакер няма да има представа как да работи с някакъв мейнфрейм IBM 390 с COBOL“, казва той. „Не казвам, че не са могли да се научат. Но те няма да разберат.

Pascal беше основата за ранна операционна система на Apple, а потомъкът на езика Delphi все още има силни поддръжници. Всъщност Skype — едно от първите приложения за видео разговори, добило широка популярност и използване — първоначално е написано на Delphi.

BASIC / Visual Basic

BASIC не е точно на върха на списъка, когато става дума за езици, които хората използват през 2020 г., но много от съвременните приложения, на които разчитаме, просто не биха съществували без него. Например, ако някога сте програмирали макрос на Excel, сте използвали форма на BASIC.

Съкратено от Beginner’s All-Purpose Symbolic Instruction Code, BASIC стартира през 1963 г. в Dartmouth College като начин за преподаване на широка аудитория теориите и възможностите на програмирането - потапяне във водата, преди да навлезете в по-стабилни езици като Fortran. Популярността на BASIC нарасна заедно с персоналния компютър - компютрите на Apple, IBM и Atari всички имаха свои версии.

До средата на 80-те години на миналия век самоуките компютърни маниаци бяха по-малко очаровани от BASIC и повече се интересуваха от програми на трети страни. След това Microsoft пусна Visual Basic през 1991 г., което не беше точно актуализация на BASIC, но използваше някои същите команди и структура и имаше по-добър графичен интерфейс. Тогава езикът беше използван от много фирми за писане на големи и малки програми. Въпреки че Microsoft каза, че е спрял поддръжката за Visual Basic 6 (най-новата версия) през 2008 г., езикът все още има много потребители. Проверете Индекс Тиобе (който показва най-популярните езици за програмиране): VB все още е в топ 10!

COBOL

кобол плакат
Плакат от 1969 г., рекламиращ клас на MIT COBOL.

„Бих казал, че над 90% от хората, които виждаме, имат COBOL като основна част от това, което са написали“, оценява Брандън Идънфийлд, който актуализира и прехвърля наследени приложения за Модерни системи и помогна за преразглеждането на кодекса за фондовите борси в Ню Йорк и Сингапур. „Всяка голяма компания, за която можете да се сетите, вероятно има нездравословно количество от тези неща.“

COBOL, акроним на Common Business-Oriented Language, стартира през 1959 г., насочен към задачи за обработка на данни като проследяване на бюджет, банкови транзакции и отчитане на заплати. Министерството на отбраната (DOD) първоначално е проектирало езика като временен проект. След това Министерството на отбраната изисква производителите на компютри да включват COBOL в машините, които продават, и езикът бързо се разпространи през следващите няколко десетилетия. Над 95% от банкоматите и 40% от банките все още използват COBOL код, според данни от 2017 г. Доклад на Ройтерс.

Голяма част от това програмиране беше разгърнато чрез мейнфрейм компютри, а модерните системи се преместиха в облака. Както беше илюстрирано затрудненото положение в Ню Джърси, разработчиците, които знаеха как да поддържат кода на COBOL, остаряват или вече са се пенсионирали.

Компаниите, които модернизират тези програми, обикновено го правят по няколко различни начина.

„Голям системен интегратор ще хвърли куп тела върху кода; те ще седнат, ще го разгледат и ще го пренапишат“, казва Идънфийлд. Този подход често е най-рискованият, отнемащ време и скъп. Средно ръчно кодираните, големи задачи за реплатформиране могат да отнемат от 3 до 10 години и могат да струват стотици милиони долари.

Edenfield препоръчва автоматизирани решения и казва, че първата логична стъпка може да бъде просто преместване на кода от остаряла версия на COBOL към текуща, което би позволило на много системи да преминат към модерни сървъри. Той сравнява машинната актуализация с превод от френски на английски: „Основата на казаното е преведена перфектно. Просто трябва да коригирате синтаксиса на начина, по който е формулиран. Този подход може също така да намали времето и разходите за актуализация, казва той, някъде между шест и 24 месеца.

Ще бъде ли евтино? Е, ще е по-евтино. Проектите на Modern Systems обикновено варират в цена от $200 000 до $10 милиона. Голяма част от проекта, обяснява Edenfield, не превежда кода, а тества, за да се увери, че прави всичко правилно.

Каква е причината тези актуализации да не се случват?

„Никой не е чувал за това преди, защото това не е секси тема и хората обикновено не се опитват да говорят за мръсното пране, което имат“, обяснява той. ИТ ръководителите също имат навика да ритат кутията надолу по пътя.

„Обзалагам се, че щатът Ню Джърси ще обърне внимание на този проблем сега, но също така се обзалагам, че половината от колегите им ще си помислят, че това няма да им се случи, „Не на мен“.“