Rambler's Top100
Софт@Mail.RuMail.ru
   



Softline - программное обеспечение
КАТАЛОГ
Софт-клуб

СОФТ-КЛУБ

РАЗРАБОТЧИКАМ СИСАДМИН РАБОТА ФОРУМЫ КОНКУРСЫ РАССЫЛКИ СОФТ ГОДА МАГАЗИН  
О проекте   

Интервью

О дорогах без пробок. Слово Навител
О дорогах без пробок. Слово Навител
Пробки – извечная проблема больших городов. В них разбирают почту, серфят в Интернете или просто слушают музыку. Но людей, считающих это времяпрепровождение полезным, крайне мало. Чтобы избежать подобной траты времени, нужно обладать актуальной информацией о пробках. О сервисе "Навител.Пробки" нам рассказал Александр Казаков, генеральный директор ЗАО "ЦНТ", компании-разработчика навигационной системы Навител Навигатор. Подробнее »
Задавайте вопросы Movavi и получайте призы!
Задавайте вопросы Movavi и получайте призы!
Со 2 по 16 ноября на Софт@Mail.Ru задавайте свои вопросы в адрес компании Movavi – российского разработчика программного обеспечения для работы с мультимедиа. Подробнее »

Все интервью »

Сервисы Софт-клуба

Обсуждение материалов


Правила обсуждения

Лицензионный софт

Другой лицензионный софт »
Лицензирование программного обеспечения »

Рассылка Софт-клуба

Самые интересные новости из мира IT: новинки ПО, железа, новости мира мобильных устройств, анонсы новых статей и интервью с известными IT-персонами

 

Бесплатный каталог софта Softline®direct!


13.04.2005
Прочитали: 6691 (сегодня - 1)


Обзор бесплатных IDE


Среди многих причин того, почему индустриализация процесса разработки ПО не уничтожила «цеховое производство», можно назвать и распространение средств быстрой разработки приложений (Rapid Application Development – RAD). Одним из важнейших компонентов RAD являются интегрированные среды разработки (Integrated Development Environment, IDE). Тут стоит отметить, что быстрота разработки достигается не только за счет различных усовершенствований IDE, о которых мы поговорим далее, но и за счет широких возможностей повторного использования кода (компонентов, вспомогательных библиотек и т.п.), в том числе созданного самими разработчиками IDE, а также программистами, разрабатывающими такие повторно-используемые блоки для своих любимых интегрированных сред.

Еще пять лет назад перед отдельными программистами и компаниями с небольшим бюджетом, желающими использовать средства RAD, возникал серьезный барьер в виде весьма высокой стоимости этих средств. Однако на сегодняшний день обстановка коренным образом изменилась благодаря появлению качественных бесплатных IDE.

Эта статья, посвященная Java-IDE, – первая из серии статей о бесплатных интегрированных средах разработки. В рамках серии будут рассмотрены IDE для наиболее популярных языков программирования (C++, Pascal, языки .NET).

Некоторые языки программирования, например C++, существуют как бы «сами по себе», то есть не привязаны ни к каким конкретным продуктам или компаниям. Другие языки, например Паскаль, в сознании современных разработчиков тесно связаны с определенными c определенными средствами разработки (мне даже приходилось слышать жалобы на то, что Borland «монополизировала Паскаль»). В любом случае, в этой и следующих статьях не ставится цель сравнивать разные языки программирования или сравнить между собой IDE для разных языков. Каждая IDE будет рассмотрена в совей «языковой категории».

Качественные бесплатные IDE для платформы Windows стали появляться не так уж и давно. К этому процессу подключились и серьезные разработчики коммерческих IDE, которые позиционируют бесплатные варианты своих продуктов как «любительские» и «персональные». Несмотря на такое обозначение, бесплатные IDE могут пригодиться и при разработке production quality software, так как их возможности урезаны в основном за счет некоторых дополнительных компонентов и элементов среды, которые во многих случаях могут и не понадобиться. Так что бесплатные IDE могут подойти и тем компаниям или индивидуальным разработчикам, у которых нет средств на закупку коммерческих IDE и которые не хотят нарушать права интеллектуальной собственности.

Краткая история IDE

Пожалуй, идею интегрированной среды разработки можно признать одной из самых удачных идей в истории разработки ПО. Сравнится с ней в этом смысле может только концепция файл-менеджера. Вообще-то, первые IDE появились задолго до ПК, еще в начале 60-х. На первых IBM PC ситуация складывалась довольно интересно. У разработчиков был выбор между ассемблером и встроенным Бейсиком, который, будучи интерпретируемым языком, естественно имел некое подобие IDE. IDE, включающие в себя компиляторы, проникли на персоналки не сразу. Чтобы понять, какое удобство принесли первые IDE в мир ПК по сравнению с инструментами командной строки, нужно учесть, что современные многозадачные ОС упрощают работу с такими инструментами. Работая, например, в Linux, можно открыть одно окно консоли для компилятора GCC и компоновщика, другое окно – для отладчика. Отдельно можно запустить редакторы исходных текстов и других файлов проекта. Благодаря многозадачности все это будет работать одновременно. Таким образом многозадачные ОС позволяют создать с помощью инструментов командной строки и текстовых редакторов некое подобие IDE. Но во времена господства MS-DOS все было не так. В системе, способной выполнять только одну программу в данный момент времени, сначала приходилось запускать редактор текста, сохранять файл программы, выходить из редактора, запускать компилятор, потом – компоновщик. Если компилятор или компоновщик находили ошибку, все начиналось сначала, при этом необходимо было запоминать номер строки с ошибкой, чтобы найти ее в тексте. Если же в дело вступала отладка с помощью программы-отладчика, цикл мог еще более усложниться. Первые IDE, совмещавшие в себе редактор исходных текстов, компилятор, компоновщик, а потом и отладчик, существенно ускорили процесс разработки. Не случайно, выпуская свою первую IDE, компания Borland добавила к названию продукта приставку turbo-

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

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

Часть 1. Java

В состав среды Java (как и в состав .NET Framework) входят средства, специально предназначенные для упрощения разработки компиляторов и IDE, так что не удивительно, что указанные платформы на сегодняшний день лидируют по числу доступных бесплатных (или очень дешевых) IDE, которые при этом мало в чем уступают своим коммерческим собратьям.

Sun Net Beans 3.6

Бесплатная IDE от Sun – создателя языка Java. Эта Java-IDE полностью написана на Java, что подчеркивается характерным стилем интерфейса (Swing-metal).

NetBeans IDE

Рисунок 1. NetBeans IDE

Как и почти все Java-IDE, Sun Net Beans использует консольный компилятор, входящий в состав JDK. Среда Net Beans напичкана последними достижениями в области «IDE-строения». Фоновый синтаксический анализ выдает свои результаты в стиле интерактивной проверки орфографии, применяемом в текстовых редакторах (неправильная конструкция подчеркивается красной волнистой чертой). При этом прямо в процессе ввода текста программы можно получить развернутую информацию о допущенной ошибке. Это не всегда удобно, так как синтаксический анализатор часто не может правильно распознать конструкцию до окончания ввода, и потому иногда предупреждает об ошибке «слишком рано». Раскрывающийся список методов объекта дополнен вызовом контекстной справки (рис. 2). Для того, чтобы эта справка была более полной, с сайта Sun следует загрузить документацию по JDK и настроить IDE на ее использование.

NetBeans работает над ошибками и дает подсказки

Рисунок 2. NetBeans работает над ошибками и дает подсказки

Net Beans обладает полным набором средств визуального программирования, но не остались забыты и консольные приложения. IDE снабжена собственным окном консоли. Это особенно удобно при работе в Windows, где консольные окна часто исчезают с экрана прежде, чем программисту удается что-либо прочитать. Будучи продуктом Sun, Net Beans, естественно позволяет создавать заготовки всех типов исполнимых модулей Java (самостоятельных приложений, апплетов, сервлетов, компонентов JSP, пакетов и т.п.) поддерживаемых современной технологией Java. Есть, конечно, и заготовка для тестирования модулей (JUnit), от которой берут свое начало аналогичные инструменты .NET.

В Net Beans реализованы мощные средства автоматического завершения вводимого кода (code auto-completion). В этом отношении редактор Net Beans превосходит все известные мне (не только Java) IDE. Однако, для того, чтобы воспользоваться всеми этими ускорителями работы придется запомнить несколько правил и несколько быстрых сочетаний клавиш. В общем, редактор Net Beans чем-то напоминает консольные оболочки UNIX, такие как bash. Пользованию ими нужно учиться, но научившись, трудно отказаться от предоставляемых ими удобств. Механизм автоматического завершения работает не только для методов классов, но и для зарезервированных слов языка Java. Если класс реализует интерфейс, или наследует от абстрактного класса, в Net Beans можно автоматически сгенерировать заготовки всех методов, которые превратят абстрактный класс в «конкретный».

Как известно, проекты Java, должны располагаться в особых иерархиях каталогов. Net Beans буквально заставит вас создать правильную иерархию для каждого пакета, что особенно полезно для новичков, но к сожалению не позволяет создать корень иерархии в папке «Мои документы», что может смутить тех же новичков. В списке инструментов IDE присутствуют средства JavaDoc, интернационализации, управления компонентами (Java Beans), мастер создания архивов JAR и другие. Существует возможность интеграции IDE с инструментами контроля версий (CVS, PVCS, VSS).

Интересной особенностью Net Beans является возможность запускать несколько экземпляров отлаживаемой программы одновременно.

Borland JBuilder Foundation 2005

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

Те, кто переходят на Java, например, с Delphi и надеются, что им, по крайней мере, не придется привыкать к принципиально новой IDE, будут слегка разочарованы. Borland JBuilder 2005 не очень похож на другие IDE Borland, ни в старом, ни в новом их варианте (рис. 3).

Borland JBuilder Foundation 2005

Рисунок 3. Borland JBuilder Foundation 2005

Традиционный козырь Borland – наличие дополнительных компонентов для работы с базами данных и Интернет, но в бесплатном JBuilder Foundation эти компоненты как раз отсутствуют. Во всем остальном IDE выполнена на традиционно высоком для Borland уровне. В список поддерживаемых средств контроля версий входит, естественно, Borland StarTeam (наряду с CVS и некоторыми другими). Кроме того, в JBuilder 2005, как и в Delphi 2005 присутствует собственное простенькое средство индивидуального управления версиями исходных текстов. На мой взгляд, это средство, скромно названное History, является весьма полезным дополнением, так как не все разработчики нуждаются и хотят работать с системами уровня CVS.

JBuilder поддерживает и другие продукты семейства Borland, например профилировщик Optimizeit.

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

Хотя в общем качество Borland IDE не вызывает нареканий, в ситуации выбора между JBuilder Foundation и Net Beans IDE ьолее предпочтительным, на мой взгляд, является продукт Sun, который отличается более простым и чистым дизайном. Выбирать JBuilder Foundation имеет смысл в том случае, если в комплексе средств разработки уже присутствуют продукты Borland, или если в будущем планируется переход на коммерческую версию JBuilder.

Oracle JDevloper

Широкое распространение Java в качестве основы встроенных языков программирования привело к появлению специализированных IDE.

Последние версии СУБД Oracle очень тесно связаны с Java (настолько тесно, что руководству компании однажды даже пришлось успокаивать своих клиентов, обеспокоенных тем, что Oracle может забросить PL/SQL и полностью перейти на Java и SQL-J). Неудивительно, что в состав Oracle Development Suite, который доступен для бесплатной закачки с сайта компании, входит Java-IDE Oracle JDeveloper.

JDeveloper предназначен, прежде всего, для создания клиентских и многоуровневых приложений для работы с Oracle и включает множество технологий, имеющих смысл только в контексте приложений этой СУБД, однако с его помощью можно создавать и обычные Java-приложения.

Стоит ли использовать JDeveloper в качестве средства разработки, если вы не программист Oracle и не являетесь обладателем соответствующей лицензии? Прежде всего, следует заметить, что хотя скачать этот продукт можно бесплатно, лицензия Developer License не дает разработчику право распространять созданные приложения (для этого нужно приобрести коммерческую лицензию). Впрочем, даже в таком качестве JDeveloper не совсем бесполезен, так как может служить хорошим учебным средством для программирования для Oracle (и не только).

Одним из существенных отличий JDeveloper является организация проектов. Проект в Java, это не совсем то же самое, что например, проект в C++. Проект Java представляет собой набор классов, каждый из которых компилируется в отдельный файл с расширением class. Поскольку в одном проекте несколько классов могут иметь статический метод main, представляющий собой точку входа исполнимого модуля, в одном проекте Java можно реализовать несколько приложений, совместно использующих некоторые классы. JDeveloper добавляет к этому концепцию рабочего пространства (workspace) подобную одноименной концепции, реализованной в средствах разработки Microsoft. Поскольку JDeveloper направлен на создание сложных проектов многоуровневых приложений со множеством страниц JSP, клиентских форм, компонентов интеграции с модулем Apache и самой СУБД, подобная организация проектов полезна, но новичок может легко запутаться в рабочих пространствах, тем более что механизм автоматической генерации имен новых модулей продуман не совсем удачно. Опытный программист, конечно, предпочтет сам присваивать имена всем файлам, но в результате ошибки можно придти к ситуации, когда разные проекты будут непреднамеренно использовать одни и те же файлы.

Как и все остальные IDE, рассмотренные в этой статье, JDeveloper основан на JDK.

Как и Net Beans IDE JDeveloper обладает средствами автоматического перекрытия методов классов-предков, что в языке Java имеет большее значение, чем в других объектно-ориентированных языках из за того, что программируя в Java часто приходится использовать абстрактные классы и интерфейсы.

Еще одна отличительная черта JDeveloper, отсутствующая в других известных мне Java-IDE – возможность выбирать дополнительные библиотеки для автоматического подключения к проекту с помощью специального диалогового окна, содержащего список библиотек.

Oracle JBuilder

Рисунок 4. Oracle JBuilder

Особенности технологии Java и конкуренция между основными разработчиками Java-IDE заставили их выпустить бесплатные варианты своих продуктов в расчете на то, что это позволит переманить пользователей на соответствующую платформу. Пользователи же могут пожинать плоды конкуренции. Хотя общая направленность серии статей – IDE для Windows, имеет смысл отметить, что перечисленные в этой статье продукты являются кросс-платформенными, так что можно найти вариант и для Linux и для Solaris.

Поскольку все бесплатные IDE, созданные грандами IDE-строения, обладают примерно одинаковой функциональностью, трудно выбрать однозначного лидера, хотя IDE от Oracle заинтересует скорее всего только «ораклеистов». По этой же причине нет смысла рассматривать некоторые бесплатные IDE менее известных разработчиков, такие как бесплатный вариант JCreator, существенно уступающий по функциональности описанным выше продуктам, или открытый Eclipse, одна процедура установки которого может привести в отчаяние начинающего программиста. Любопытно, что разработчики JCreator в качестве одного из достоинств своего продукта указывают то, что JCreator написан на C++, и потому «должен работать быстрее, чем другие Java-IDE, написанные на Java». Для разработчиков Java-продукта подобный «рекламный ход» выглядит сомнительно.

Таким образом завершение этого обзора само возвращается к своему началу. Медленно но верно, Sun движется к большей открытости и доступности технологий Java, поэтому IDE и другие инструменты этой компании, которая естественно, всегда будет на переднем крае Java-технологии, следует считать предпочтительными.

Автор статьи: Андрей Боровский



Обсудить
(12)
Подписаться на новости
Подписаться на новости



При использовании материалов сайта ссылка на Софт@Mail.Ru обязательна. Пресс-релизы, новости ждем по адресу softclub@soft.mail.ru.