СРЕДСТВА РАЗРАБОТКИ
В условиях обострения конкурентной борьбы между платформами Java и .NET поставщики средств Java-разработки, продолжая развитие своих собственных инструментов, тем не менее все активнее консолидируют усилия вокруг проекта Eclipse (см. PC Week/RE, N 10/2005, с. 35). Главная причина тому - необходимость объединения против общего соперника: на фоне угрозы со стороны Microsoft Visual Studio .NET внутренние противоречия Java-сообщества отступают на второй план. На сегодняшний день о поддержке Eclipse и участии в его реализации заявили почти все основные игроки этого сегмента - IBM, Borland, BEA Systems. И только Sun Microsystems пока воздерживается от вступления в альянс, развивая собственную интегрированную платформу NetBeans, которая сегодня фактически является главным конкурентом Eclipse среди Java-инструментов.
Эти бобы посеяли чешские студенты
История NetBeans началась в 1996 г. в Чехии со студенческого проекта под названием Xelfi - его ключевая идея состояла в создании Delphi-подобной среды Java-разработки, базирующейся в свою очередь на Java. Немного позднее команда разработчиков основала компанию под названием NetBeans ("Сетевые бобы"; beans означает "бобы", судя по всему, кофейные), которая выпустила две коммерческие версии инструмента NetBeans Developers (2.0 и 2.1), а в мае 1999-го представила бета-версию 3.0, Однако как раз в это время Sun Microsystems решила провести серьезную реорганизацию своего инструментального направления. С этой целью в августе 1999 г. она купила за 540 млн. долл. компанию Forte Software, одного из ведущих поставщиков средств разработки приложений для электронного бизнеса, а спустя еще два месяца - чешскую NetBeans, в штат которой в тот момент входило 40 инженеров (условия последней сделки не разглашались). После этого Sun объявила о прекращении развития своего продукта Java Workshop и вскоре представила новое семейство средств под названием Forte. В результате бывшая бета-версия NetBeans Developer 3.0 появилась на рынке под именем Forte for Java Community Edition в качестве бесплатного инструмента для разработки настольных приложений и простых Web-решений. А средства самой Forte были ориентированы на создание сложных настольных и серверных систем и легли в основу будущей линейки Sun Studio (Cи, C++, Fortran) и Sun Java Studio. Однако сразу отметим, что среда разработки сегодняшних версий Sun Java Studio построена на базе NetBeans.
В июне 2000 г. Forte for Java Community Edition вернул себе историческое название NetBeans и был преобразован в проект, реализуемый на базе концепции Open Source. Более того, он был как бы выведен за рамки бизнеса Sun Microsystems и организационно представлен в виде независимого некоммерческого проекта (www.netbeans.org). Компания Sun при этом именует себя просто спонсором, хотя на самом деле является его единоличным руководителем. Сайт проекта реализован от имени NetBeans-сообщества, которое там же называется вибрирующим (vibrant), - под этим понимается возможность для всех желающих задавать вопросы, советовать, делиться опытом, т. е. быть участником проекта с совещательным голосом. В настоящее время около 100 тыс. разработчиков более чем из 130 стран зарегистрировано на сайте в качестве участников проекта, использующих средства NetBeans. В сообщество входят также фирмы, создающие NetBeans-совместимые программные решения. Наиболее активно в этой сфере работают компании Compuware, OpenWave Technologies и Systinet.
Project Navigator обеспечивает простой доступ ко всем компонентам проекта
Первоначальной целью проекта NetBeans было создание конкретного Java-инструмента. Однако после покупки компанией Sun круг его задач существенно расширился. Если сначала это средство было ориентировано на индивидуальных программистов, то потом оно стало развиваться в сторону групповой разработки с поддержкой всего жизненного цикла приложения. При этом одной из ключевых начальных идей NetBeans было формирование модульной, расширяемой, гибко настраиваемой интегрированной среды разработки (IDE, Integrated Development Environment), в том числе с помощью открытого набора API. Поэтому следующим логичным шагом стало разделение проекта на две части - базовую платформу NetBeans Platform и собственно инструмент разработки NetBeans IDE, которые теперь представлены в виде отдельных бесплатных продуктов, предназначенных как для коммерческого, так и для некоммерческого применения*. Более того, сейчас NetBeans IDE уже вышел за рамки среды для разработки приложений и рассматривается также в качестве универсальной специализированной среды для реализации функционально насыщенных клиентских интерфейсов. (Тут можно провести аналогии с проектом Eclipse, круг задач которого развивался по такой же схеме.) NetBeans Platform - это универсальная среда поддержки создания настольных приложений. Она реализована на Java и, соответственно, может работать с любой операционной системой (в частности, Solaris, Windows, Linux, Macintosh), на которой имеется Java 2 Virtual Machine (версии 1.3 и выше). С точки зрения разработчика, эта среда представляет собой открытый набор API, реализующий верхний уровень общих сервисов (поверх Java-машины) - управление визуальным интерфейсом, работа с памятью, доступ к файловой системе и т. д.
NetBeans IDE - это собственно среда разработки, построенная по модульному принципу на базе NetBeans Platform и расширяемая в том числе за счет подключения внешних плагинов. В своем стандартном варианте она может применяться для создания кроссплатформенных настольных, Web- и мобильных приложений. На ее базе можно построить полномасштабную систему разработки решений любого уровня сложности для всего жизненного цикла ПО.
После приобретения в 1999 г. чешского инструментария Sun выпустила несколько его модификаций с номерами версий 3.5 и 3.6, а в конце 2004-го представила и новый вариант платформы и IDE - 4.0. Но уже в феврале была выпущена бета-версия NetBeans IDE 4.1, официальное представление которого ожидается в нынешнем мае.
Что нового в NetBeans 4.x
Полностью оправдывая смену номера версии, NetBeans IDE 4.0 стал наиболее значительным обновлением этого продукта за последние пять лет - в нем существенно улучшены поддержка J2EE, средства интеграции и настройки инструмента, а также повышена скорость работы на всех платформах, включая Linux. Назову основные новшества этого решения.
- Поддержка J2SE 5.0. NetBeans 4.0 стал первым Java-инструментом, реализованным на базе новой версии спецификаций Java 2 Standard Edition, известной ранее под кодовым названием Tiger. Она, в частности, включает управление программой с помощью метаданных, что позволяет модифицировать приложения без их переустановки.
- Система проектирования на базе Apache Ant. Применение этого инструментария дает возможность автоматизировать и упростить создание и развертывание исполняемых модулей программ путем широкого применения скриптов, в том числе в условиях командной разработки. Для управления этими процессами используются файлы открытых форматов. Ожидается, что в версии 4.1 появится функция реализации сценариев с помощью языков Groovy и Jython, более простых и удобных, чем Java.
- Рефакторинг. В основе этих возможностей управления программным кодом лежит собственная технология исследовательского подразделения Sun, отработанная в рамках проекта.
- Профилирование производительности. Новый инструмент Performance Profiler позволяет отслеживать использование памяти (в том числе ее утечки), загрузку центрального процессора, выполнение заданий и пр. Все это интегрировано в основной процесс разработки ПО.
- Web-разработка. Расширенная поддержка стандартов J2EE как версии 1.3, так и 1.4 облегчает разработчикам использование готовых ресурсов и структур для создания Web-приложений различного уровня сложности.
- Создание мобильных приложений. Возможности разработки существенно расширены за счет поддержки технологий Mobile Information Device Profile (MIDP) 2.0 и Connected Limited Device Configuration (CLDC) 1.1, а также J2ME Wireless Toolkit (WTK) 2.2. Это позволяет писать и отлаживать программы для мобильных устройств без использования аппаратно зависимого кода.
- Эффективная оконная система. Поддержка различных редакторов для работы с документами, гибкое управление окнами обеспечивают более удобную работу в интегрированной среде разработки. Улучшены возможности навигации по компонентам проекта, а также управления конфигурациями проектов и классов.
В состав NetBeans IDE 4.х входят также расширенные инструменты поддержки Enhanced Enterprise JavaBeans (EJB). Кроме того, продукт включает средства поддержки миграции Java-проектов, реализованных в других инструментах. При этом особый акцент делается на импортирование из среды Eclipse. Однако нужно сказать, что процесс такого преобразования кода является совсем не "бесшовным", поскольку NetBeans и Eclipse используют разные наборы функций для программирования пользовательского интерфейса. Тем не менее Import Eclipse Module позволяет автоматизировать преобразование кода, четко выделяя места, которые нужно доработать "руками".
Окно Runtime позволяет видеть текущее состояние процесса выполнения,
использование внешних сервисов, параметры отладки и т. д.
Завершая это краткое описание, отметим, что NetBeans 4.х может работать с широким кругом операционных систем - Windows XP, Windows 2000, Solaris версий 8, 9 и 10 (платформы SPARC и x86), различные дистрибутивы Linux, Java Desktop System 2, Mac OS X 10, а также разные UNIX. Для работы нужно установить также JDK 1.4.2 или выше.
NetBeans против Eclipse
Как мы уже отмечали, проект NetBeans по своим целям и задачам представляет собой почти точный аналог Eclipse, и, соответственно, эти два продукта являются сегодня главными конкурентами на рынке Java-инструментов. Правда, до недавнего времени Eclipse заметно опережал своего соперника по функционалу и производительности (и популярности на рынке!), но с появлением NetBeans 4.x перспективы решения Sun заметно улучшились. Это отмечают в своих комментариях многие западные эксперты, что, в частности, видно даже по заголовкам статей, в которых обыгрываются исходные значения названий проектов, например: "IDE Wars: Has NetBeans 4.1 Eclipsed Eclipse?" - ("Войны между IDE: NetBeans 4.1 затмевает Eclipse?"; см. www.javaboutique.internet.com). Однако при всем сходстве проектов есть и два важных различия.
Первое заключается в использовании разных технологических стандартов. Eclipse за основу берет Standard Widget Toolkit (SWT), построенный на базе Java Native Interface (JNI) и позволяющий работать напрямую с библиотеками поддержки пользовательского интерфейса операционной системы. Такой подход обеспечивает высокую скорость работы. Но дело в том, что SWT не является утвержденным Java-стандартом, а значит, имеется угроза поддержки многоплатформенности, в том числе на различных версиях Linux. В свою очередь, NetBeans реализует программный интерфейс Swing, входящий составной частью в спецификации J2SE. Он функционирует медленнее, чем SWT, но зато гарантированно надежно. К тому же разработчики J2SE обещают существенно повысить производительность Swing и, нужно сказать, добились хороших результатов в этом направлении в новой версии J2SE 5.0, на которой построен NetBeans 4.1.
Второе и, судя по всему, более важное различие заключается в используемых маркетинго-организационных подходах. IBM также начинала в 1998 г. Eclipse как частный внутрикорпоративный проект, но там довольно быстро поняли, что для создания конкурентоспособного инструмента (подразумевая в роли конкурента .Visual Studio) нужно действовать в кооперации с другими Java-поставщиками. Уже в 2001-м был сформирован совет управляющих проектом Eclipse.org, куда вошли ведущие ИТ-вендоры - Borland, Intel, SAP, Oracle, Sybase, BEA Systems и др. А еще через три года был сделан окончательный шаг по преобразованию этого проекта из частного в отраслевой Open Source, управление которым было передано независимой организации Eclipse Foundation. Ну а NetBeans, несмотря на свою внешнюю "независимость", остается скорее внутрифирменным проектом Sun.
И тем не менее NetBeans явно повышает свою популярность. Так, по данным технического директора Netbeans Тима Крамера, к концу 2004 г., за пять лет существования проекта, было сделано более 4 млн. загрузок, а за шесть месяцев после выпуска NetBeans EDI 4.0 - свыше миллиона. Исследование рынка Java-инструментов, представленное в конце прошлого года компанией BZ Media (www.jboss.com), показывает, что только Eclipse и NetBeans уверенно увеличивают свою рыночную долю, в то время как коммерческие продукты сдают позиции. Eclipse заметно усилил лидерство, подняв свое присутствие на рынке с 35 до 56%, а NetBeans смог выйти на четвертое место, повысив долю с 13 до 18%.
И все же - сможет ли Sun Microsystems составить достойную конкуренцию коалиции Eclipse? Вице-президент исследовательской компании Forrester Research говорит: "Я не знаю, кто из поставщиков средств разработки сегодня может игнорировать участие в Eclipse. Разве что Microsoft". Тем не менее, представив NetBeans 4.1, основатель Java демонстрирует готовность к самостоятельному развитию и продвижению своего "кофейнобобового" инструмента. 4*По данным, приведенным на netbeans.org, в 2003 г. (более поздних сведений нет) было сделано свыше 2 млн. загрузок NetBeans IDE и 35 тыс. загрузок NetBeans Platform.