Довелось намедни на одном белорусском ресурсе прочесть статью «10 языков программирования, которые больше никому не нужны». Среди «заживо погребенных» оказались Fortran, Basic, J#, Turbo Pascal Ada и другие. Так вот, наибольшую полемику, как ни странно, вызвало обсуждение Aдa (надеюсь в этом месте я не оскорбляю чьи-либо чувства). Что, собственно говоря и сподвигло покопаться в этой увлекательной теме.
Ада получил свое название в честь той самой Ады Лавлейс, великого математика и первого в мире программиста (кстати, она единственный законнорожденный ребёнок знаменитого английского поэта Джорджа Гордона Байрона и его жены Анны Изабеллы Байрон). Этот язык был создан в конце семидесятых годов для бортовых систем военных объектов Пентагона.
Тем удивительней, что в 1989 году в СССР материализовался ГОСТ (он же государственный стандарт) по работе с данным языком программирования. Если покопаться в документе, то там можно найти массу интересных вещей. Вообще хочется снять шляпу перед предшественниками, сделавшими эту по-настоящему впечатляющую работу. Честно говоря, в 80-е в СССР, как ни странно, вообще с книгами по программированию судя по всему было неплохо. Вот тут краткая Ада-библиография.
Эксперты сходятся во мнении, что настоящих служителей Ада на постсоветском пространстве не так уж и много. Это и понятно. Все-таки, в основном данный язык применяется для программной разработки в авионике, атомной энергетике и в других промышленных отраслях, к которым на Java, ну никак, не подъедешь.
Стоит отметить, что язык изначально разрабатывался для встраиваемых систем. Отсюда — неразвитость Ады по части GUI и СУБД. А раз с этим у неё туго, то и шансов развиться не было. Зачем она массовому разработчику, ведь ~99% пользовательских приложений нуждаются в GUI и СУБД.
Синтаксис
У Ada – простой, понятный, легко читаемый синтаксис, который существенно снижает риск ситуаций, когда случайная опечатка приводит к тому, что код не становится формально неправильным, но существенно меняется его семантика.
Изначально, Ада — модульный язык программирования со строгой типизацией, унаследовавший синтаксис от Паскаль и Алгол. Если вы учили первый в школе или институте, то глядя на «Hello, World!» должны испытать ностальгию:
with Ada.Text_IO;
procedure Hello is
use Ada.Text_IO;
begin
Put_Line("Hello, world!");
end Hello;
Одним из главных требований к языку была надёжность его использования. Соответственно, это повлекло за собой строгие ограничения по структуре, типам, написанию и многому другому. Кроме того, почти все ошибки здесь улавливаются на этапе компиляции. Другим требованием была максимальная читаемость кода в распечатанном виде, что повлекло за собой тяжеловесность полученного языка и невысокую гибкость.
Более поздние стандарты частично решали эти проблемы, но по понятным причинам, они не сделали из Ада второй Python. (с)
Где больше Ада?
Покопавшись в «этих-ваших» интернетах оказалось, что Boeing, Airbus и даже российские Ил-96 и Бе-200 летают благодаря программным разработкам из Ада. Вся авиация плотно сидит там же. ПО для атомных станций и даже банковская система, включая сети банкоматов от Ада тоже не далеко ушли. Аналогичное можно сказать про автопром.
Тем не менее, если сравнить количество запросов из HR на специалистов по С#, Python, Java, С++, то очевидно, что адептов Ада требуется в разы меньше. Но это не означает, что они вовсе не нужны. Не случайно в 2012 году были разработаны новые стандарты языка. Есть мнение, что совсем скоро он получит второе дыхание. Однако, справедливости ради, стоит отметить, что за его почти сорокалетнюю историю, подобных прогнозов было не мало.
Если вас заинтересовал данный язык и вы вдруг решили узнать, где сегодня в мире грызут гранит Ада, заходите по ссылке. Но, если вы спец по С++, то в Parallels для вас есть местечко. Велкам!
Автор: Дмитрий Смиркин