«Я не считаю, что структуры головного мозга менее подвластны математикам, нежели движения и свойства звёзд и планет; вполне, если выбрать для их рассмотрения правильную точку зрения. Я хотела бы оставить последующим поколениям вычисляемую модель нервной системы»
Ада Лавлейс

Многочисленные разговоры в соцсетях на тему «а что там военные и программирование» определили для меня тему данной статьи цикла «Информационная Война». И действительно – военные любят все специализированное, все заточенное под них, все «дубовое» и «железное». Им нужны свои автомобили, своя одежда, свои котелки. И свои языки программирования. Надежные, как автомат Калашникова.

Преуспело в этом вопросе НАТО, в самый разгар холодной войны. Военным IT специалистам нужен был военный инструмент, вопрос назрел. В 70-х годах 20 века, Министерство Обороны США устроило международный конкурс, по результатам которого необходимо было выбрать язык программирования для использования в военных целях. На тот момент времени ни один из существующих языков не устроил DARPA (Defense Advanced Research Projects Agency) — управление Министерства Обороны США, отвечающее за разработку новых технологий для использования в интересах вооружённых сил. Результатом долгого выбора и нескольких доработок на свет появился язык Ада, названный так в честь Ады Лавлейс.

Августа Ада Лавлейс была действительно незаурядным человеком. Вместе с Чарльзом Беббиджем они создали первую программируемую «Аналитическую Машину». Можно сказать, что Чарльз Беббидж отвечал за «железо», а Ада Лавлейс – за софт к нему. Перфокарты, циклы, алгоритмирование – вот что принес гений Ады Лавлейс в мир IT технологий в далеком 19 веке. Разумеется, первый «компьютер» планировался на паровой тяге. Об Аде Лавлейс, Чарльзе Беббидже и остальном кибер-стимпанке мы обязательно поговорим в следующей статье цикла, а пока вернемся во времена холодной войны.

В СССР пропаганда отреагировала достаточно жестко. В 1984 году советский пропагандист Мэлор Стуруа в газете «Известия» дал такую оценку языку программирования Ада:

Язык Пентагона — враг мира. Язык «Ады» — голос термоядерного ада… В языке «Ады» слышится проклятие роду людскому.

Следует понимать, что сам товарищ (а в последствии, после развала СССР, господин успешный бизнесмен, порвавший с «проклятым коммунизмом) Стуруа понятия не имел о том, что такое программирование и вообще – «как это работает». Однако, писать он умел стильно.

Отметим, справедливости ради, что из-за такой рецензии «товарища-господина» Стуруа, в СССР язык Ада приобрел определенную популярность. Сообщество программистов, которые в СССР считались, наряду с физиками, «гильдией техномагов», поняло, что перед ними нечто интересное, сакральное и опасное. Поговаривают, что первые эксперименты с языком «адского программирования» проводились со специальными мерами предосторожности и с завязанными глазами, ибо нельзя впускать в мозг советского человека инфернальные щупальца проклятого капиталистического термоядерного Сатаны…

Но, шутки в сторону. Даже инфернальный язык требовал в СССР своего ГОСТа, и таковой, вскоре, появился.

В 1980-х годах была организована рабочая группа по языку Ада при Госкомитете СССР по науке и технике. Группа занималась изучением всех открытых, а также добытых спецагентами КГБ засекреченных проклятыми милитаристами США данных по языку Ада. Группа исследовала возможность и целесообразность развития и использования Ады в СССР. И перспективы были обнаружены весьма большие. Деятельность этой группы привела к концу 1980-х годов к разработке компиляторов Ады для практически всех применяемых в СССР компьютеров. Была выпущена масса книг по языку Ада на русском языке.

В МГУ проводилась работа по созданию собственных пакетов тестирования ада-трансляторов на соответствие стандартам. В ЛГУ для создания ада-системы была использована ранее разрабатываемая для реализации Алгола-68 система «Паллада», которую перевели на Аду. Так «Адское Программирование» прочно вошло в жизнь советского кодера…

Тем временем, были у Ады и оппоненты. Например, участвующий в том же конкурсе Никлаус Вирт, который стал широко известен как разработчик языка «Паскаль». Вирт высказался достаточно сдержанно, но, все же, негативно. Он сказал: «Слишком много всего вываливается на программиста. Я не думаю, что, изучив треть Ады, можно нормально работать. Если вы не освоите всех деталей языка, то в дальнейшем можете споткнуться на них, и это приведёт к неприятным последствиям».

Однако Жан Ишбиа, руководитель группы разработчиков Ады, выразив своё «уважение и восхищение» Виртом, не согласился с ним, ответив на критику: «Вирт верит в простые решения сложных проблем. Я не верю в такие чудеса. Сложные проблемы требуют сложных решений». И был, кстати, вполне прав в контексте ситуации.

В данном случае был необходим действительно надежный язык программирования общего назначения. Когда-то автор данной статьи работал системным администратором в фирме, которая занималась сопровождением таможенных операций. Софт мы заказывали у разработчиков из Санкт Петербурга. Очень редко, но сбои случались. В итоге это доставляло массу проблем, бесило офисных сотрудников, которые в итоге получали простой. Со службой поддержки и с внедренцами питерской фирмы у нас были неплохие отношения, они решали эти проблемы, иногда мы вместе разбирались с кодом. В общем, ничего страшного. Ничего страшного – в данном случае.

Язык Ада изначально предназначался, в том числе, для бортовых систем ракет, самолетов, систем вооружения. Просто, есть в нашем мире устройства и процессы, в которых риск сбоя должен быть сведен к минимуму. То есть совсем. Иначе мы будем иметь не возмущенный «офисный планктон», которому пришлось задержаться на работе, а самолет, рухнувший на центр мегаполиса. Поэтому, да – Жан Ишбиа был прав. В данном контексте сложные проблемы требуют сложных решений.

В общем, язык Пентагоном был принят. Потом, как и следовало ожидать, началась многолетняя волокита со стандартизацией, регистрация торговой марки, запреты на кастомные трансляторы и прочие действия, отбившие желание массовой аудитории работать с Ада. Что, собственно, и загнало проект в весьма узкую нишу. В узкую, но весьма востребованную до сих пор.

В 1987 году язык Ада был официально стандартизован ISO. С этого момента Министерство обороны США перевело язык в общественное достояние.

К 1990 году в мире существовало уже около 200 компиляторов, соответствовавших стандарту языка Ада.

В 1995 году был принят новый стандарт Ады, известный как Ada95. В язык были введены средства объектного программирования. Кроме того, язык был дополнен более развитыми средствами для взаимодействия с программами, написанными на других языках.

В марте 2007 года опубликованы изменения в стандарте Ады. Они коснулись, в основном, возможностей объектно-ориентированного программирования. Были введены интерфейсы, принят обычный для большинства гибридных языков синтаксис вызова метода, внесён ещё ряд дополнений.

В 2012 году ISO принят и опубликован новый стандарт языка.

У Ada – простой, понятный, хорошо читаемый синтаксис. Этот синтаксис существенно снижает риск ситуаций, когда случайная опечатка приводит к тому, что код не становится формально неправильным, но существенно меняется его семантика.

Изначально, Ада — модульный язык программирования со строгой типизацией, унаследовавший синтаксис от Паскаль и Алгол. Если вы в «теме», то глядя на «Hello, World!» должны испытать определенную олд-скульную ностальгию:

Одним из главных требований к языку, как уже говорилось, была надёжность его использования. Соответственно, это повлекло за собой строгие ограничения по структуре, типам, написанию и многому другому. Кроме того, почти все ошибки здесь улавливаются на этапе компиляции. Другим требованием была максимальная читаемость кода в распечатанном виде, что и повлекло за собой тяжеловесность полученного языка и невысокую гибкость.
Некоторые скептики пытаются утверждать, что язык Ада ушел в прошлое. Не так давно его опубликовали даже в списке так называемых «мертвых» языков программирования. Это, разумеется, в корне неверно.
Авиастроительные компании Boeing, Airbus, российские Ил-96 и Бе-200 поднимают в воздух свои машины благодаря программным разработкам из Ада. Вся мировая авиация продолжает его использование.
Язык программирования Ада, вышедший с военного конвейера в разгар холодной войны, занимает весьма небольшую, но весьма важную нишу в военном и гражданском машиностроении и информационных технологиях. И пока нет никаких предпосылок к тому, что что-либо другое придет на замену.

P.S.:

ПО для атомных станций и даже банковская система, включая сети банкоматов от Ада тоже не далеко ушли. Аналогичное можно сказать про современные инновации в автопроме. 

Танай Чолханов, специально для News Front

Обязательно подписывайтесь на наш канал, чтобы всегда быть в курсе самых интересных новостей News-Front|Яндекс Дзен