Интегрированная среда разработки приложений в Linux -- выбор за потребителем


Алексей Лизун

Естественно, общее количество доступных пакетов, претендующих на звание интегрированной среды разработчика, достаточно велико. Большой набор упорядоченных ссылок на проекты этой тематики вы найдете по адресу http://www.i.com.ua/~lizun/links/ide.html. Сделаем попытку выбрать в этом пестром многообразии наиболее мощные, функционально насыщенные и удобные в использовании пакеты и познакомить с ними читателей.


Требования, предъявляемые к IDE

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

Под функциональностью понимаются возможности, предоставляемые IDE в распоряжение разработчика. Эти ресурсы, как правило, включают в себя весь арсенал средств создания и развития проекта, редактирования, компиляции, выполнения, отладки исходного кода, создания сценария компиляции, встроенную систему контроля версий кода, броузер классов, средства для встраивания дополнительных компонентов и готовых приложений (вероятно, разрабатываемых с использованием специального набора SDK).

Многоплатформенность подразумевает возможность работы с IDE не только на платформе Linux, но и под управлением других операционных систем (даже не POSIX-совместимых).

Понятие ресурсоемкости сводится к тому, насколько мощная аппаратная платформа необходима для успешного функционирования среды разработки. Как известно, в большинстве случаев Linux предъявляет к аппаратуре более чем скромные требования.

Техническая поддержка определяет, сколько времени и сил придется затратить пользователю IDE на освоение возможностей системы. При отсутствии такой поддержки может оказаться, что работать в знакомой среде наподобие XEmacs гораздо проще и эффективнее. Кстати, Линус Торвальдс, создатель Linux, по его собственному признанию, до сих пор предпочитает эмулятор терминала xterm с Micro Emacs в сочетании с gcc и gdb.

Цена IDE в мире Unix определяется как функциональностью пакетов, так и количеством одновременных пользователей, предусмотренных лицензией.


Code Forge 1.3.1

Данный пакет предназначен для разработки крупных проектов и ориентирован исключительно на Unix-системы: Linux (на платформах Intel, Alpha и PowerPC), FreeBSD (Intel), Solaris (Intel, UltraSPARC), а также ряд других.

Минимальная рекомендуемая конфигурация включает 32 MB оперативной памяти и 20 MB пространства на жестком диске. Наряду с WipeOut это единственный дистрибутив, без проблем работающий под управлением Caldera Linux с ядром 2.1.13 1995 г.

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

Один из недостатков пакета -- использование набора виджетов Motif. Это значит, что разработчикам необходимо либо иметь установленный дистрибутив библиотеки Motif, либо же применять статически связанный исполнимый файл намного большего размера.

В остальном же система оставляет самые приятные впечатления. Полный и достаточно совершенный набор функций позволяет без труда работать не только в одиночку, но и в группе. Для визуального представления структуры проекта в Code Forge применили дерево зависимостей и виртуальные папки. В том же окне имеется отдельная область, содержащая находящиеся в работе файлы. Парадигма "стабильной" и "рабочей" среды обеспечивает целостность данных -- каждый разработчик имеет свою копию "рабочей" среды. Изменения фиксируются лишь после того, как соответствующие модули переводятся в "стабильное" состояние. Процесс этот управляется системой контроля версий RCS. В ближайшее время появится поддержка систем управления версиями CVS и коммерческой SCCS. Есть внешний интерфейс (front-end), позволяющий эффективно настроить работу данной системы.

Количество "внешних" средств разработки, поддерживаемых Code Forge, внушает уважение. По этому параметру на сегодня ей просто нет равных. Настройки каждого средства при необходимости могут быть сохранены для дальнейшего использования.

Для создания и редактирования файлов в системе предусмотрен встроенный редактор. Он выделяет синтаксические конструкции цветом и шрифтом, автоматически выравнивает текст, обеспечивает многоуровневую систему отката действий. Полный список поддерживаемых языков программирования может запросто занять полстраницы. Вот некоторые из них: C/C++, CORBA IDL, Perl, Python, Java, JavaScript, Ada, Modula-2, Pascal, FORTRAN, Assembler, REXX, Tcl/Tk, HTML, PHP, SGML, TeX/LaTeX, Shell. Среди редких на сегодня функций редактора нужно отметить встроенное средство создания и воспроизведения макросов и систему закладок (имеются закладки даже для ошибок компиляции). На системах с достаточным объемом памяти повторный запуск редактора осуществляется прямо из оперативной памяти.

Есть и другие "стандартные" компоненты любой зрелой IDE: "Diff tool" -- графическая надстройка, отображающая различия между файлами, "Grep tool" -- front-end утилиты grep. C-Forge содержит средства для импорта/экспорта проектов и отдельных модулей. Предусмотрена возможность создания собственных сценариев компиляции проекта (Makefile) или импортирования их. Результаты компиляции отображаются в отдельном окне. Добавьте к этому интуитивно понятный интерфейс с поддержкой технологии Drag’n’Drop, отличную систему интерактивной помощи и вы получите полное представление о рассматриваемом пакете.

В ближайших планах компании -- броузер классов, панель навигатора имен (а-ля Visual C++) в окне проекта, развитие средств экспорта и поддержка Microsoft Source Safe.


Penguin IDE SNiFF+ 3.2

SniFF+, компании Windriver Systems (ранее TakeFive Software), является мощной средой создания и развития крупных проектов. Данная система представляет собой гибкое масштабируемое решение, позволяющее работать над проектом группе разработчиков. SNiFF+ может поставляться в различных конфигурациях, ориентированных на поддержку С/С++, Java, ADA, Fortran, IDL, а также других языков программирования. Рассматриваемая IDE без особого труда интегрируется с различными системами контроля версий.

Пакет распространяется как для Unix-систем (AIX, Digital Unix, HP-Unix, Irix, Linux, Reliant Unix, Solaris, SunOS, UnixWare), так и для ОС из семейства Microsoft (Windows 95/98, Windows NT).

Для успешной работы вам понадобится как минимум 32 MB оперативной памяти и около 100 MB пространства на жестком диске.

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

Для редактирования или создания компонентов проекта вы можете воспользоваться встроенным редактором SNiFF+ либо подключить к системе ваш любимый редактор (Emacs, vi и т. д.). Изменения, вносимые в исходный код, отображаются в броузере имен без перекомпиляции проекта.

Проект, развиваемый в рамках данного пакета, переносится на любую из поддерживаемых платформ. В SNiFF+ имеется возможность автоматической генерации сценариев компиляции приложения. Вы сами выбираете и конфигурируете средства, необходимые для компиляции. Для отладки кода используются отладчики gdb версий 3.х, 4.х или ddd 3.x.

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

Как и положено для таких систем, здесь есть конфигурируемые утилиты поиска файлов (find), нахождения различий в файлах (diff), поиска по имени функции или по образцу (grep).

Внося поправки в сотню файлов, очень легко просто забыть о каком-нибудь из них. В SNiFF+ предусмотрено встроенное средство PowerChange, позволяющее автоматически вносить глобальные изменения в структуры проекта в считанные секунды.

Пакет запоминается огромным количеством приложений и утилит, которые могут быть интегрированы в IDE. Список приложений, протестированных разработчиками системы на совместимость, просто впечатляет.


WipeOut 1.4.5

WipeOut IDE развивается компанией "Softwarebuero M&B" для Unix-систем. В данный момент доступны три варианта пакета -- стандартный, Pro и ProTeam. Поддерживаются такие операционные системы: Linux (на платформах Intel, Alpha, Motorola), Solaris (платформы SPARC и Intel), а также FreeBSD и HP-UX.

WipeOut допускает разработку приложений на языках С/С++, Java, Eiffel и Fortran. Пакет построен по модульному принципу и состоит из компонентов, многие из которых являются графическими front-end для таких средств, как система управления версиями CVS (RCS), отладчик GDB, утилита GNU make, JDK, компиляторы с языков высокого уровня. Вместе эти компоненты образуют среду, поддерживающую развитие проекта группой разработчиков, а также управление, анализ и тестирование исходных кодов проекта. В составе имеются: броузер классов, средства поиска и глобальной замены в файлах Symbol retriever, отладчик Bugview, интегрированная система подсказки на базе HTML-броузера SurfBoard, SpellMaster -- front-end для ispell, встроенный текстовый редактор с выделением синтаксических конструкций цветом. Следует добавить, что IDE легко может быть дополнена инструментальными средствами вашей разработки или других поставщиков ПО. Вы можете интегрировать построители интерфейса, CASE-средства или свой любимый редактор. В поставку WipeOut входит специально разработанный WipeOut Development Kit, с помощью которого можно создавать новые и интегрировать существующие приложения в состав среды.

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

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


Code Warrior 2.4

Продукция фирмы Metrowerks пользуется заслуженной популярностью у разработчиков приложений на платформах Mac, Windows, BeOS. Теперь ее флагманский продукт -- Code Warrior -- доступен и на платформе Linux. Несмотря на относительно короткие сроки разработки уже реализованы практически все стандартные средства IDE. Пока что компания не имеет собственного отладчика -- в комплект поставки входит отладчик ddd, хотя можно применять gdb или xdb. Продолжается работа и над своим отладчиком, который сможет использовать интерфейс ptrace().

Пакет оставляет хорошее впечатление. Перечислю лишь некоторые возможности системы: встроенный полнофункциональный редактор исходных текстов с выделением синтаксиса, автоматической разметкой текста, многоуровневой системой отката; средства для генерации сценария компиляции проекта; автоматическое обновление исходного кода при внесении изменений из отладчика; возможность выбора компилятора, отладчика и других инструментальных средств.

Инсталляция пакета, простота использования, его интуитивно понятный интерфейс (унаследованный от более именитых предков на платформе Mac) заслуживает наивысшей оценки.

Заметим, что Metrowerks еще до выпуска своего продукта оказала определенное воздействие на Linux-сообщество. Ведь известный многим свободно распространяемый пакет Code Crusader создан именно "по мотивам" продуктов этой компании.


Code Crusader 3.0.0

Code Crusader, пожалуй, наиболее популярная из свободно распространяемых IDE. На данный момент доступна версия 2.1.4 этого продукта. Тем не менее архитектор проекта Джон Линдал (John Lindal) любезно предоставил мне возможность поработать с еще не опубликованной версией 3.0 пакета.

Code Crusader является полнофункциональной средой для быстрой разработки приложений и интегрируется с Code Medic для повышения эффективности цикла разработки проектов. Данная среда позволяет использовать любой компилятор. Для проекта автоматически создается сценарий компиляции (Makefile). Поддерживается масса всевозможных усовершенствований интерфейса, способствующих повышению эффективности работы. Процесс компиляции выполняется в отдельном потоке, так что вы можете даже не прерывать работу. Пакет предоставляет мощные средства работы с возникшими ошибками компиляции.

Будучи ориентированной на С++, система позволяет отображать дерево классов, проводить в нем поиск, осуществлять доступ к заголовкам. Встроенный текстовый редактор обладает завидной функциональностью. Он поддерживает средства глобальной замены фрагмента текста в файлах, запуска внешних сценариев обработки выделенного текста, преобразования форматов DOS/Mac/UNIX, неограниченную глубину отката, сохранение резервных копий файлов. При этом размеры файлов ограничены только объемами доступной памяти в системе. Если же вам по каким-то причинам не нравится встроенный редактор, вы можете заменить его другим (например, vi).

В версии 3.0 появились броузер имен, дерево Java-классов, графический front-end утилиты diff, поддержка PHP HTM.


Заключение

Тестирование само по себе -- занятие, подобное ремонту: его можно прекратить, но никогда нельзя закончить. Вполне возможно, что некоторые обстоятельства ускользнули от нашего внимания. Наверняка скоро появятся пакеты, обладающие достаточными для включения в данный обзор характеристиками, да и рассмотренные нами продукты обзаведутся рядом новых функций, так что ситуация, вероятно, существенно изменится. Тем не менее констатируем, что на базе любого из рассмотренных пакетов уже сейчас могут с успехом развиваться проекты средней сложности.
VIDE V Integrated Development Environment для GNU gcc, free Borland C++ Compiler 5.5 под MS-Windows, и стандартного Sun Java Development Kit. VIDE доступна в виде исполняемых файлов под MS-Windows 9x/NT и Linux, а также как часть библиотеки V C++ GUI.
Wipeout многопользовательская многоплатформная среда разработки приложений на C++, Java(tm), Eiffel, и Fortran, работающая под Linux и других Unix системах. Состоит из нескольких компонентов, которые предоставляют интерфейсы к таким средствам как CVS, GDB или MAKE.
SNiFF+ развитая среда разработки приложений. SNiFF+ предоставляет гибкий масштабируемый менеджмент проекта, доступен для C/C++, Java, ADA, Fortran и других языков программирования.
CodeWarrior GNU Edition полный набор средств разработки, поддерживает генерацию кода и отладку с использованием технологии GNU/EGCS. Позволяет ускорить процесс разработки приложений с помощью прекрасного GUI, включающего мощный менеджер проектов, редактор и средства поиска.
gIDE новая основанная на gtk IDE для языка C. На данный момент находится в состянии развития, но уже сейчас включает такие ключевые характеристики как встроенный редактор, поддержку замены, выделение синтаксиса цветом, менеджмент проекта, настраиваемые панели.
Code Fusion оптимизированный для архитектуры Intel, сочетающий последние сертифицированные Cygnus средства разработки GNU с открытым кодом (компиляторы, отладчики, библиотекари, утилиты) с мощной графической подсистемой IDE (редактор кода, броузер классов, и т.д.).
CodeCrusader наиболее мощная некоммерческая IDE под Linux с открытым кодом.