Интервью для сайта Ada_Ru [Сергей Игоревич Рыбин] (fb2) читать постранично, страница - 2


 [Настройки текста]  [Cбросить фильтры]

реализации ASIS для GNAT и разработка на основе интерфейса ASIS различных инструментов анализа Ада-кода. С 1996 года эта работа поддерживается компанией AdaCore.

Надо сказать, что в начале проекта по реализации ASIS для GNAT компилятор GNAT был уже компилятором Ады 95, тогда как спецификация ASIS соответствовала первому стандарту Ады редакции 1983 года. То есть, нам приходилось по ходу проекта пересматривать и расширять определение ASIS для нового стандарта Ады. В результате я оказался вовлечен в соответствующую деятельность ASIS Working Group, которая своим результатом имела утверждение в 1998 году стандарта на интерфейс ASIS (ISO/IEC 15291).

Ada Ru: Как я понимаю в свое время Ада в СССР выглядела довольно перспективно. Было выпущено десятки книг по этой тематике. Можете поделиться вашим видением, что было достигнуто у нас в этой области к моменту распада Советского Союза?

С.И.: Достижения в этой области у нас были, и, на мой взгляд, довольно неплохие. В рамках работы по созданию комплекта тестов для Ада-трансляторов мне довелось достаточно близко познакомиться с отечественными реализациями Ады на ЕС ЭВМ, Эльбрусе, СМ ЭВМ. В течение довольно длительного времени мы использовали систему Паллада (разработка ленинградского университета) не только как инструмент отладки и проверки результативности нашего комплекта тестов, но и как инструментальную систему для небольших студенческих проектов. В конце 80-х были попытки организовать достаточно серьезные проекты по внедрению Ады в разработку встроенного ПО, в том числе и военного, но увы — не успели…

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

Ada Ru: Очевидно, Ада в широких кругах, в частности в Open Source, менее популярна чем такие языки, как С, С++, Java. В чем Вы видите причины этого?

С.И.: Я бы не стал выделять Open Source, прежде всего потому, что ситуация в Open Source community есть отражение общей ситуации в программной индустрии.

Анализ причин успеха Ады в конце 80-х — начале 90-х голов прошлого века, последовавшего затем провала в конце 90-х и медленного, но стабильного роста Адского сектора программной индустрии в настоящее время вполне может оказаться темой серьезного исследования на стыке информатики, экономики, психологии и, возможно, еще каких-то наук. Нас, как Ада-энтузиастов, в первую очередь интересуют именно причины того, что язык, при всех своих несомненных преимуществах, оказался не столь популярен и распространен, как мог бы и должен бы быть.

Я бы отметил две причины этого.

Первая причина — стратегическая ошибка в проектировании первой версии языка. Ада была задумана как *единый* язык встроенных систем, и Пентагон, как «заказчик» и инвестор проекта по созданию языка, еще в ходе разработки языка недвусмысленно дал понять, что как только язык будет создан, тут же будет введено строгое правило: «все новые проекты должны выполняться только на Аде». В результате первая версии языка содержала крайне примитивные средства интерфейса с другими языками. В самом деле, зачем заботиться о многоязыковом программировании, если все новые программы будут написаны только на Аде? В конце 70-х годов прошлого века такое проектное решение казалось вполне разумным, однако стремительный рост программной индустрии, и, соответственно, рост требований и ожиданий заказчиков ПО привел к тому, что выполнение требования Пентагона «все новые проекты — только на Аде» все чаще и чаще оказывалось на практике или неразумно дорогим, или просто невозможным. В ряде случаев оказывалось, что выполнение этого требования означало переписывание с нуля готовых решений, уже реализованных на других языках. Что же касается невоенной индустрии, в которой использование Ады не являлось обязательным, то в ней многоязыковое программирование в конце 80-х уже было общей практикой, и Ада, которая не позволяла этого эффективно делать, стала сдавать свои позиции. Вскоре и Пентагон был вынужден ослабить требование выполнения новых проектов только на Аде. В стандарте Ады 1995 года проблема многоязыкового программирования получила полное и эффективное решение, но, к сожалению, время оказалось упущено.

Вторая причина — мощная финансовая и организационная поддержка Пентагона сыграла с Адой злую шутку. Высокая стоимость военных заказов и законодательно (!) оформленное требование Пентагона выполнять все новые заказы только на Аде привело к тому, что разработчики Ада-технологий были в первую очередь озабочены тем, чтобы их трансляторы успешно отрабатывали на комплекте эталонных тестов ACVC, проверяющем соответствие транслятора стандарту, а вопросы ресурсоемкости трансляторов и качества объектного кода отходили на