Часть четвёртая
Вот и четвёртая часть статьи об Аде...
Эта часть будет финальным аккордом нашего с вами разговора про этот замечательный язык программирования. И в ней мы с вами сейчас обговорим то, что ещё не успели в предыдущих частях. Однако сначала небольшое, так сказать, лирическое отступление.
Многие сетовали на то, что в "сериале про Аду" отсутствовали примеры. То есть, не было кода программ на Аде. Откровенно говоря, я не просто не вижу необходимости включения примеров кода на Аде в статью. Потому что статья носит обзорный характер и никоим образом не ставит целью заменить собой учебники по данному языку программирования (а все четыре части - это, по сути дела, одна статья, только разбитая на несколько газетных номеров). Поэтому примеры лучше искать в книгах или во Всемирной паутине, а не на страницах "Компьютерных Вестей".
Итак, вернёмся к нашей Аде. В прошлой части я рассказал вам немного о самом популярном из компиляторов этого языка - GNU Ada Translator, или просто GNAT. И упомянул, что существует бесплатная среда разработки для него. Нет, сейчас я имею в виду не то IDE, которое разработала компания Aonix на основе Eclipse. Эта среда разработки функционирует совершенно автономно от Eclipse и именуется GNAT Programming Studio - GPS.
GNAT Programming Studio, вообще говоря, не является свободной программой, как и сам GNAT. То есть денег стоит его профессиональная версия, но есть и такая, которую можно использовать бесплатно - естественно, только в некоммерческих целях. Найти академическую (бесплатную) версию, а также информацию о профессиональной версии можно на том же сайте, на котором представлен компилятор GNAT - www.adacore.com.
Обе версии GPS работают на множестве самых разнообразных платформ. Среди них HP/UX, MacOS Darwin, Solaris, Linux, Windows. Есть версии для разных процессорных архитектур: Intel x86, PowerPC, Sparc, Intel 64. Это замечательно, но, конечно же, все платформы, которые поддерживаются компилятором, среда разработки охватить просто не в состоянии. Тем не менее, под теми системами, под которыми есть качественная графическая оболочка, позволяющая воспользоваться всеми преимуществами GPS, среда разработки, как видите, умеет работать. Могу лично подтвердить, что она безукоризненно работает под Windows.
Надо сказать, что GPS - вполне современная среда программирования, что лишний раз опровергает миф о том, что Ада - язык устаревший. Для устаревших языков и среды разработки соответствующие. Помимо непосредственной подсветки синтаксиса языка, среда умеет выполнять фолдинг (сворачивание и разворачивание) участков программного кода, показывает подсказки, помогающие в наборе параметров процедур. В среде имеется довольно удобный и функциональный менеджер проектов, который позволяет осуществлять навигацию по проектам, содержащим большое количество файлов с исходными текстами. Собственно, как замечают разработчики, GNAT и GPS тестировались на больших проектах, поэтому их использование в таких проектах вполне целесообразно. Ко всем прочим своим плюсам, GPS умеет взаимодействовать с системой контроля версий (CVS), что также упрощает работу программистов над большими проектами. Честно говоря, вряд ли без этой возможности можно было бы серьёзно рассуждать о работе с большими проектами в среде GPS. В качестве отладчика среда использует GNU Debugger, правда, несколько переработанный. В бесплатной версии имеется GNU Visual Debugger, который можно использовать отдельно от среды GNAT Programming Studio. В коммерческой версии возможности отладчика шире, однако подробности разработчики не раскрывают.
Впрочем, сегодня я хотел рассказать не только о GPS, но и о некоторых других разработках, связанных с Адой.
Как я уже говорил, Ада - язык объектно-ориентированный. И объектная концепция его такова, что идеально подходит для использования Ады под платформой Microsoft .NET. Свято место, как известно, пусто не бывает, и Ада для .NET - не выдумка, а реальность. Проект, реализующий компилятор Ады для платформы .NET и некоторые дополнительные инструменты для программирования на Аде под этой платформой, называется A# и располагается по адресу asharp.martincarlisle.com.
A# - это полноценный .NET компилятор, который выдаёт код, совместимый с Microsoft .NET Framework 2.0. Соответственно, можно использовать все классы из Framework, в том числе и библиотеку Windows Forms, так что теперь на Аде можно создавать даже полноценные приложения с графическим пользовательским интерфейсом. Правда, возникает вопрос, насколько разумно использовать Аду в таких приложениях, если тут уже, собственно, надёжность разработанного приложения зависит не только от компилятора и коллектива программистов, разрабатывающих программу, но и от платформы в равной степени. Платформа, как дополнительный уровень абстракции, добавляет свои вероятности ошибок, и с этим ничего не поделаешь. Поэтому A# не кажется серьёзной разработкой. Хотя он прекрасно подходит для изучения самого языка.
Чем ещё может A# привлечь потенциального пользователя? Собственно, всё тем же - интеграцией с .NET. И, более того, с самой популярной средой разработки для этой платформы - Microsoft Visual Studio .NET 2005. Эта среда разработки, пожалуй, удобнее GPS и даже Eclipse, а самое большое её преимущество - она привычна и знакома большинству программистов, разрабатывающих программное обеспечение для платформы .NET. Впрочем, как я уже говорил, Ада - далеко не самый популярный язык для разработки под эту платформу.
Гораздо интереснее вспомогательные средства для тестирования программ, написанных на Аде. Поскольку Ада - язык, ориентированный на повышенную надёжность создаваемых приложений, то средства тестирования для таких приложений необходимы как воздух. Конечно, сейчас существует великое множество автоматизированных средств тестирования программного обеспечения, и никто не мешает применять их к программам, написанным на Аде. Однако есть ряд специфических для этого языка инструментов, которые учитывают особенности Ады и разработанные для этого языка стандарты тестирования приложений.
Первый пункт в списке средств для тестирования - это программа для проверки исходного кода проекта под названием GNAT Checker (www.kolumbus.fi/vitali.kaufman/gch). Правда, поставляется она в виде исходных текстов, но скомпилировать её - дело нескольких минут. Она выполняет проверку исходных текстов на наличие различных алгоритмических ошибок и "ляпов". Вторая интересная и полезная программа - tg (www.free-software-consulting.com/projects/tg). Это не тангенс, а test generator. То есть генератор тестов - пояснение для тех, кто не знает английского. Он генерирует процедуру, которая автоматически "прогоняет" различные значения переменных в программе и тестирует её, таким образом, на устойчивость. В общем-то, не буду останавливаться более подробно на этих и других средствах, поскольку, очевидно, эти и другие решения вполне охватывают все потребности разработчиков, возникающих при написании программ на языке Ада.
Что ж, на этой мажорной ноте рассказ об Аде, пожалуй, закончим. Эта часть статьи будет последней, поскольку для обзорной статьи этого более чем достаточно, а углубляться - это уже не для газетной статьи, а для солидных книг. Которых, кстати, по Аде написано не так уж и мало. Конечно, не так много, как по C/C++, но и не так мало, как, например, по тому же Smalltalk. Для тех, кто заинтересовался этим языком программирования, могу порекомендовать совершенно замечательный сайт www.ada-ru.org. Это сайт русскоязычного сообщества программистов на Аде. Там можно найти учебники, библиотеки, компиляторы и различные дополнительные средства (в том числе и упомянутые выше инструменты для тестирования приложений, написанных на языке Ада). Очень рекомендую ознакомиться хотя бы поверхностно: можно найти много весьма любопытных вещей. Например, операционную систему MARTE OS (официальный сайт - marte.unican.es). Я уже говорил, что Ада - второй после Си высокоуровневый язык, официально сертифицированный для написания операционных систем? Если да, то простите за повторение...
Если же заинтересуют англоязычные ресурсы, обратитесь к сайту www.adahome.com.
Конечно, Ада - не идеальный язык программирования. В этом мире нет ничего идеального. И языки программирования - не самое худшее из того, что может своей идеальностью испортить жизнь...
Никлаус Вирт, создатель языков Паскаль, Оберон, Модула, Эйфель когда-то сказал про Аду: "Слишком много всего вываливается на программиста. Я не думаю, что, изучив треть Ады, можно нормально работать. Если вы не освоите всех деталей языка, то в дальнейшем можете споткнуться на них, и это приведет к неприятным последствиям". У каждой медали своя сторона. Ада интересна во многом своей необычностью, нетривиальным подходом ко многим вопросам. И, коль скоро язык этот существует уже много-много лет, и уходить с рынка пока не собирается, значит, этот подход имеет право на жизнь. И, может быть, создание отказоустойчивых систем сейчас не самая востребованная работа, но всё же полезно иметь представление о языке, с помощью которого такие системы создаются. Надеюсь, я сумел сообщить вам что-то новое и заинтересовать Адой так же, как когда-то этим языком заинтересовался сам.
Вадим СТАНКЕВИЧ
Горячие темы