Сучасний світ побудований на стародавньому кодексі. Це проблема

click fraud protection
стародавні мови кодування
Женев'єв Поблано/Цифрові тенденції

«Як ми дійшли до того, що нам буквально потрібні програмісти COBOL?» — запитав губернатор Нью-Джерсі Філ Мерфі на нещодавній прес-конференції.

Зміст

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

Зіткнувшись з безпрецедентною кількістю безробіття штату довелося негайно розширити свою 40-річну платформу заявок на виплату по безробіттю — капітальний ремонт що миттєво поклало початок шаленому пошуку програмістів, які знайомі з мовою кодування, яка існує десятиліттями COBOL.

Рекомендовані відео

Однак ця проблема є не лише в Нью-Джерсі. Багато світових банківських систем, оборонних систем і систем штучного інтелекту працюють на мовах програмування, які були в моді, коли Apple закінчилася з гаража.

Технологічна індустрія має прихильність до нових і передових речей, але якби не стародавні мови кодування, такі як COBOL, Ада, Паскаль і Фортран, кредитна індустрія, науково-дослідницькі організації та численні системи захисту прийшли б до зупинка. Іншими словами, без усього цього старого коду ми були б облажані.

П’ятдесятирічні мови програмування все ще обчислюють мільйони транзакцій і статистику та служать основою для систем, на яких покладається сучасний світ. Наприклад, згідно з даними 2017 року, понад 95 відсотків банкоматів і 40 відсотків банків використовують код COBOL. Про це повідомляє Reuters.

Деякі з цих стародавніх табуляторів все ще дуже добре виконують певні функції. Є також багато керівників підприємств, які не хочуть розбирати перевірене часом програмне забезпечення, життєво важливе для бізнес своєї компанії, тому замість капітального ремонту та модернізації вони просто виправляють старий код і сподіваються на це найкращий.

Боротьба з давніми технологіями — явище не нове. Наприклад, Каліфорнія витратив сотні мільйонів доларів, намагаючись оновити DMV і технологію нарахування заробітної плати. Проте нинішня пандемія та пов’язана з нею хвиля безробіття показали, наскільки американська програмна інфраструктура руйнується, як і фізична.

Ось п’ять «старовинних» мов, від яких наш світ залежить більше, ніж ви уявляєте, і чому це може змусити вас трохи нервувати.

Fortran

обкладинка посібника fortran

Якби не Fortran, багато суперкомп’ютерів і моделей, які ми використовуємо для прогнозування погоди, астрофізики та статистичного аналізу високого рівня, просто не працювали б.

Створений IBM у 1950-х роках, Fortran (скорочення від Formula Translation) був однією з перших мов високого рівня, які використовував слова замість чисел і дозволив програмістам писати програми на 500% швидше, ніж за допомогою машини код. Сьогодні не так багато розробників вивчають мову.

«Я постійно використовую Fortran — просто ніколи не думаю про це», — каже Джеймс Ховард, науковий співробітник Лабораторії прикладної фізики Джона Гопкінса. Хоча Говард роками не програмував цією мовою, його програми регулярно отримують доступ до основних бібліотек Fortran. Побудовані на початку 70-х років, вони добре обслуговуються та «сліпуче швидкі».

Востаннє Говарду доводилося писати програму на Fortran приблизно 10 років тому. Він працював у Федеральній резервній системі, і йому потрібно було переміщувати дані між двома програмами; один написаний мовою C, а інший – Fortran. Програми перестали спілкуватися, оскільки постачальник припинив надавати бібліотеку Fortran.

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

fortran punchard

Ада

Урядові програмісти покладаються на відносно незрозумілу кодову базу Ada, коли розробляють системи, які вимагають надійності, наприклад системи захисту та безпеки. Що саме в ньому запрограмовано? Що ж, це певна державна таємниця, але NASA і Boeing останніми роками використовували код на основі Ada для програмування супутників і літаків.

Міністерство оборони (DOD) контролювало розробку Ada в 1970-х роках, щоб зменшити кількість мов програмування, які використовувалися військовими, а їх на той час було понад 400. Ada була створена, щоб бути безсумнівно надійною в ситуаціях життя чи смерті та укріплена проти помилок програміста. Незважаючи на те, що мова була прийнята в 1980 році, Конгрес не дозволив її використання в усіх державних системах до 1995 року. Через два роки Міністерство оборони відмовилося від цього мандату, вважаючи, що буде дешевше та гнучкіше використовувати загальнодоступні сучасні системи. Але він все ще використовується сьогодні.

Паскаль

Паскаль плакат
На початку 80-х постер Apple Pascal можна було знайти по всьому офісу компанії, який давав програмістам зрозуміти, як використовувати код.

Багато програмістів вважають Pascal майже мертвою мовою програмування, але вона живе кількома способами. «Вірте чи ні, але це все ще дуже популярна мова в багатьох частинах світу, але в США ви можете добре говорити латиною», – каже Дейв Хеттер, який три роки пропрацював у великій страховій компанії, допомагаючи оновлювати a мільйони рядків коду, які оцінювали вартість і суму полісів.

Багато з цих старих програм були написані задовго до того, як сьогодні виникли занепокоєння щодо порушень безпеки та містять конфіденційну конфіденційну інформацію. Хаттер, який зараз працює техніком з кібербезпеки, вважає, що програми можуть бути відносно безпечними лише через «безпеку через невідомість» — молоді програмісти не знають, що робити з десятиліттями старим кодом. «15-річний хакер поняття не матиме, як працювати з мейнфреймом IBM 390 із COBOL», — каже він. «Я не кажу, що вони не могли вчитися. Але вони не дізнаються».

Паскаль був основою для ранньої операційної системи Apple, а нащадок цієї мови, Delphi, досі має сильних прихильників. Насправді Skype — одна з перших програм для відеодзвінків, яка набула широкої популярності та використання — спочатку була написана на Delphi.

BASIC / Visual Basic

BASIC не зовсім у верхній частині списку, коли йдеться про мови, якими люди користуються у 2020 році, але багато сучасних програм, на які ми покладаємося, просто не існували б без нього. Наприклад, якщо ви коли-небудь програмували макрос Excel, ви використовували форму BASIC.

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

До середини 1980-х років комп’ютерні ботаніки-самоучки були менш захоплені 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 на машини, які вони продавали, і мова швидко поширилася протягом наступних кількох десятиліть. За даними 2017 року, понад 95% банкоматів і 40% банків досі використовують код COBOL Про це повідомляє Reuters.

Значна частина цього програмування була розгорнута через мейнфрейми, а сучасні системи перемістилися в хмару. Як показало скрутне становище Нью-Джерсі, розробники, які знали, як підтримувати код COBOL, старіють або вже пішли на пенсію.

Компанії, які модернізують ці програми, зазвичай роблять це кількома різними способами.

«Великий системний інтегратор кине купу тіл на код; вони сядуть, переглянуть і перепишуть», — каже Іденфілд. Цей підхід часто є найризикованішим, тривалим і дорогим. У середньому кодування великої платформи може тривати від 3 до 10 років і коштувати сотні мільйонів доларів.

Іденфілд рекомендує автоматизовані рішення та каже, що першим логічним кроком може бути просто перенесення коду з застарілої версії COBOL на поточну, що дозволить багатьом системам перейти на сучасну серверів. Він порівнює машинне оновлення з перекладом з французької на англійську: «Основа сказаного перекладається ідеально. Вам просто потрібно виправити синтаксис того, як це сформульовано». Такий підхід може також скоротити час і вартість оновлення, каже він, десь від шести до 24 місяців.

Це буде дешево? Ну так дешевше буде. Вартість проектів Modern Systems зазвичай коливається від 200 000 до 10 мільйонів доларів. Значна частина проекту, пояснює Еденфілд, полягає не в перекладі коду, а в тестуванні, щоб переконатися, що він все робить правильно.

Чому ці оновлення не відбуваються?

«Ніхто раніше про це не чув, тому що це не сексуальна тема, і люди зазвичай не намагаються говорити про брудну білизну, яку вони мають», — пояснює він. ІТ-менеджери також мають звичку кидати банки на дорогу.

«Буду об заклад, що штат Нью-Джерсі зараз зверне увагу на цю проблему, але я також берусь об заклад, що половина їхніх колег подумає, що це не станеться з ними, «не зі мною».