Данная статья переведена с сайта https://www.digitaltrends.com/features/the-modern-world-runs-on-ancient-code/
Почему я решил, опубликовать эту статью. Прежде всего для себя, а кому-то может тоже понравится. Древние языки программирования - это история, но оказывается на деле не так. Об этом эта статья
«Как, мы сюда попали, что нам буквально нужны программисты на COBOL?» спросил губернатор Нью-Джерси Фил Мерфи на недавней пресс-конференции.
Столкнувшись с беспрецедентным числом заявлений на пособие по безработице , государству пришлось немедленно расширить свою 40-летнюю платформу по заявкам на пособие по безработице - капитальный ремонт, который сразу же вызвал безумный поиск программистов, знакомых с языком кодирования COBOL, существующим уже несколько десятилетий.
Однако проблема не только в Нью-Джерси. Многие мировые банковские, оборонные системы и системы искусственного интеллекта предпочитают языки программирования, которые были популярны еще тогда, когда у Apple не было гаража.
Индустрия технологий имеет сходство с новыми и передовыми вещами, но если бы не древние языки кодирования, такие как COBOL, Ada, Pascal и Fortran, кредитная индустрия, научно-исследовательские организации и многочисленные системы защиты пришли бы к мгновенной остановки. Другими словами, без всего этого старого кода мы бы облажались.
Пятидесятилетние языки программирования все еще вычисляют миллионы транзакций и статистику и служат основой для систем, на которые опирается современный мир. Например, согласно отчету Reuters за 2017 год, более 95 процентов банкоматов и 40 процентов банков используют код COBOL .
Некоторые из этих древних табуляторов все еще хорошо выполняют определенные функции. Есть также много руководителей компаний, которые не хотят выбирать проверенное временем программное обеспечение, жизненно важное для бизнеса их компании, поэтому вместо капитального ремонта и модернизации они просто исправляют старый код и надеются на лучшее.
Борьба с древними технологиями не является новым явлением. Например, Калифорния потратила сотни миллионов долларов, пытаясь обновить свою DMV и технологию начисления заработной платы. Тем не менее, нынешняя пандемия и вызванная ею волна безработицы высветили, как сильно разрушается программная инфраструктура Америки по сравнению с физической.
Вот пять «винтажных» языков, от которых мир зависит больше, чем вы думаете, и почему это может вас немного нервировать.
Фортран
Если бы не Fortran, многие из суперкомпьютеров и моделей, которые мы используем для таких вещей, как прогнозирование погоды, астрофизика и статистический анализ высокого уровня, просто не сработали бы.
Созданный IBM в 1950-х годах, Fortran (сокращение от Formula Translation) был одним из первых языков высокого уровня, который использовал слова вместо цифр и позволял программистам писать программы на 500% быстрее, чем при использовании машинного кода. Не так много разработчиков изучают язык сегодня.
«Я использую Фортран все время - я просто никогда не думаю об этом», - говорит Джеймс Ховард, специалист по данным из Лаборатории прикладной физики Джона Хопкинса. Хотя Ховард не программировал на этом языке годами, его приложения регулярно обращаются к основным библиотекам Fortran. Построенные в начале 70-х, они в хорошем состоянии и «ослепительно быстрые».
В последний раз Ховард должен был написать программу на Фортране около 10 лет назад. Он работал в Федеральном резерве и должен был перемещать данные между двумя приложениями; один был написан на С, а другой на Фортране. Программы перестали общаться, потому что поставщик прекратил предоставлять библиотеку Fortran.
40-летний программист вспомнил кое-что, что он читал в детстве, что структура вызова данных для языка программирования C противоположна Фортрану. Он написал простой сценарий, чтобы перевернуть заказ, и, вуаля, Федеральный резерв вернулся в дело.
Ada
Правительственные программисты полагаются на относительно неясную кодовую базу Ada при разработке систем, требующих надежности, таких как системы защиты и безопасности. Что именно запрограммировано в нем? Ну, это в некотором роде государственная тайна, но НАСА и Боинг в последние годы использовали код на основе Ады для программирования спутников и самолетов.
Министерство обороны (DOD) курировало разработку Ады в 1970-х годах для сокращения количества языков программирования, используемых военными, которых в то время было более 400. Ада была построена, чтобы быть, несомненно, надежной в ситуациях жизни или смерти и защищен от ошибки программиста. Хотя формулировка была предоставлена в 1980 году, Конгресс не предписывал ее использование во всех государственных системах до 1995 года. Два года спустя Министерство обороны отказалось от мандата, полагая, что оно будет дешевле и более гибким, чтобы использовать широко доступную, современную систему. системы дат. Но он все еще используется сегодня.
Паскаль
Многие программисты считают Pascal почти мертвым языком программирования, но он живет несколькими способами. «Хотите верьте, хотите нет, но этот язык по-прежнему очень популярен во многих частях мира, но в США вы также можете говорить по-латыни», - говорит Дейв Хаттер, который провел три года в крупной страховой компании, помогая обновить миллион строк кода, оценивающих, сколько стоят политики и сколько они заплатили
Многие из этих старых программ были написаны задолго до сегодняшних опасений по поводу нарушений безопасности и содержат конфиденциальную информацию. Человек, который сейчас работает в качестве кибербезопасности, полагает, что программы могут быть относительно безопасными только из-за «безопасности по неизвестности» - молодые программисты не знают, что делать с кодом, созданным десятилетиями. «15-летний хакер не будет знать, как работать с каким-то мэйнфреймом IBM 390 с COBOL», - говорит он. «Сейчас я не говорю, что они не могли учиться. Но они не узнают.
BASIC / Visual Basic
BASIC не совсем в начале списка, когда речь заходит о языках, которые люди используют в 2020 году, но многие современные приложения, на которые мы полагаемся, просто не существовали бы без него. Например, если вы когда-либо программировали макрос Excel, вы использовали язык BASIC.
Сокращенно от Универсального кодового символа для начинающих, BASIC был запущен в 1963 году в Дартмутском колледже как способ обучения широкой аудитории теориям и возможностям программирования - окунуться в воду, прежде чем перейти на более надежные языки, такие как Fortran. Популярность BASIC росла вместе с персональным компьютером - у компьютеров Apple, IBM и Atari были свои версии.
К середине 1980-х компьютерные ботаники-самоучки стали меньше волноваться по поводу BASIC и больше интересовались сторонними программами. Затем в 1991 году Microsoft запустила Visual Basic, который не был обновлением BASIC, но использовал те же команды и структуру и имел лучший графический интерфейс. Затем этот язык использовался многими предприятиями для написания больших и маленьких программ. Несмотря на то, что Microsoft заявила, что прекратила поддержку Visual Basic 6 (самой последней версии) в 2008 году, но у этого языка все еще много пользователей. Посмотрите на индекс Tiobe (который отображает самые популярные языки программирования): VB по-прежнему в топ-10!
COBOL
«Я бы сказал, что более 90% людей, которых мы видим, используют COBOL в качестве основной части того, что они написали», - оценивает Брэндон Иденфилд, который обновляет и переводит унаследованные приложения для Modern Systems и помог пересмотреть код для Нью-Йорка и Сингапура. фондовые биржи. «Любая крупная компания, о которой вы можете подумать, вероятно, имеет нездоровое количество таких вещей».
COBOL, аббревиатура от Common Business-Oriented Language, был запущен в 1959 году для задач обработки данных, таких как отслеживание бюджета, банковские операции и учет заработной платы. Министерство обороны (DOD) изначально разработало язык как временный проект. Затем DOD требовал от производителей компьютеров включать COBOL в машины, которые они продавали, и язык быстро распространялся в течение следующих нескольких десятилетий. Согласно отчету Reuters 2017 года, более 95% банкоматов и 40% банков по-прежнему используют код COBOL .
Большая часть этого программирования была развернута на мейнфреймах, и современные системы были перенесены в облако. Как показало затруднение в Нью-Джерси, разработчики, которые знали, как поддерживать код COBOL, стареют или уже вышли на пенсию.
Компании, которые модернизируют эти программы, обычно делают это несколькими различными способами.
«Большой системный интегратор бросит кучу тел в код; они сядут, посмотрят и перепишут », - говорит Иденфилд. Такой подход часто самый рискованный, трудоемкий и дорогостоящий. В среднем, большие работы по программированию с ручным кодированием могут занимать от 3 до 10 лет и могут стоить сотни миллионов долларов.
Иденфилд рекомендует автоматизированные решения и говорит, что первым логическим шагом может быть просто перемещение кода из устаревшей версии COBOL в текущую, что позволит многим системам перейти на современные серверы. Он сравнивает машинное обновление с переводом с французского на английский: «Основа сказанного переведена отлично. Вам просто нужно исправить синтаксис, как это сформулировано ». Этот подход может также сократить время и стоимость обновления, говорит он, где-то между шестью и 24 месяцами.
Это будет дешево? Да, это будет дешевле. Проекты современных систем обычно варьируются в цене от 200 000 до 10 миллионов долларов. По словам Иденфилда, большая часть проекта не переводит код, а тестирует, чтобы убедиться, что он все делает правильно.
Причина, по которой эти обновления не происходят?
«Никто не слышал об этом раньше, потому что это не популярная тема, и люди обычно не пытаются говорить о грязном белье, которое у них есть», - объясняет он. ИТ-специалисты также имеют привычку пинать банку в будущем.
«Бьюсь об заклад, что штат Нью-Джерси сейчас будет уделять внимание этому вопросу, но я также готов поспорить, что половина их коллег будет думать, что с ними этого не случится,« не я »».
Переведено с сайта https://www.digitaltrends.com/features/the-modern-world-runs-on-ancient-code/