Инструменты для разработки приложений на языке Java недороги, но и хорошая интегрированная среда разработки (IDE) встречается довольно редко. Free Builder Project, который реализуется в рамках широко известного Проекта GNU, обещает стать удобным в работе и при этом абсолютно бесплатным инструментарием разработки с открытым исходным кодом. Хотя в нынешней версии Free Builder множество недоделок, в ней есть и несомненное преимущество - ее разрабатывает сообщество людей, для которых главное не материальная выгода от проекта, а удобство его практического использования.

Опытные программисты и хакеры хорошо знают, что самые лучшие инструменты (или по крайней мере те, которые могут такими стать) часто бывают бесплатными. Если вам нужна интегрированная среда разработки (IDE, Integrated Development Environment) для Java, то не торопитесь покупать коробку с фирменным продуктом, наклейками, бирками и регистрационным номером. Лучше обратите внимание на Free Builder Project, общедоступную среду разработки на Java, распространяемую Фондом свободного программного обеспечения. Как и многие другие составляющие Проекта GNU, программное обеспечение Free Builder Project (далее FB) вместе с документацией можно получить бесплатно. Его исходные тексты общедоступны, и внести добавления или изменения в них можно самостоятельно.

В настоящее время FB представляет собой действующий прототип для операционных систем Linux, Windows 95 и NT. Он включает в себя настраиваемый под конкретного пользователя визуальный интерфейс, текстовый редактор с функциями выдачи сообщений об ошибках компилятора, модуль компилятора и средства отладки. В его состав также войдут компоненты, работа над которыми еще продолжается: менеджер проектов, фоновый анализатор правильности синтаксиса, анализатор классов, многопотоковый отладчик, визуальный построитель компонентов, поддержка JavaBeans. Кроме того, поддержка mpEDIT позволяет выполнять цветовую разметку синтаксических конструкций и использовать EditBeans (простой редактор, который обрабатывает строки и текст; см. «Источники»).

Истоки

Команда добровольцев-программистов работала над FB больше года. Инициатива создания Free Builder Project принадлежит Ивелину Атанасову Иванову, жителю Софии, в настоящее время менеджеру отдела разработки ПО компании Macrotex (американо-болгарской фирмы, специализирующейся на пакетах программ защиты). Иванов начал работу над FB в феврале 1997 года, сразу после того, как Sun Microsystems опубликовала JDK 1.1. Иванов открыл Web-узел FB и разработал первую общедоступную версию v.0.4.97, которая вышла в свет 1 апреля 1997 года.

В ноябре Георгий Петков и Петр Радков из болгарской компании Vanand сформировали новую команду FB и полностью переработали весь Free Builder Project. В марте 1998 года Петков и Радков опубликовали первые снимки экранов нового FB, которые вызвали значительный интерес в сообществе разработчиков Java - 20 тыс. загрузок с того дня, когда эта версия была впервые опубликована. Естественно, разработчиков особенно привлекла общедоступность исходного кода.

В конце концов FB превратится в весьма достойную интегрированную среду разработки Java. Но прежде чем броситься загружать FB, следует учесть, что его разработка находится еще на очень ранней стадии. В нем много ошибок и «глюков», но их легко исправить. Фактически FB в его нынешнем виде - это только прототип конечного продукта, поэтому загрузку, конфигурирование и использование FB можно рассматривать как его альфа-тестирование.

Этапы разработки FB

По словам нынешнего руководителя проекта Георгия Петкова, сейчас FB - это рабочий прототип, базис, на который должны опираться, добавляться и модифицироваться новые инструменты. Так, в FB есть палитра JavaBeans, но нет инструмента визуального проектирования, а работа с редактором требует много усилий. Как и во многих других случаях с составляющими Проекта GNU, процесс разработки FB можно охарактеризовать словами «делай с нами». Разработчики FB не пошли по пути «сверху вниз»: начальная версия - проект - финальная версия - тестирование, а каждый раз определяют, что нужно сделать дальше, реализуют нечто новое, тестируют свое творение и переходят к следующей задаче. Столь гибкий подход, противоречащий маркетинговым правилам, рассчитанным на извлечение прибыли, одновременно обеспечивает эффективность процесса разработки и часто удовлетворяет потребности многих разработчиков. Но этому принципу присущи два недостатка: отсутствие официально утвержденного производственного графика и слабая техподдержка конечного продукта.

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

Петков приступил к работе над версией 07 проекта FB после того, как закончил другой проект, связанный с созданием инструментальной среды разработки на основе Delphi/Pascal. Он написал компилятор Pascal, который продуцировал Java-подобный интерпретируемый байт-код. Как и в случае с Java, код использовал стековый механизм и благодаря этому был свободен от привязки к какой-либо конкретной платформе. Несмотря на то что FB требовала совершенно иного языка программирования и команд, при работе над проектом GNU Петков опирался на свой опыт создания предыдущей IDE, используя его как шаблон.

При разработке и программировании различных компонентов FB Петкову пришлось изучить некоторые основы разработки на Java, в том числе назначение и структуру модулей, преобразование Java-объектов в последовательность байтов, работу с интерфейсами и особенности системы сборки мусора.

Достоинства и недостатки FB

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

Ограниченный выбор инструментов

Во-первых, поясняет Мюкенгаупт, всякая интегрированная среда разработки ограничивает программиста в выборе инструментов. Так, даже если вы привыкли использовать emacs в качестве редактора исходных текстов программ и на протяжении длительного периода настраивали конфигурацию emacs «под себя», в полной мере использовать преимущества emacs в интегрированной среде разработки вы все же не сможете. Мюкенгаупт считает, что редакторы, входящие в состав интегрированной среды, как правило, имеют более низкий уровень, чем специализированный редактор, поэтому переход на встроенные в IDE инструменты может отбросить разработчиков на несколько шагов назад в плане удобства и практичности работы.

FB сконструирован из модулей JavaBean, поэтому теоретически он должен обеспечить более легкую замену модуля редактора. Но даже если это и так, выбор программиста ограничен редакторами, ориентированными на Java, которые, к сожалению, пока не самые лучшие и популярные.

Единый процесс ненадежен

Во-вторых, работа программиста в интегрированной среде часто организована как единый процесс. Поэтому сбой любого отдельного компонента (скажем, отладчика) вызывает цепную реакцию и ведет к крупным неприятностям в работе всей среды в целом. Последствия могут оказаться просто непоправимыми, если программист одновременно открыл пять или шесть файлов (отнюдь не редкая ситуация для крупных проектов на Java). После «обвала» одного компонента программисту придется заново открывать все файлы.

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

Проблемы коллективной разработки

В-третьих, интегрированные среды разработки создают дополнительные трудности группам разработчиков. Обычно в среду встроены свои собственные системы управления проектом. Это значит, что если несколько разработчиков работают над одним проектом, то они должны либо все вместе использовать одну и ту же среду разработки, ограничивающую выбор инструментов для всех них, либо подготовить одинаковые файлы проектов, что неэкономно. Кроме того, трудно начать или прекратить использование конкретной интегрированной среды в середине проекта, что никогда не вызывает трудностей при работе с «не-IDE» инструментами программирования.

«Родимые пятна» графического интерфейса

Наконец, Мюкенгаупт, как и многие программисты, предпочитает вообще не пользоваться графическим интерфейсом. Нельзя все впихнуть в одну «коробку», в конце концов настанет момент, когда понадобится выйти за ее границы. Мюкенгаупт считает, что FB, как программный продукт на Java, абсолютно не зависимый от платформы, проблему только усугубляет: он не способен обеспечить интеграцию кода, «родного» для некоторого специфического окружения. Установившейся, фирменной интегрированной среде разработки, такой как Visual Cafe компании Symantec, свойственны те же самые концептуальные проблемы, что и FB, но в этом плане она намного практичнее.

Однако даже такой скептик, как Мюкенгаупт, признает, что FB - это шаг в верном направлении. Тот факт, что исходный код общедоступен и что FB использует модули, позволяет относительно легко вставлять компоненты, разработанные самим пользователем. Это в какой-то степени компенсирует те ограничения, которые IDE накладывает на программиста. Кроме того, FB работает на платформе Linux, что часто оказывается привлекательным свойством для программистов, предпочитающих использовать «нефирменный» язык программирования с «нефирменными» же средой разработки и ОС.

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

Резюме

Пользователи, у которых возник интерес к FB, могут загрузить это программное обеспечение и прочитать документацию к нему. Может быть, у них появится желание присоединиться к команде разработчиков или оказать этому проекту финансовую помощь. Хороший способ начать - стать абонентом почтовой рассылки FB, которая, несомненно, имеет высокий показатель «сигнал/шум» в смысле полезных и продуктивных дискуссий. Команда разработчиков FB внимательно рассматривает все идеи, пожелания и конструктивные замечания и приглашает новых добровольцев и испытателей. u

Ветеран Internet с десятилетним стажем Марива Авирам консультирует по вопросам Internet и пишет статьи, которые публиковались в c|net, NetscapeWorld и InfoWorld. Недавно Марива написала книгу «Справочник по XML для чайников», возможность публикации которой рассматривается издательством IDG Books. Ей можно написать по электронной почте по адресу mariva.aviram@javaworld.com.