Жарким летом 1991 года ВВС США было опубликовано официальное мнение Министерства обороны (МО) США о перспективах использования языка Си++ в военных проектах наравне с языком Ада. Был проведен очень серьезный сравнительный анализ этих языков. Учитывалось богатство инструментальных средств, их эффективность и качество, скорость обучения, стоимость создания и сопровождения крупных программных комплексов и еще множество других факторов. Сравнение производилось по целому ряду стандартных методик, разработанных как крупнейшими коммерческими фирмами, так и военными институтами.

 

Вывод был однозначен: нет никаких причин, чтобы отказаться от Ады в пользу Си++.

 

Вот небольшая статистика, которая наверняка будет интересна российским разработчикам. 28 американских компаний (данные на 1991 год) выпускали компиляторы для Ады и 18  -  компиляторы для Си++. Почти все Ада-фирмы присутствовали на рынке более пяти лет, а "сишники" значительно меньше. Существенным оказался и тот факт, что стандарт Ады не разрешает использовать компиляторы, реализующие подмножества языка или его расширения, а только то, что описано в стандарте, благодаря чему обеспечивается высокая переносимость программ.

 

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

 

Что касается программной инженерии, то большое число CASE-систем могло автоматически генерировать код на Аде и гораздо меньшее  -  на Си++.

 

В середине 80-х фирма IBM совместно с одним из американских военных институтов (Федеральной авиационной администрацией, FAA) провела сравнительный анализ пяти языков по 48 критериям, сгруппированным в 6 оценочных категорий. Си++ тогда еще не был известен, а его предшественник Си оказался на третьем месте с 59,5 балла, пропустив на второе место Паскаль с оценкой 63,3. Ада ушла в существенный отрыв  -  76,6 балла.

 

В аналогичном тестировании, проведенном в 1991 году, Ада обогнала теперь уже Си++ по всем категориям, уступив ему только в производительности (правда, всего полпроцента). Баллы распределились так: у Ады 78,8, у Си++ 63,9.

 

Результаты стоимостного анализа опять говорили в пользу Ады. Расходы на разработку крупных проектов оказались значительно ниже, чем у похожих проектов, написанных на Си++, а число ошибок, приходящихся на тысячу строк кода, оказалось у Ады тоже существенно меньшим (24 ошибки на тысячу строк кода против 31 ошибки у Си++). Сегодня выигрыш при использовании Ады на протяжении всего жизненного цикла программного продукта составляет 10 - 35% на стадии непосредственного написания программы и 30 - 70% на стадии сопровождения. Надо отметить, что большими МО США считает проекты размером около 500 000 строк исходного текста. Но сегодня эта величина, конечно, ближе к средним проектам.

 

Что касается использования Ады и Си++ в качестве языков, на которых автоматически генерируется код с помощью CASE-систем, то здесь не было выявлено преимуществ.

 

Однако несмотря на внешне столь однозначные выводы в пользу Ады, Си++ в конце концов все же был официально разрешен к использованию в ВС США. Угадайте, почему. Маленькая подсказка  -  кто сегодня ведущий разработчик компиляторов для Си++?

 

Автор выражает признательность Александру Гиглавому, директору Лицея информационных технологий, за помощь в поиске соответствующей информации.

 

Более подробные сведения о современном состоянии языка программирования Ада вы можете найти на Web-узле http://www.sw-eng.falls-church.va.us/AdaIC/.

 

Сергей Бобровский

Версия для печати