Почти в любом компьютерном здании можно встретить статьи и рассуждения о необходимости или бессмысленности перехода из Windows в Linux. Доводов в пользу того или иного решения великое множество, однако многие авторы и внушительная часть аудитории склоняются к миграции в Linux.
Но мало кто обращает внимание
на беды разработчиков: что делать в Linux
программистам, привыкшим к развитым средам
разработки а-ля MS Visual Studio? В чем можно
создавать серьезные приложения?
На первый взгляд ситуация может показаться
не такой уж и критичной: средств разработки
предостаточно, причем самых разнообразных.
Первое, что приходит на ум, - это
традиционные средства разработки Linux:
обычные текстовые редакторы типа vi или
более развитый Emacs. Однако Windows -разработчикам
более привычны интегрированные среды
разработки, то есть IDE.
Те IDE, что существуют и развиваются на данный момент, можно условно классифицировать по нескольким критериям. Прежде всего, это поддержка конкретных языков разработки. IDE либо поддерживают конкретный язык программирования (наибольшее количество IDE разработано именно для С/С++ и Javа), либо являются универсальными средами, позволяющими выбирать из обширного числа поддерживаемых средств написания приложений. Как выяснилось, функциональность среды и количество поддерживаемых языков - параметры обратно пропорциональные. Иными словами, придется выбирать либо между удобной, действительно интегрированной средой, поддерживающей, например, только С/С++, и, скорее всего, заплатить за нее деньги, либо воспользоваться одним из бесплатно распространяемых редакторов, но иметь возможность работать с любым языком разработки вплоть ХМL и ассемблера.
Следующим отличительным
признаком каждой отдельной среды
разработки можно считать направленность ее
на работу с конкретными графическими
оболочками Linux, или, если быть боже точными,
зависимость среды и разрабатываемых в ней
приложений от конкретных графических
библиотек. Существуют среды,
представляющие собой инструментарий для
работы с библиотеками Qt (ориентированные на
создание
приложений для КDЕ), среды, поддерживающие GТК+
(ориентированные на Gnome). Есть также IDE,
основанные на библиотеках Motif, ТК и других,
но поcкольку эти библиотеки не так
распространены, как первые две,
останавливаться на их рассмотрении мы не
будем. Кроме того, есть и универсальные
среды, не зависящие от конкретных библиотек.
В этом обзоре остановимся на нескольких IDE, наиболее заслуживающих, на наш взгляд, внимания.
CodeWarrior for Linux (компании Metrowerks) предназначен для программистов, ставящих на первое место разрабатываемое приложение, а не средства его создания. Основное достоинство этой гибкой интегрированной среды - цикл разработки, включающий три главных процесса: редактирование, отладку, сборку. По словам разработчиков продукта, поддержка этого цикла средой позволяет сфокусироваться на креативных аспектах программирования, а не на использовании различных дополнительных инструментов.
К RAD-средствам CodeWarrior можно отнести прежде всего менеджер проектов (Project Мапаger), который значительно упрощает управление параметрами проекта, предлагая для этого легко настраиваемый мастер создания проекта.
Немаловажными элементами среды являются интегрированная система сборки приложения и связанные между собой редактор кода и отладчик.
Менеджер проекта и система компиляции в CodeWarrior имеют отличительные черты, выделяющие эту среду разработки из целого ряда подобных продуктов. Во-первых, это технология параллельной компиляции. Эта возможность позволяет параллельно запускать несколько процессов компиляции на мультипроцессорных компьютерах, вместо того чтобы выполнять их поочередно. Используя технологии кластеризации, например Mosix, разработчик может также распределять параллельные процессы компиляции по сети.
Следует упомянуть о возможностях импорта/экспорта файлов проекта в XML, системе контроля версии, возможности работы с аргументами командной строки при отладке, а также о возможности подключения к среде внешних редакторов и отладчиков.
Редактор исходных текстов также имеет ряд удобных средств: поддержку операций Drag&Drop, настраиваемую подсветку синтаксиса, разделяемые окна (Split window), конфигурируемые меню, панели инструментов и привязки клавиш. В дополнение к С/С++ CodeWarrior для Linux также включает мощные средства для RAD-разработки на Javа.
В среде доступны средства полной профессиональной поддержки Java на протяжении всего цикла разработки, включая браузер кода, отладчик, компилятор и линковщик, RAD-утилиты для Java поддерживают механизм Drag&Drop и мастеры для работы с Java -приложениями и апплетами. Также для Java-разработки доступны такие инструменты, как инспектор объектов (Object Inspector), палитра компонентов (Сomponent Palette), каталог компонентов (Сomponent Catalog), настраиваемые мастеры, редакторы свойств объектов, автодополнение символов.
CodeWarrior IDE поддерживает разработку Open Source, предлагая возможности расширения и настройки для пользователей. Меню, панели инструментов, привязки клавиш и многое другое может быть сконфигурировано в соответствии с привычками и пожеланиями пользователя. Открытая расширяемая архитектура среды поддерживает плагины от сторонних разработчиков, что позволяет программистам использовать любимые редакторы, отладчики, линковщики и компиляторы в рамках IDE CodeWarrior.
Среда CodeWarrior доступна для различных платформ: Linux, Windows, Mac OS, Solaris. Что касается Linux-версии среды, то она не зависит от конкретных графических оболочек и поддерживает и Gnome и KDE.
Moonshine Professional для С/С++ (компании Suite 3220 Software) - полнофункциональная IDE для Linux, отвечающая всем требованиям к такого рода средствам разработки. Из внушительного числа возможностей стоит прежде всего обратить внимание на следующие.
Source Tree Browser - браузер, позволяющий просматривать иерархическую структуру файлов проекта и управлять всеми основными параметрами проекта.
Brew Text Editor - надежный текстовый редактор для программистов, встроенный непосредственно в среду Moonshine Professional. Редактор имеет возможности подсветки синтаксиса С/С++, рекурсивного поиска и замены регулярных выражений во множественных файлах и директориях, неограниченный список отмены и возврата операций, а также полезную возможность сохранения и повтора нажатий клавиш.
Основные средства Linux, работающие в режиме командной строки (gcc, make, RCS и grep), интегрированы в среду Moonshine для обеспечения функции управления процессом сборки, контроля версии проекта и текстового поиска. Каждый из этих инструментов имеет свой оконный интерфейс, что позволяет разработчику конфигурировать и выполнять процесс компиляции, сохранять и просматривать списки версии исходного кода, а также выполнять поиск и замену по тексту.
И, наконец, среда Moonshine предоставляет разработчикам готовое решение для создания графического интерфейса - набор библиотек Qt 2.0.2 Free Edition, полностью интегрированный в IDE.
Среда разработки Moonshine достаточно легка и удобна в изучении и использовании. Большинство возможностей направлено на максимальную автоматизацию управления проектом. Одним из примеров тому является система управления сборкой проекта - Zero Maintainance Build Management System, помимо простого и удобного интерфейса позволяющая определять параметры компиляции приложения, которые затем будут обновляться по мере роста проекта без вмешательства пользователя.
Встроенная система контроля версии представляет собой удобный оконный интерфейс к командам RCS, позволяющий сохранять и просматривать версии исходного кода, а также запрещать доступ к редактируемому в данный момент файлу другим разработчикам.
Помимо средств управления процессом разработки, среда Moonshine достаточно гибкая и легко настраиваемая. Среда изначально проектировалась с учетом максимальных возможностей ее настройки. Любой аспект IDE от пиктограмм и цвета до меню и действий может быть сконфигурирован по желанию пользователя. Кроме того, к IDE может быть привязано любое внешнее Linux-приложение, что позволяет расширять среду. Такая возможность достигается за счет того, что все поведение среды контролируется так называемыми модулями, иначе говоря - текстовыми конфигурационными файлами. Используя эти файлы, пользователь может настроить среду по своим требованиям.
Помимо редакции С/С++ Professional, существует также и версия Moonshine Open Source, бесплатно доступная в виде тарбола (.tgz) на сайте разработчика.
Как и у открытых версии многих других продуктов, у Moonshine Open Source меньше возможностей, нет документации и технической поддержки. В то же время Moonshine Professional помимо многофункциональности включает в себя более 100 страниц документации и 30-дневную поддержку.
Moonshine Open Source не включает в себя систему управления компиляцией, контроль версии проекта и многофайловый поиск и замену. Однако эта версия также полностью настраиваемая - сконфигурировать по собственному желанию можно меню, панели инструментов, подсветку синтаксиса, шрифты редактора и т. д.
Сode Forge (компании Code Forge Inc.) - еще одна профессиональная интегрированная среда разработки для Unix/Linux, поддерживающая разработку на С/С++. Эта IDE обеспечивает полное управление проектом и поддержку цикла редактирования/компиляции/отладки. К числу возможностей среды относятся прежде всего следующие:
Сode Forge предлагает широкую поддержку командной разработки проектов путем разделения стабильных и рабочих сред. Изменения становятся доступными всем пользователям только в стабильном проекте. Сode Forge сохраняет проект в двух директориях: Stable Directiry содержит стабильные, готовые версии файлов; Working Directory содержит файлы, находящиеся в работе. Такое разделение позволяет пользователю изменять отдельные файлы, не оказывая влияния на весь проект.
Стабильные версии файлов проекта отображаются в дереве зависимостей (Dependency Tree) на Рабочем столе проекта. Рабочие версии отображаются в пространстве рабочих файлов (Working Files Desktop).
Среда Сode Forge содержит также и утилиту cборки GUI Makefile, которая обеспечивает полное абстрактное представление концепции "makefile". Make-файлы проекта поддерживаются на уровне ядра. Зто означает, что все операции Drag&Drop на визуальном дереве зависимостей и в рабочей области проекта автоматически конвертируются в выражения make - скрипта.
Стоит упомянуть и интегрированный отладчик, встроенный в редактор кода. Он предоставляет следующие возможности:
CodeGuide (компании Omnicore) - мощная полнофункциональная среда разработки на Java, позволяющая создавать клиентские, серверные и Web-приложения. CodeGuide работает с Java Development Kit (JDK), соответственно, создаваемые в этой среде приложения работают на всех платформах, которые поддерживают Java. Основная особенность этой среды - выполнение очень многих операций "на лету", начиная с разбора исходного кода и заканчивая компиляцией приложения.
CodeGuide компилирует приложение по мере написания кода, немедленно отображая ошибки. Это приводит к тому, что обычный цикл "редактирование-компиляция-редактирование-компиляция-... -выполнение" упрощается до двух шагов - "редактирование-выполнение". Поэтому при выполнении приложения из среды компиляции не происходит, программа уже откомпилирована в фоновом режиме.
Если при такой компиляции обнаруживаются какие-либо ошибки, CodeGuide автоматически предлагает варианты исправления наиболее общих и распространенных из них.
Конечно, говоря о профессиональных средах разработки для Linux, не стоит забывать и о Borland Kylix - последней версии среды 3, включащей IDE для Delphi и Borland С++ Builder.
Помимо сред для С/С++ и Java, существует еще множество IDE, поддерживающих менее распространенные языки:
Eiffel Studio для разработки на Eiffel , PythonWorks (для создания приложений с использованием Python), DrScheme для разработки на Scheme и многие другие.
Подводя итог, скажем, что каковы бы ни были ваши требования к IDE - вы всегда сможете найти то, что вам нужно для создания Linux-приложений. Причем неважно, являетесь ли вы профессиональным разработчиком или делаете только первые шаги в этот интересный и увлекательный мир.
Поскольку Linux – сама по себе свободная ОС, стоит немного рассказать и о свободно распространяемых средствах разработки. К ним прежде всего относятся IDE, входящие в состав многих дистрибутивов: KDevelop и Glade.
KDevelop - среда разработки KDE – приложений. Имеет довольно приятный оконный интерфейс, несколько мастеров для управления проектами, интегрированный отладчик и редактор (KWrite), инструменты для графического отображения структуры проекта (в виде дерева). Помимо KDE – приложений позволяет создавать Gnome – приложения, приложения на базе библиотек Qt и консольные. Из языков разработки поддерживает только С/С++.
Glade – среда разработки графических интерфейсов для Gnome и библиотек GTK+. IDE Glade содержит три окна: основное, позволяющее вызывать диалоги управления проектом и приложением, окно палитры виджетов и окно редактора свойств. Такое сочетание позволяет проектировать интерфейсы приложений на базе библиотек GTK+.
Eclipse - расширяемая среда разработки, ориентированная на подключение самых различных компиляторов и т.д.
Стоит упомянуть и еще об одной среде разработки, входящей в состав многих дистрибутивов, - QtDesigner фирмы TrollTech. Как видно из названия, эта среда предназначена для разработки приложений на базе библиотек Qt. Эта IDE отвечает практически всем требованиям: имеет удобный интерфейс, средства визуального проектирования, многофункциональный редактор кода и т.д.
© Мария Сысойкина + дополнения
Об авторе: Мария Сысойкина - автор книги " Borland Kylix. Разработка приложений". Издательство: БХВ - Петербург и множества статей по информационным технологиям.
Организация | Институт научной информации по общественным наукам Российской академии наук |
Адрес e-mail | : maria@inion.ru |
ICQ Number | : ICQ: #71307778 |
Сайт | : http://www.inion.ru |