ПЕРСПЕКТИВЫ
(по материалам журнала CrossTalk 2000/2001)
Компания Reifer Consultants (www.reifer.com) в конце 2000 г. выполнила сравнительный анализ языков программирования Ада и Си/Си++ применительно к военным проектам. Для Ады результаты выглядят довольно пессимистично, поэтому в качестве контраргументов приводится мнение специалистов компании Ada Core Technologies Inc. (www.gnat.com).
Ада превосходит Си/Си++ по качеству стандартизации языка, уровню типизации данных, возможностям системы прерываний и степени повторного использования кода, а также в средствах создания высоконадежных систем реального времени. Этот язык имеет ряд несомненных преимуществ перед Си/Си++ в том, что касаеся реализации абстрактных типов, наличия средств строгого контроля за параметрами функций и выходом индексов за границы массивов (80% ошибок, возникающих при создании программ на Си/Си++, связано именно с этим), машинно-независимого представления двоичных значений (вместо битовых операций выполняется выборка полей записи) и гибких средств организации многозадачности.
Вместе с тем Ада уступает Си/Си++ в поддержке новых ОС, а также в наличии богатых стандартных библиотек, хороших средств сопровождения, отладки и формирования современных графических интерфейсов. Но в стандарт Ады входят автоматически формируемые спецификации для стыковки с другими языками программирования, и на практике вместе с Адой применяются математические библиотеки Фортрана, системные функции, написанные на Си, классы Java для работы с Интернетом и т. д. Спецификация ASIS для разработчиков инструментальных оболочек нередко используется при создании оболочек для других языков. Поэтому на рынке предлагаются интегрированные среды разработки, например, для Си++ и Ады, которые нередко дополняются системами конфигурационного управления, версионного контроля и др.
Ада проигрывает Си/Си++ в перспективе: практически не планируется выпуск оптимизирующих Ада-компиляторов, ухудшается ситуация с обучением, технической поддержкой и справочной литературой. В сравнении с 1994 г., когда ПО на Аде разрабатывали 16 компаний и насчитывалось 693 обновляемые версии Ада-компиляторов, в 1999-м эти показатели значительно снизились - до 8 компаний и 64 компиляторов, а к 2009-му останется всего две фирмы и не появится ни одной новой версии. Надо при этом отметить, что компании нередко просто сливаются или укрупняются. Среднегодовой объем рынка системного ПО для Ады - около 80 млн. долл.
Одна из причин, по которой сокращается число разработчиков компиляторов, - накладываемое сертификационной комиссией МО США требование о реализации полного стандарта этого достаточно сложного языка. Но зато такое требование значительно повышает степень переносимости Ада-приложений на уровне исходных текстов - она более высокая, чем у Java-программ.
В рамках проекта по модификации системы ПРО THAAD стоимость Ада-компилятора для новой аппаратной платформы оценивается в сумму порядка 1 млн. долл., а для его выполнения потребуется 18 месяцев. С другой стороны, современные средства разработки на Аде содержат независимое ядро кодогенерации и подключаемые компоненты для различных целевых платформ, поэтому стоимость Ада-компилятора для новой платформы сопоставима со стоимостью аналогичного продукта для Си++.
Число курсов по этому языку в колледжах и университетах США не снизилось, хотя количество новых книг по Аде сократилось до нуля. При этом Ада настолько прозрачна семантически и синтаксически, что изучить ее гораздо проще, чем, например, Java. Программистам, знающим Си++, перейти на Аду не составит особого труда - достаточно прочитать учебник пятилетней давности (стандарт не допускает языковых подмножеств или расширений, как это характерно для диалектов Си/Си++).
По результатам анализа 1500 проектов стоимость одной СК на Аде 95 сравнялось со стоимостью СК на Си++ - а по сравнению с СК на других языках 3-го поколения она ниже всего в два раза. С учетом сегодняшних расходов на сопровождение и развитие разница вообще оказывается не в пользу Ады, хотя данный язык как раз и создавался с целью снижения доли таких расходов в стоимости проекта. Но конкурировать с рынком обучения, сопровождения и услуг для Си/Си++ компаниям, поставляющим Ада-продукты, не под силу, хотя рыночный успех тех или иных технологий, как показали примеры Бейсика или OS/2, практически не связан с их объективными возможностями и реально не оказывает влияния на выбор ИТ для специфических военных задач. Средства разработки на Аде сегодня самодостаточны и ориентированы в первую очередь на сверхдолгие по меркам коммерческой ИТ-индустрии проекты.
В ближайшее время в МО США только один из десяти проектов будет реализован на Аде. Такое соотношение объясняется общей нехваткой ИТ-специалистов и организационными проблемами. В то же время пока не видно схожих с Адой решений, включающих в себя соответствующие технологические и архитектурные средства создания систем реального времени.
Различные материалы по Аде можно найти на сайте www.adaresource.org.